| Layer | Technology | Purpose / Reason |
|---|---|---|
| Frontend Framework | React | Component-driven architecture, fast rendering, industry standard |
| Bundler / Dev Server | Vite | Extremely fast HMR, lightweight, perfect for React apps |
| UI Framework | TailwindCSS | Utility-first styling → consistent, scalable design system |
| Routing | React Router DOM | SPA navigation, efficient route management |
| State Management | Context API + React Hooks | Simplest scalable state solution without extra libraries |
| UI Enhancements | Swiper.js, React DatePicker, Lucide Icons | Modern UI/UX, animations, date controls |
| API Client | Axios | Configurable HTTP client with interceptors & error handling |
| Backend Framework | Django 5 | Mature, stable, secure backend framework |
| API Layer | Django REST Framework | Serializer-based validation, clean API architecture |
| Database | PostgreSQL / SQLite | PostgreSQL for production-level relational data management |
| Async Processing | Celery | Background jobs (ML training, email notifications) |
| Message Broker / Cache | Redis | Fast in-memory queue + caching support |
| Machine Learning | Scikit-learn | Lightweight ML for tabular prediction models |
| Task Automation | Celery Beat | Scheduled ML retraining jobs |
| Email System | Django Email + Celery | Non-blocking email dispatch for approvals, bookings |
| Deployment Ready Concepts | ENV config, modular folder structure, decoupled API services | Real-world deployment standards |
┌──────────────────────────────────────────────┐
│ Frontend │
│ React • Vite • Tailwind • Axios • SPA │
└───────────────────────────┬──────────────────┘
│ API Calls (REST)
▼
┌───────────────────────────────────────────────────┐
│ Django REST Backend │
│ DRF • Serializers • Viewsets • Business Logic │
└───────────────┬───────────────┬───────────────────┘
│ │
│ │
┌─────────▼───────┐ │
│ Booking/Travel │ │
│ Flights/Hotels │ │
└─────────┬───────┘ │
│ │
┌─────────▼─────────┐ │
│ Price ML Engine │◄────┘
│ scikit-learn │ Celery background training
└─────────┬─────────┘
│
┌──────────────▼───────────────┐
│ Celery Worker + Beat │
│ Emails • ML Jobs │
└──────────────┬───────────────┘
│
┌──────────────────▼───────────────┐
│ PostgreSQL Database │
└──────────────────────────────────┘
┌───────────────────────────────────┐
│ Redis │
│ Broker for Celery • Cache Layer │
└───────────────────────────────────┘
- React dominates the ecosystem → easier hiring, easier scaling
- Vite gives instant HMR, small builds, and better DX than CRA
- Context API + Hooks keeps state simple without bloating the app with Redux
- TailwindCSS ensures consistent UI without manually managing CSS files
- DRF gives a battle-tested API layer with serializers, permissions, viewsets
- Django ORM reduces query bugs and provides secure migrations
- Easier to integrate emails, sessions, tasks, and admin dashboards
-
Needed for tasks that must not block the main server:
- ML model training
- email notifications
-
Redis is fast, in-memory, and reliable as a broker
- Lightweight ML that fits tabular data (prices, bookings)
- Easy to train, retrain, and version
- Perfect intro ML for a booking system
- Stable, relational, scalable
- Perfect for bookings, flights, hotels — all relational datasets
- Ensures scalability
- UI consistency
- Easy to maintain or rewrite features
- Booking → own logic
- ML → own service
- Auth → clean boundary
- API → single source of truth
This is the same architecture used by real travel apps like Cleartrip, MakeMyTrip, and AirAsia at a smaller scale.