aboutsummaryrefslogtreecommitdiffstats
path: root/app/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'app/README.md')
-rw-r--r--app/README.md136
1 files changed, 136 insertions, 0 deletions
diff --git a/app/README.md b/app/README.md
new file mode 100644
index 0000000..ed00e45
--- /dev/null
+++ b/app/README.md
@@ -0,0 +1,136 @@
+# Real-Time Location Tracking App
+
+## Overview
+This application enables real-time location tracking using OpenStreetMap. Users can share their location, which is updated in real-time, and the system sends an email notification containing their location information.
+
+## Technical Stack
+
+### Frontend
+- **Next.js**: React framework for the application
+- **Shadcn UI**: Component library for building the user interface
+- **Leaflet/React-Leaflet**: For integrating OpenStreetMap
+- **TailwindCSS**: For styling components
+- **Zustand**: State management
+
+### Backend
+- **Next.js API Routes**: Server-side API endpoints
+- **Prisma**: ORM for database interactions
+- **PostgreSQL**: Database for storing user and location data
+- **Socket.IO**: Real-time bidirectional communication
+- **Nodemailer**: For sending email notifications
+
+## Implementation Breakdown
+
+### 1. Authentication System
+- User registration and login
+- JWT-based authentication
+- Password reset functionality
+
+### 2. OpenStreetMap Integration
+- Map display with Leaflet/React-Leaflet
+- Custom markers for user locations
+- Zoom and pan controls
+- Geolocation API integration
+
+### 3. Real-Time Location Tracking
+- Browser Geolocation API to obtain user coordinates
+- Socket.IO for real-time updates
+- Location history tracking
+- Location update frequency controls
+
+### 4. Email Notification System
+- Nodemailer integration for sending emails
+- Email templates for location sharing
+- Link generation with location coordinates
+- Email verification system
+
+### 5. Database Structure
+- User profiles
+- Location history
+- Sharing permissions
+- Session management
+
+### 6. Location Sharing Features
+- Generate shareable links
+- Permission management
+- Time-based expiry for shared locations
+- QR code generation for easy sharing
+
+### 7. UI/UX Components
+- Responsive map interface
+- Location control panel
+- User profile management
+- Notifications center
+- Settings page
+
+## Setup Instructions
+
+1. Clone the repository
+ ```bash
+ git clone https://github.com/yourusername/realtime-location.git
+ cd realtime-location
+ ```
+
+2. Install dependencies
+ ```bash
+ npm install
+ ```
+
+3. Create a `.env` file in the root directory with the following variables:
+ ```
+ DATABASE_URL="postgresql://username:password@localhost:5432/realtime_location"
+ NEXTAUTH_SECRET="your-nextauth-secret-key"
+ JWT_SECRET="your-jwt-secret-key"
+ SMTP_HOST="smtp.example.com"
+ SMTP_PORT=587
+ SMTP_USER="[email protected]"
+ SMTP_PASSWORD="your-email-password"
+ EMAIL_FROM="[email protected]"
+ NEXT_PUBLIC_SITE_URL="http://localhost:3000"
+ ```
+
+4. Set up the PostgreSQL database and run Prisma migrations
+ ```bash
+ npx prisma migrate dev
+ ```
+
+5. Start the development server
+ ```bash
+ npm run dev
+ ```
+
+6. Open [http://localhost:3000](http://localhost:3000) in your browser
+
+## Features Implementation Status
+
+- [x] Basic Next.js setup with TypeScript
+- [x] UI components using Shadcn UI
+- [x] OpenStreetMap integration with Leaflet
+- [x] Real-time location tracking
+- [x] Location sharing via email
+- [ ] User authentication
+- [ ] Database integration with Prisma
+- [ ] Socket.IO for real-time updates
+- [ ] Location history tracking
+- [ ] QR code generation for sharing
+- [ ] Mobile responsiveness improvements
+- [ ] Testing
+- [ ] Deployment
+
+## Contributing
+
+1. Fork the repository
+2. Create your feature branch (`git checkout -b feature/amazing-feature`)
+3. Commit your changes (`git commit -m 'Add some amazing feature'`)
+4. Push to the branch (`git push origin feature/amazing-feature`)
+5. Open a Pull Request
+
+## License
+
+This project is licensed under the MIT License - see the LICENSE file for details.
+
+## Acknowledgments
+
+- OpenStreetMap for providing the map data
+- Shadcn UI for the beautiful component library
+- Next.js team for the incredible framework