City Note is a city note application that integrates Google Maps and AI functionality, allowing users to create, view, and manage events on a map.
- Kaiyue Lin
- Lixing Chen
- Java 21+
- Node.js 18+
- Maven 3.6+
- MySQL 8.0+
- Clone the project
git clone <repository-url>
cd city-note-gmap-AI- Setup your environment config
- Create a file
frontend/src/env.js, do the following
export const GMAP_MAP_ID = "MAP-ID-OF-YOUR-GOOGLE-API-ACCOUNT";
export const GMAP_API_KEY = "API-KEY-OF-YOUR-GOOGLE-API-ACCOUNT";- Create a file
backend/.env, do the following
openai.api-key = YOUR-OPEN-API-KEY
openai.base-url=https://api.openai.com/v1 # or your URL
jwt.secret=your-secret-key-here-make-it-long-and-secure-in-production
jwt.expiration=86400 # set up your own expiration time- Start local development environment
./dev.shBefore deploying, you need to modify the SSH key configuration in the deploy.sh script:
vim deploy.sh
# Find the following line and modify it with your pem filename
SSH_KEY="~/.ssh/your-key.pem" # Replace with your actual pem filenameSupported path formats:
~/.ssh/your-key.pem- Relative path (recommended)/absolute/path/to/your-key.pem- Absolute path
./deploy.shThe deployment script will automatically:
- Run tests
- Build the application
- Upload to EC2
- Configure services
city-note-gmap-AI/
├── backend/ # Spring Boot backend
├── frontend/ # React frontend
├── deploy.sh # Deployment script
├── dev.sh # Local development script
└── README.md # Project documentation
- Backend: Spring Boot, MySQL, JWT
- Frontend: React, TypeScript, Tailwind CSS
- Maps: Google Maps API
- AI: OpenAI API
- Deployment: AWS EC2, Nginx
- Fork the project
- Create a feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
MIT License


