- View all 10,000+ caves in the database.
- Search by property (length, pit depth, county, etc)
- View all information and any available maps on a specific cave.
- Add a new cave or make changes to an existing one.
Point Information | Point List |
---|---|
Add a Point | Advanced Search |
---|---|
Dashboard
- View submissions created by the logged-in user.
- View or upload dead leads (karst features people have confirmed are not a cave).
- Download all points as GPX or CSV with all the latest information.
Map
- View all points on a map.
- View dead leads (karst features people have confirmed are not a cave).
- Points are clustered if zoomed out to increase efficiency.
- Get information on a point by clicking it.
- Search cave locations or places.
- Use a Topo, 3DEP Elevation (Lidar), and OSM map layer.
Clustered Points | Search | Dead Leads |
---|---|---|
User Directory
- View all registered users.
- Make certain fields private (address, phone number, etc).
- Search all users.
User Directory | User Settings |
---|---|
Admin
- Can accept, reject, or modify proposed changes to a cave location.
- Can accept, reject, or modify new cave submissions.
- Approve users who request a membership.
Review | Approve/Reject Changes |
---|---|
Users
- Once approved, have access to all cave locations, maps, etc.
- Can propose changes and add new caves to the database.
- Add leads that have been checked and don't go anywhere.
Server: Node, Express, Passport, MongoDB, and Typescript
Client: React, Passport, Leaflet, and Typescript
After installing NodeJS you will need to setup a few config files.
The server has been removed from this repository and is now located here.
Client config
// edit the ./src/config/urlConfig.ts file
const serverBaseURL = process.env.REACT_APP_SERVER_BASE_URL
? process.env.REACT_APP_SERVER_BASE_URL
: 'http://your_ip_here:5000/';
const siteBaseURL = 'http://server_url_or_ip_here:3000/';
export {serverBaseURL, siteBaseURL};
Server config
# create a .env file in the project root dirrecotry
MONGOURI=mongo_connection_string_here
Install dependencies
# Install required global dependencies
npm i typescript -g
npm i ts-node -g
# Install required server dependencies
npm i
# Install required client dependencies
npm i
Starting the server
# Start running the server
npm run dev
Starting the client
# Start running the client
npm start
Registering a user
In your web browser, navigate to http://your_ip_address:3000/register
To create the first admin user, modify the role property of the user document. Change the role from User
to Admin
.
Uploading data
In you web browser, navigate to http://your_ip_address:3000/upload
The screenshots here contain fake data, as the data that this project is meant for is proprietary. If you would like to test this out, fake data has been provided in a CSV file for you to upload.