This document divides the AgraRide system into 4 distinct roles for a 4-person development team.
- Agile Methodology: 2-week sprints
- Daily Standups: 15-minute sync meetings
- Code Reviews: All PRs reviewed before merge
- Documentation: Keep docs updated
- User interface design and implementation
- User experience optimization
- Authentication pages
- Home and landing pages
- Profile and user-facing components
- Responsive design
- Animations and transitions
Files: src/pages/AuthPage.tsx, src/App.tsx
- Login/Register forms with validation
- Session management (localStorage)
- Animated transitions
- Error handling
- Responsive mobile design
Files: src/pages/Home.tsx
- Hero section with Taj Mahal background
- Feature cards
- Call-to-action buttons
- Framer Motion animations
- Responsive grid layouts
Files: src/pages/Profile.tsx
- Display user information
- Show statistics (rides, ratings)
- Edit profile functionality
- Recent reviews section
- Responsive card layouts
Files: src/components/common/Navbar.tsx, src/components/common/AnimatedLogo.tsx
- Top navigation with active states
- Mobile hamburger menu
- User profile dropdown
- Logout functionality
- Animated logo
Files: src/index.css
- Global styles with orange theme
- Reusable CSS classes
- Typography system
- Responsive breakpoints
- Animation utilities
- React 19, TypeScript
- Tailwind CSS (Orange theme)
- Framer Motion
- React Router
- Responsive design
POST /api/registerPOST /api/loginGET /api/ratings/:userIdGET /api/users/:idPUT /api/users/:id
- RESTful API design and implementation
- Business logic layer
- Authentication endpoints
- Ride and booking management APIs
- Error handling and validation
- API documentation
Files: server.ts (Auth section)
POST /api/register- Register new userPOST /api/login- Authenticate user- Input validation
- Error handling
Files: server.ts (Rides section)
GET /api/rides- List all active ridesPOST /api/rides- Create new ridePUT /api/rides/:id- Update rideDELETE /api/rides/:id- Delete ride with cascadePOST /api/rides/complete/:id- Mark completeGET /api/rides/driver/:driverId- Get driver's rides
Files: server.ts (Bookings section)
POST /api/bookings- Create booking with counter-offerPOST /api/bookings/accept/:id- Accept bookingPOST /api/bookings/reject/:id- Reject bookingGET /api/bookings/driver/:driverId- Driver's requestsGET /api/bookings/passenger/:passengerId- Passenger's bookingsGET /api/bookings/check/:rideId/:passengerId- Check status
Files: server.ts (Chat section)
GET /api/messages/:rideId- Get messagesPOST /api/messages- Send messageGET /api/inbox/:userId- Get conversations
Files: server.ts (Ratings section)
POST /api/ratings- Submit ratingGET /api/ratings/:userId- Get user ratings
Files: server.ts (Locations section)
POST /api/locations- Update locationGET /api/locations/:rideId- Get ride locations
- Node.js & Express.js
- TypeScript
- RESTful API design
- SQL with better-sqlite3
- Error handling
- HTTP status codes
- users, rides, bookings
- messages, ratings, locations
- Database schema design and management
- Admin dashboard implementation
- System monitoring and statistics
- User management features
- Database query interface
- SOS alert system
Files: db.ts
- Design and create all 7 tables
- Define relationships and foreign keys
- Handle schema migrations
- Seed initial data (admin user)
- Ensure data integrity
Files: src/pages/AdminDashboard.tsx
- System statistics overview
- Tab navigation (Overview, Rides, Users, Security, Database)
- Real-time data polling
- Responsive admin interface
Files: src/pages/AdminDashboard.tsx (Users tab), server.ts
- View all users in table
- Search users
- Delete users with cascade
- Change user roles
- Display user details
APIs:
GET /api/admin/users- List all usersDELETE /api/admin/users/:id- Delete userPUT /api/admin/users/:id/role- Change role
Files: src/pages/AdminDashboard.tsx (Rides tab), server.ts
- View all rides
- Search and filter rides
- Delete rides
- Mark rides as completed
- Track rides live
APIs:
GET /api/admin/rides- List all rides
Files: src/pages/AdminDashboard.tsx (Security tab), server.ts
- Display active SOS alerts
- Show ride and user details
- Track ride location
- Resolve alerts
APIs:
POST /api/sos- Create SOS alertPOST /api/sos/resolve/:id- Resolve alert
Files: src/components/admin/DatabaseManager.tsx, server.ts
- List all database tables
- View table contents
- Execute custom SQL queries
APIs:
GET /api/admin/db/tables- List tablesGET /api/admin/db/table/:tableName- Get table dataPOST /api/admin/db/query- Execute query
Files: server.ts
GET /api/admin/stats- System statistics
- SQLite database design
- SQL queries (SELECT, INSERT, UPDATE, DELETE, JOIN)
- Database relationships
- Cascade deletes
- React table components
- Admin UI patterns
- Map integration and visualization
- Real-time GPS location tracking
- Location picker components
- Route preview and navigation
- Ride search and booking UI
- My Rides and My Bookings pages
Files:
src/components/ride/GoogleMap.tsxsrc/components/ride/SimulatedMap.tsxsrc/components/ride/LocationPicker.tsxsrc/components/ride/RoutePreview.tsx
Responsibilities:
- Integrate Leaflet/OpenStreetMap
- Display markers for locations
- Show routes between points
- Real-time location updates
- Interactive map controls
Files: src/components/ride/LocationPicker.tsx
- Interactive map for selecting locations
- Search functionality (Nominatim API)
- Current location detection
- Click to select on map
- Display coordinates
Files: src/components/ride/GoogleMap.tsx
- Fetch locations every 3 seconds
- Display driver position
- Show route progress
- Multiple user tracking
- Auto-refresh
Files: src/pages/SearchRides.tsx
- Browse available rides
- View driver details
- Route preview on map
- Booking with counter-offers
- Real-time updates
Files: src/pages/OfferRide.tsx
- Create ride form
- Location picker integration
- Vehicle selection
- Seat and price configuration
- GPS coordinate capture
Files: src/pages/MyRides.tsx
- Display driver's rides
- Booking requests management
- Accept/reject bookings
- Live tracking button
- Ride statistics
Files: src/pages/MyBookings.tsx
- Display passenger's bookings
- Booking status tracking
- Live tracking button
- Rating after completion
- Leaflet & React-Leaflet
- OpenStreetMap
- Nominatim Geocoding API
- Browser Geolocation API
- Real-time polling
- GPS coordinates
GET /api/ridesPOST /api/ridesGET /api/bookings/*POST /api/bookingsGET /api/locations/:rideIdPOST /api/locations
- Daily standups for sync
- Code reviews for quality
- Shared documentation
- Issue tracking
- Frontend ↔ Backend: API contracts
- Backend ↔ Database: Schema design
- Maps ↔ Backend: Location APIs
- UI ↔ Maps: Component integration
- Write clean, documented code
- Follow TypeScript types
- Use consistent naming
- Test your changes
- Update documentation
- Create feature branch
- Implement feature
- Test locally
- Create pull request
- Code review
- Merge to main
- Feature works as expected
- No console errors
- Responsive on mobile
- API returns correct data
- Database updates correctly
- No TypeScript errors
agraride/
├── src/
│ ├── pages/ # Main pages
│ ├── components/ # Reusable components
│ ├── types.ts # TypeScript interfaces
│ └── index.css # Global styles
├── server.ts # Backend API
├── db.ts # Database setup
└── package.json # Dependencies
npm run dev # Start development
npm run build # Build for production
npm run lint # Check TypeScript- Email:
admin@agraride.com - Password:
admin
Last Updated: March 2026