A full-stack location-based web application that allows users to drop interactive pins on a live map, storing metadata like title, category, and description.
- Interactive map with custom pins
- User authentication with Firebase
- Real-time pin updates
- Mobile-friendly design
- Category-based organization
- Detailed pin information
- React
- Next.js 13 (App Router)
- TypeScript
- Tailwind CSS
- MongoDB
- Firebase Authentication
- React-Leaflet
- OpenAI API
-
Clone the repository
-
Install dependencies:
npm install
-
Create a
.env.localfile in the root directory with the following variables:# Firebase Configuration NEXT_PUBLIC_FIREBASE_API_KEY=your_firebase_api_key NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=your_firebase_auth_domain NEXT_PUBLIC_FIREBASE_PROJECT_ID=your_firebase_project_id NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=your_firebase_storage_bucket NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=your_firebase_messaging_sender_id NEXT_PUBLIC_FIREBASE_APP_ID=your_firebase_app_id # MongoDB Configuration MONGODB_URI=your_mongodb_uri # OpenAI Configuration OPENAI_API_KEY=your_openai_api_key -
Run the development server:
npm run dev
-
Open http://localhost:3000 with your browser to see the result.
src/
├── app/ # Next.js app router pages
├── components/ # React components
├── hooks/ # Custom React hooks
├── lib/ # Utility functions and configurations
├── models/ # MongoDB models
└── types/ # TypeScript type definitions
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.