Skip to content

Repository files navigation

🌍 Woox Travel — Full Stack Travel Booking Platform

Python Django DRF PostgreSQL JWT Swagger

A modern full-stack travel booking web application built with Django and upgraded into a production-ready hybrid backend using Django REST Framework (DRF), PostgreSQL, JWT Authentication, and OpenAPI Documentation.

The project allows users to explore destinations, browse travel packages, make reservations, complete payments, and manage bookings through both a traditional Django web interface and a fully documented REST API.


🏗 Hybrid Architecture

Unlike a traditional Django application, Woox Travel combines both server-rendered HTML pages and REST APIs within the same project.

                   Woox Travel

          ┌─────────────────────────┐
          │      Django Backend      │
          └────────────┬────────────┘
                       │
        ┌──────────────┴──────────────┐
        │                             │
        │                             │
HTML Website                    REST API (DRF)
(Session Auth)                  (JWT Auth)
        │                             │
        └──────────────┬──────────────┘
                       │
                 PostgreSQL Database

🚀 Features

👤 Authentication

  • User Registration
  • Secure Login & Logout
  • Password Reset via Email
  • JWT Authentication (API)
  • Session Authentication (Website)
  • User Profile Management

🏝 Travel Management

  • Explore Cities & Tourist Destinations
  • Browse Travel Packages
  • Multiple Package Plans
    • Silver
    • Gold
    • Platinum
  • Day-wise Tour Itinerary
  • Image Gallery
  • Responsive Search & Filtering

📅 Reservation System

  • Book Travel Packages
  • Reservation Dashboard
  • Edit Reservations
  • Cancel Reservations
  • User-specific Booking History
  • Owner-only Reservation Access

💳 Payment Module

  • Secure Payment Workflow
  • Invoice Generation
  • Payment Receipt Storage
  • Payment Confirmation Email
  • Reservation Status Updates
  • Duplicate Payment Protection

🔐 Security

  • Django Authentication
  • JWT Authentication
  • Object-Level Permissions
  • Role-based Access
  • Session Authentication
  • Password Hashing
  • CSRF Protection
  • Token Rotation
  • Refresh Token Blacklisting

📖 REST API

Fully developed REST backend using Django REST Framework

Modules

  • Authentication API
  • Cities API
  • Best Offers API
  • Reservation API
  • Payment API

📚 API Documentation

Interactive API documentation powered by drf-spectacular

  • Swagger UI
  • ReDoc
  • OpenAPI 3.0 Schema

🛠 Admin Panel

Customized Django Admin using Jazzmin

  • Travel Package Management
  • Reservation Management
  • Payment Management
  • City Management
  • User Management

🏗 Tech Stack

Backend

  • Python
  • Django 5
  • Django REST Framework

Frontend

  • HTML5
  • CSS3
  • Bootstrap 5
  • JavaScript

Database

  • PostgreSQL

Authentication

  • Django Session Authentication
  • JWT Authentication (SimpleJWT)

API

  • Django REST Framework
  • drf-spectacular
  • OpenAPI 3.0
  • Swagger UI
  • ReDoc

Libraries

  • Django Jazzmin
  • django-filter
  • django-autoslug
  • TinyMCE
  • Pillow
  • psycopg2
  • python-dotenv

📂 Project Structure

woox_travel/
│
├── best_offers_about/
├── best_offers_deals/
├── cities_towns_about/
├── paginator/
├── payment/
├── register/
├── service/
├── user_reservations/
├── visit_places_home/
│
├── templates/
├── static/
├── media/
├── docs/
│
├── woox_travel/
├── manage.py
├── requirements.txt
└── README.md

⚡ Backend Highlights

  • Hybrid Django Architecture
  • PostgreSQL Database
  • Django REST Framework APIs
  • JWT Authentication
  • Session Authentication
  • Swagger Documentation
  • OpenAPI Schema
  • Filtering
  • Searching
  • Ordering
  • Pagination
  • Object-Level Permissions
  • Email Notifications
  • Responsive UI

🌐 REST API Endpoints

Authentication

POST   /api/v1/auth/register/
POST   /api/v1/auth/login/
POST   /api/v1/auth/logout/
GET    /api/v1/auth/profile/
PUT    /api/v1/auth/profile/

JWT

POST   /api/v1/token/
POST   /api/v1/token/refresh/
POST   /api/v1/token/verify/

Cities

GET /api/v1/cities/
GET /api/v1/cities/{id}/
GET /api/v1/cities/places/
GET /api/v1/cities/places/{id}/

Best Offers

GET /api/v1/best-offers/
GET /api/v1/best-offers/{id}/

Supports:

  • Filtering
  • Searching
  • Ordering
  • Pagination

Reservations

GET
POST
PUT
PATCH
DELETE
/api/v1/reservations/

Payments

GET
POST
/api/v1/payments/

📸 API Documentation

After running the project:

http://127.0.0.1:8000/api/docs/

Swagger UI

http://127.0.0.1:8000/api/redoc/

ReDoc

http://127.0.0.1:8000/api/schema/

OpenAPI Schema


⚙ Installation

git clone https://github.com/s-panchal77/woox-travel.git

cd woox-travel

python -m venv .venv

# Windows
.venv\Scripts\activate

# Linux / macOS
source .venv/bin/activate

pip install -r requirements.txt

Environment Variables

Create a .env file in the project root.

SECRET_KEY=your-secret-key

DEBUG=True

DB_NAME=your_database

DB_USER=your_username

DB_PASSWORD=your_password

DB_HOST=localhost

DB_PORT=5432

EMAIL_HOST_USER=your_email@gmail.com

EMAIL_HOST_PASSWORD=your_app_password

Apply Migrations

python manage.py migrate

Run Server

python manage.py runserver

✅ Current Project Status

  • ✅ PostgreSQL Migration Completed
  • ✅ Django REST Framework Integrated
  • ✅ JWT Authentication Implemented
  • ✅ Swagger Documentation Added
  • ✅ REST APIs Completed
  • ✅ Owner-Level Permissions
  • ✅ Email Integration
  • ✅ Responsive Website
  • ✅ Hybrid Architecture (HTML + REST API)

🚀 Future Enhancements

  • React Frontend
  • Docker Support
  • Redis Caching
  • Celery Background Tasks
  • Razorpay Integration
  • AWS S3 Storage
  • GitHub Actions CI/CD
  • Nginx + Gunicorn Deployment

👨‍💻 Author

Sarthak Panchal

Backend Developer

Python • Django • Django REST Framework • PostgreSQL • REST APIs • JWT Authentication


⭐ If you found this project useful, consider giving it a Star on GitHub.

About

Woox Travel is a modern full-stack travel booking platform. Its hybrid architecture unites a server-rendered web app with a production-ready Django REST API. Powered by PostgreSQL and JWT auth, it ensures seamless integration for React, Flutter, or mobile frontends.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages