carpooling-ride

byyogss rockes

Build a **production-ready real-time carpooling web app** called **PRAYOMSH CARPOOL**. Tagline: **“Share the Ride. Split the Cost. Travel Smarter.”** Footer:** © 2026 PRAYOMSH. All rights reserved.** Build a real functional product, not a static/demo website. Use real database, secure backend, authentication, realtime updates and responsive premium UI. ### 1. USER ROLES Support: **Driver:** offers available car seats. **Passenger:** searches and requests rides. One user can be both. ### 2. DRIVER — OFFER RIDE Create **Offer a Ride**. Fields: - Name - Mobile - Email - Pickup - Drop - Date - Time - Car model/type - Available passenger seats Seat selector: **− 1 +** Example: 4 seats → booking → 3 → 2 → 1 → 0. When seats reach **0**, automatically set ride: **FULL** FULL rides must disappear from passenger search but remain in database. Ride statuses: **ACTIVE / FULL / CANCELLED / COMPLETED / EXPIRED** Automatically expire past rides. ### 3. PASSENGER — FIND RIDE Create **Find a Ride**. Search: - From - To - Date - Time - Seats required Example: **Ahmedabad → Sankheda** Show only rides that are active, match route/date/time and have enough seats. ### 4. LOCATION Use location autocomplete for city, area, landmark, airport, railway station and map locations. Store latitude/longitude and support nearby matching with configurable radius: **5 / 10 / 25 km** Use **Google Maps, Mapbox or OpenStreetMap**. Recommended: **PostgreSQL + PostGIS** ### 5. RIDE CARD Premium card: **Ahmedabad → Sankheda** 📅 10 Oct 2026 | 🕐 10:00 AM 👤 Driver Name | 🚗 Car Model ⭐ 4.8 | 💺 **2 Seats Available** Button: **Request Seat** Full ride: **FULL / No Seats Available** Never show FULL rides in available search. ### 6. CRITICAL SEAT LOGIC Seat count must be controlled by backend. Example: **4 → 3 → 2 → 1 → 0** At 0: - status = FULL - hide from search - disable booking - preserve history Prevent overbooking using an **atomic database transaction/locking**. If only one seat remains and two passengers book simultaneously, only one succeeds. Never trust frontend seat count. Show: **“Sorry, this ride is no longer available. The last seat was just booked.”** ### 7. BOOKING Passenger clicks **Request Seat**. Validate: - Logged-in user - Ride exists - Ride ACTIVE - Valid date - Seats available - Passenger ≠ driver - No duplicate booking Booking statuses: **PENDING / ACCEPTED / REJECTED / CANCELLED / COMPLETED** Driver can accept/reject. Accepted booking updates seats atomically. Passenger cancellation returns seats. Driver cancellation notifies passengers. ### 8. PRIVACY Never publicly expose driver's personal phone number. Before approval show: **Request Seat / Contact Driver** After approval reveal appropriate contact details. Use masked numbers where required. Never expose private data through public APIs. ### 9. AUTHENTICATION & PROFILE Implement: - Registration - Login/logout - Password reset - Email verification - Mobile/OTP verification Profile: Name, photo, verified mobile/email, rating, completed rides. Show: **✓ Mobile Verified | ✓ Email Verified** ### 10. DASHBOARDS **Driver Dashboard:** My rides, route, date/time, car, total/booked/available seats, status and passenger requests. **Passenger Dashboard:** Requested, accepted, rejected, cancelled and completed rides with booking status. ### 11. REALTIME Seat availability must update without refresh. Example: User A sees **1 Seat Available**. User B books final seat. User A automatically sees **FULL**. Use **WebSockets, Supabase Realtime or Firebase Realtime**. Do not fake realtime with timers. ### 12. NOTIFICATIONS Driver: - New request - Accepted/rejected request - Passenger cancellation - Ride reminder - Ride cancellation Passenger: - Request confirmation - Accepted/rejected - Driver cancellation - Ride changes - Reminder Support in-app and optional Email/WhatsApp/SMS. ### 13. RATINGS & REVIEWS After completed ride, both parties can rate each other: **1–5 stars + optional review** Prevent duplicate reviews. Display average rating and completed rides. ### 14. SEARCH FILTERS Filters: - Date - Time - Seats - Vehicle - Pickup radius - Driver rating Sort: **Recommended / Earliest / Nearest / Most Seats / Highest Rated** ### 15. SAFETY Include: - Mobile/email verification - Report user/ride - Block user - Help/Emergency option Reports: Fake profile, fraud, harassment, unsafe behaviour, incorrect ride. ### 16. ADMIN PANEL Secure admin dashboard with RBAC. Admin can: - View/search users - Suspend users - Manage rides - Cancel rides - View bookings - Handle reports/reviews - View statistics Statistics: Users, active rides, full rides, completed/cancelled rides, bookings and available seats. ### 17. DATABASE Use **PostgreSQL + PostGIS**. Tables: **users:** id, name, email, phone, password_hash, photo, verification status, rating, timestamps. **rides:** id, driver_id, pickup/drop + coordinates, date, time, car, total_seats, available_seats, status, timestamps. **bookings:** id, ride_id, passenger_id, seats_requested, status, timestamps. **reviews:** id, ride_id, reviewer_id, reviewee_id, rating, comment, timestamp. ### 18. TECHNOLOGY Recommended: **Frontend:** Next.js + React + TypeScript + Tailwind CSS **Backend:** Node.js + NestJS/Express + TypeScript **Database:** PostgreSQL + PostGIS **Realtime:** WebSockets/Supabase Realtime **Maps:** Google Maps/Mapbox/OpenStreetMap Keep API keys/secrets in environment variables. ### 19. SECURITY Implement: - Server-side validation - Secure password hashing - Authentication/authorization - RBAC - Rate limiting - CORS - XSS/SQL injection protection - Secure headers - Error handling - Logging Never expose passwords, tokens, hashes or private contact information. ### 20. UI/UX Create a **premium, modern, minimal, trustworthy mobility-startup design**. Use clean typography, premium cards, rounded components, subtle shadows, modern icons, map UI, smooth micro-interactions and strong CTAs. Hero: # PRAYOMSH CARPOOL **Share the Ride. Split the Cost. Travel Smarter.** “Find available rides, share your journey and connect with drivers and passengers.” Buttons: **Find a Ride** | **Offer a Ride** Fully responsive for desktop, tablet and mobile. ### 21. SEO & ACCESSIBILITY Add: - SEO title/meta - Open Graph - Sitemap - Robots.txt - Semantic HTML - Structured data where useful Title: **PRAYOMSH Carpool — Find & Share Rides** Description: **Find and share available carpool rides with PRAYOMSH. Search routes, request seats and travel smarter.** Follow WCAG: keyboard navigation, labels, accessible forms/errors, screen-reader support and good contrast. ### 22. EDGE CASES & TESTING Handle: - Driver/passenger cancellation - Duplicate booking - Final-seat race condition - Full/expired ride - Invalid date/location/seats - Unauthorized access - Network failure - Duplicate API requests - Route/time changes Test authentication, ride creation, search, booking, concurrency, realtime updates and security. ### 23. FINAL ACCEPTANCE TEST Driver: Login → Offer Ride → **Ahmedabad → Sankheda** → Date/Time → Car → **4 seats** → Publish. Passenger: Login → Find Ride → **Ahmedabad → Sankheda** → Search → Ride appears. Bookings: **4 → 3 → 2 → 1 → 0** At 0: **ACTIVE → FULL** Ride immediately disappears from available search and booking is disabled. Concurrent final-seat requests must allow only one successful booking. The final product must be **fully functional, secure, realtime, responsive, scalable and production-ready**, with no fake hardcoded production data. **PRAYOMSH CARPOOL** **© 2026 PRAYOMSH. All rights reserved.**

No preview

Comments (0)

No comments yet. Be the first!

No completed page designs yet.

Completed design pages will appear here when they are ready to preview.

Landing: Enter as anonymous visitor
Login: Sign in with provisioned admin role
Account Recovery: Reset password when locked out
Admin Panel: Read statistics band
Admin Panel: Search and view users
Admin Panel: Suspend user
Admin Panel: Manage and cancel ride
Admin Panel: View bookings
Admin Panel: Handle reports and reviews
Admin Panel: Read RBAC refusal explanation
Admin Panel: Confirm updated platform statistics

No completed page designs yet.

Completed design pages will appear here when they are ready to preview.

Landing: Enter as anonymous visitor
Login: Sign in with provisioned admin role
Account Recovery: Reset password when locked out
Admin Panel: Read statistics band
Admin Panel: Search and view users
Admin Panel: Suspend user
Admin Panel: Manage and cancel ride
Admin Panel: View bookings
Admin Panel: Handle reports and reviews
Admin Panel: Read RBAC refusal explanation
Admin Panel: Confirm updated platform statistics