Loquat is a web application for tracking the location of fruit trees across Los Angeles. Users can view a map, add new tree locations, and save their favorite spots. The project uses Node.js, Express, React, and AWS DynamoDB for data persistence.
- Interactive map of fruit trees in Los Angeles
- Add and save tree locations
- User authentication (planned)
- Data persistence with AWS DynamoDB
- Responsive UI with React
├── server.js # Express server entry point
├── package.json # Project dependencies and scripts
├── client/ # Frontend code
│ ├── index.html # Main HTML file
│ ├── index.js # Entry JS for React
│ ├── main.js # Main logic
│ ├── map-index.html # Map page HTML
│ ├── map.js / map.jsx # Map logic/components
│ ├── sidebar.jsx # Sidebar React component
│ └── stylesheets/ # CSS files
├── server/
│ ├── controllers/ # Express route controllers
│ └── schemas/ # DynamoDB integration
- Clone the repository:
git clone https://github.com/strangesongs/solo-project.git cd solo-project - Install dependencies:
npm install
- Set up AWS credentials:
- For local development, configure credentials via AWS CLI (
aws configure) or~/.aws/credentials. - For AWS hosting, use IAM roles or environment variables.
- For local development, configure credentials via AWS CLI (
- Set environment variables:
- Create a
.envfile or set in your deployment config:AWS_REGION=us-west-2 DYNAMODB_TABLE=LoquatUsers
- Create a
- Start the server:
The server will run on http://localhost:3000.
npm start
- User and pin data are stored in AWS DynamoDB (
LoquatUserstable). - Requires AWS credentials and region configuration.
- Data is persistent and scalable for cloud hosting.
- Visit
http://localhost:3000to access the main page. - Log in with any username (no password required).
- Use the map to view and add fruit tree locations.
- Save pins; your pins are stored per username in DynamoDB.
- Backend uses AWS DynamoDB for user and pin data (see
server/schemas/schemas.js). - No authentication or password required; login is username-only.
- MongoDB and Mongoose are no longer required.
- Frontend uses React (Leaflet/Mapbox integration planned for future).
- Create a DynamoDB table named
LoquatUsers:- Partition key:
userName(type: String) - No sort key required
- Partition key:
- Set environment variables:
- In
.envor your deployment config:AWS_REGION=us-west-2 DYNAMODB_TABLE=LoquatUsers
- In
- Configure AWS credentials:
- For local dev: use AWS CLI (
aws configure) or~/.aws/credentials - For AWS hosting: use IAM roles or environment variables
- For local dev: use AWS CLI (
- Troubleshooting:
- Ensure your IAM user/role has DynamoDB read/write permissions
- Check region and table name match your setup
- Use AWS Console or CLI to verify table exists and is accessible
Pull requests and suggestions are welcome! Please open issues for bugs or feature requests.
ISC