🚗 Built a complete production-grade self-drive car rental app called DriveIndia — inspired by Myles. Full stack with React Native frontend, Node.js + Express + PostgreSQL backend, JWT authentication, double-booking prevention, dynamic pricing, and 300+ cars across 3 cities.
source code - https://sujan45.gumroad.com/l/rlhwio
In this video, I walk through everything end to end — from database design to security, from API routes to React Native screens. If you want to learn how to build a real-world full stack app, this is for you.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🛠️ TECH STACK
Frontend:
Expo React Native + TypeScript
NativeWind (Tailwind CSS for RN)
Zustand for global state
Expo Router (file-based routing)
Axios with auto-refresh interceptor
Expo SecureStore for token storage
Backend:
Node.js + Express + TypeScript
PostgreSQL 16 with Prisma ORM v7
JWT with refresh token rotation
Zod schema validation
Winston structured logging
bcryptjs password hashing
Helmet + CORS + Rate Limiting
Database:
7 tables (Users, RefreshTokens, Cities, Sublocations, Cars, Bookings)
3 cities, 75 pickup locations, 300 cars
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🔥 FEATURES BUILT
✅ Full authentication flow with JWT + Refresh Token rotation
✅ 9 mobile screens with premium dark UI
✅ City and pickup location selection with search
✅ Date/time pickers for booking duration
✅ Car listing with filters (fuel, transmission, seats)
✅ Sort by price or seats
✅ Full car detail page with specs and pricing
✅ Real-time double-booking prevention
✅ Dynamic pricing (hourly vs daily)
✅ Booking confirmation with full breakdown
✅ Animated success screen
✅ My Bookings with tabs (All/Confirmed/Active/Completed/Cancelled)
✅ Cancel booking with confirmation alert
✅ Pull to refresh
✅ Profile screen with stats
✅ Bottom tab navigation
✅ Auto token refresh on 401
✅ Secure storage for tokens
✅ 300 real cars with images from CarWale
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🏗️ ARCHITECTURE HIGHLIGHTS
📌 Double-Booking Prevention
Used Prisma $transaction with three overlap conditions and an atomic re-check inside the transaction to prevent race conditions when two users tap Book at the same time.
📌 JWT Token Rotation
Refresh tokens stored in DB and rotated on every refresh — old token deleted, new one issued. Prevents replay attacks.
📌 Dynamic Pricing Engine
Bookings ≤ 12 hours use hourly rate, anything longer switches to daily pricing with ceiling rounding. KM limit scales with duration.
📌 Type Safety End to End
TypeScript on both frontend and backend. Prisma generates fully typed DB queries.
📌 Security Layers
Helmet (15 security headers), CORS restrictions, rate limiting per IP, Zod input validation, bcrypt password hashing with configurable rounds.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📚 WHAT YOU'LL LEARN
How to structure a full stack project from scratch
Setting up PostgreSQL with Prisma ORM
Building secure JWT authentication with refresh tokens
Designing REST APIs with Express and TypeScript
Preventing race conditions with database transactions
Building beautiful UIs with React Native + NativeWind
State management with Zustand
File-based navigation with Expo Router
Implementing axios interceptors for auto token refresh
Date/time pickers in React Native
Bottom sheet modals
Pull-to-refresh and tab navigation
Production-grade error handling and logging
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
💬 CONNECT WITH ME
🔔 Subscribe for more full stack tutorials: / @sujananand6155
📸 Instagram: @sujananand
🙏 If you found this video valuable:
👍 LIKE the video
💬 COMMENT what feature you want next
🔔 SUBSCRIBE for more projects like this
📤 SHARE with someone learning full stack
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
#ReactNative #NodeJS #FullStack #PostgreSQL #Prisma #Expo #JavaScript #TypeScript #WebDevelopment #MobileApp #CarRental #JWT #FullStackDeveloper #CodingTutorial #LearnToCode
На этой странице сайта вы можете посмотреть видео онлайн 🔴 Let's build a Full Stack Car Rental App with REACT NATIVE using Node.js | PostgreSQL длительностью часов минут секунд в хорошем качестве, которое загрузил пользователь Sujan Anand 01 Январь 1970, поделитесь ссылкой с друзьями и знакомыми, на youtube это видео уже посмотрели 4,114 раз и оно понравилось 215 зрителям. Приятного просмотра!