Skip to content

Latest commit

 

History

291 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Aero Bound Ventures logo

Aero Bound Ventures

A full-stack flight booking platform built with Next.js, FastAPI, PostgreSQL, Redis, and Kafka.

FastAPI Next.js PostgreSQL Redis Kafka Kubernetes

Overview

Aero Bound Ventures integrates flight search, booking, payments, authentication, notifications, and administration in one application. The backend can use the Amadeus API for live flight data or local fixtures for development and demos.

Core Capabilities

  • Search, price, book, and cancel flights
  • Select seats and manage bookings
  • Process Pesapal payments and refunds
  • Authenticate with credentials or Google OAuth
  • Deliver email and real-time notifications through Kafka and Redis
  • Manage bookings, revenue, permissions, and uploaded tickets

Architecture

Next.js frontend
       |
       | REST and SSE
       v
FastAPI API ---- PostgreSQL
    |   |
    |   +------ Redis cache and Pub/Sub
    |
    +---------- Kafka ---- notification worker
    |
    +---------- Amadeus, Pesapal, Cloudinary, Google OAuth, SMTP

Technology

Area Main tools
Frontend Next.js, React, TypeScript, Tailwind CSS, Zustand, TanStack Query
Backend FastAPI, Python, SQLModel, Alembic, uv
Data and events PostgreSQL, Redis, Kafka
Infrastructure Docker Compose, Helm, Kubernetes, Terraform, AWS
Delivery and configuration GitHub Actions, Doppler

Repository Layout

backend/      FastAPI API, worker, migrations, tests, and Docker Compose
frontend/     Next.js application
helm/         Backend and DopplerSecret Helm charts
terraform/    EC2 production and EKS staging infrastructure
scripts/      Local Kubernetes bootstrap automation

Local Development

Backend

Prerequisites: Docker, Docker Compose, and an authenticated Doppler CLI.

cd backend
doppler setup
export DOPPLER_TOKEN="$(doppler configs tokens create docker --max-age 15m --plain)"
docker compose up -d --wait db redis kafka
docker compose build fastapi-app
docker compose run --rm migrate
docker compose up -d fastapi-app notification-worker

The API is available at http://localhost:8000; its Swagger documentation is at http://localhost:8000/docs.

See backend/README.md for configuration, migrations, management commands, observability services, and Kubernetes development.

Frontend

Prerequisite: Node.js 20 or later.

cd frontend
npm install
cp .env.example .env.local
npm run dev

The frontend is available at http://localhost:3000. Set NEXT_PUBLIC_API_BASE_URL=http://localhost:8000/api/v1 in .env.local.

Verification

cd backend
uv run pytest
cd ../frontend
npm run lint

For infrastructure changes:

terraform -chdir=terraform validate
terraform -chdir=terraform plan

Deployment

Docker Compose on EC2 remains the production deployment path. EKS is an independent, production-like staging environment managed with Terraform, Helm, GitHub Actions, and the Doppler Kubernetes Operator.

License

MIT

About

The code for the flight booking engine project being built on youtube

Resources

Stars

21 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages