Skip to content

Latest commit

 

History

History
112 lines (88 loc) · 7.19 KB

File metadata and controls

112 lines (88 loc) · 7.19 KB

🧰 Full Tech Stack (Tabular Overview)

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

Architecture Diagram

           ┌──────────────────────────────────────────────┐
           │                  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   │
      └───────────────────────────────────┘

🤔 Why This Tech Stack?

🟦 React + Vite (Frontend)

  • 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

🟩 Django REST Framework (Backend)

  • 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

🟥 Celery + Redis (Async)

  • 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

🟨 Scikit-Learn ML Module

  • Lightweight ML that fits tabular data (prices, bookings)
  • Easy to train, retrain, and version
  • Perfect intro ML for a booking system

🟦 PostgreSQL

  • Stable, relational, scalable
  • Perfect for bookings, flights, hotels — all relational datasets

♻️ Modular Component-Driven Frontend

  • Ensures scalability
  • UI consistency
  • Easy to maintain or rewrite features

🔐 Separation of Concerns

  • 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.