This is a new version of Native Land Digital's web app, meant to replace the current WordPress & Mapster frontend.
Built with:
- React
- TypeScript
- yarn
- Vite
- Mapbox + react-map-gl
- Postgres
(Updated 1/8/24)
Currently we are working on our Open Source Debut milestone.
In this milestone, we're implementing measures to ensure code quality, including:
- Testing
- GitHub Actions / CI
- Accessibility
- Creating & Implementing Linting Standards:
- Prettier
- ESLint
- CSS
- a11y
If you'd like to join us in contributing to these goals, welcome! Please get in touch with us on Native Land Digital's Slack.
We are not yet reviewing or merging pull requests that are outside of the scope of this milestone.
Note that server
and client
are decoupled and in separate repos.
- Create a
native-land-web
root folder to hold both client and server folders. - Run
git clone
to copy this repo (native-land-web-client
) into root. - Run
git clone
to copynative-land-web-server
into root. - Run
yarn
in both folders to install dependencies. - Reach out to Native Land staff on Slack (ping @Will Gutierrez) to get access to dev materials:
- Mapbox development token, which goes into an
.env.local
file inclient
asVITE_MAPBOX_TOKEN
- sample SQL inserts
- Mapbox development token, which goes into an
- Create a PostgreSQL server with a
native_land_digital
database, and insert SQL. - Fill out a
.env
file to connectnative-land-web-server
to database. cd native-land-web-client
andyarn dev
to start bothclient
andserver
at the same time.- Navigate to
localhost:5173
in your browser.
This is a diagram of how the data flows within the app, and interacts with both the server and Native Land's Mapbox account (which is the source of truth for the front page map):
![Native Land React Dataflow](https://private-user-images.githubusercontent.com/4361605/294649101-99f38ddb-d593-4c80-8dff-83b4ed1ca72a.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk0NDU0NTUsIm5iZiI6MTcxOTQ0NTE1NSwicGF0aCI6Ii80MzYxNjA1LzI5NDY0OTEwMS05OWYzOGRkYi1kNTkzLTRjODAtOGRmZi04M2I0ZWQxY2E3MmEucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDYyNiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA2MjZUMjMzOTE1WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9NjU5ZGUxMTQxOWNkYjgzYzViZjAyOTUxNTE5NzY4YjhmYWZmOWY5MmJlMTljOGJjZjgwNzE1ZjkwMjRmODRlMyZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.Z7uqJ_BZqp3DDVvbMTkrDbHwmIUhUyZyJMa1_Wdi_jY)
Note that these two flows are distinct from and don't depend on one another:
- User viewing (reading) features from the map - (the goal of this first iteration of the new frontend)
- Researchers creating, updating, and deleting features - (to be tackled in a different milestone after the new frontend goes live)