Skip to content

PhantomKnight287/aero

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

53 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Aero

Real-time flight tracking across all your devices

Flutter NestJS TypeScript React

A comprehensive flight tracking platform with mobile apps and Wear OS companion


🎯 What is Aero?

Aero is a full-stack flight tracking application that brings real-time flight information to your fingertips. Whether you're tracking your own flights, monitoring departures, or exploring aviation data, Aero provides a seamless experience across mobile, web, and wearable devices.

Key Highlights:

  • πŸ›« Real-time flight tracking with live updates
  • πŸ“Š Comprehensive flight statistics and analytics
  • πŸ“± Native mobile apps with home screen widgets
  • ⌚ Wear OS companion for quick flight info
  • 🌐 Modern web interface
  • πŸ” Secure user authentication and profiles

Screenshots

Shareable Cards


πŸ—οΈ Architecture

This monorepo is organized into distinct components, each serving a specific purpose in the Aero ecosystem.

Backend Services

api/ - Core REST API

The heart of Aero, built with NestJS and TypeScript.

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚         NestJS REST API Server          β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ β€’ JWT Authentication                    β”‚
β”‚ β€’ Real-time Flight Tracking             β”‚
β”‚ β€’ Flight Search & Booking Management    β”‚
β”‚ β€’ Airport & Airline Data                β”‚
β”‚ β€’ User Profiles & Statistics            β”‚
β”‚ β€’ Redis Caching Layer                   β”‚
β”‚ β€’ Prisma ORM + PostgreSQL               β”‚
β”‚ β€’ OpenAPI/Swagger Documentation         β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

backend/ - Legacy PocketBase

⚠️ Note: This was used for the initial draft and is no longer actively maintained.


Client Applications

app/ - Flutter Mobile App

Cross-platform mobile application for iOS and Android.

Features:

  • Real-time flight tracking with live updates
  • Interactive flight path visualization
  • Home screen widgets for quick access
  • Detailed flight statistics and analytics
  • User authentication and profile management
  • Dynamic app icon customization
  • Offline data caching

wearos/ - Wear OS Companion(under development)

Native Android Wear application for smartwatches.

landing/ - Marketing Website

Modern, responsive landing page built with React and Vite.

Tech:

  • React 19 with TypeScript
  • Tailwind CSS for styling
  • Vite for blazing-fast builds
  • Responsive design for all devices

Supporting Tools

Tool Purpose Tech
scraper/ Web scraping for airline data Playwright + Bun
scripts/ Data management and migrations TypeScript + Bun
openapi/ Auto-generated API client Dart (from OpenAPI spec)

✨ Features

Flight Tracking

  • Real-time Updates - Live flight position and status
  • Flight Search - Find flights between any airports
  • Path Visualization - See flight routes on interactive maps
  • Status Monitoring - Track departures, arrivals, and delays
  • Historical Data - Access past flight information

Flight Management

  • Booking System - Create and manage flight bookings
  • Multi-flight Tracking - Monitor multiple flights simultaneously
  • Statistics Dashboard - View comprehensive flight analytics
  • Personal Flight History - Track your travel patterns

Data & Information

  • Airport Database - Comprehensive airport information
  • Airline Directory - Detailed airline profiles
  • Aircraft Details - Aircraft specifications and information
  • Route Information - Flight route data and statistics

User Experience

  • Authentication - Secure user accounts with JWT
  • Personal Profiles - Customizable user profiles
  • Flight Statistics - Personal flight analytics
  • Custom App Icons - Dynamic icon customization
  • Home Widgets - Quick access from your home screen
  • Wear OS Integration - Flight info on your wrist

πŸš€ Getting Started

Prerequisites

Make sure you have the following installed:

  • Node.js 20+ and pnpm 9.15.1+
  • Flutter SDK 3.6.0+
  • PostgreSQL database
  • Redis server
  • Bun (for scripts and scraper)
  • Android Studio (for Wear OS development)

Quick Start

1. Backend API

cd api
pnpm install
cp .env.example .env  # Configure your environment variables
pnpm run prisma migrate dev
pnpm run start:dev

API Endpoints:

  • API Server: http://localhost:3000
  • API Docs: http://localhost:3000/docs
  • Scalar API Reference: http://localhost:3000/reference

2. Flutter Mobile App

cd app
flutter pub get
flutter run

3. Landing Page

cd landing
bun install
bun run dev

4. Scraper

cd scraper
bun install
bun run index.ts

5. Scripts

cd scripts
bun install
bun run index.ts

πŸ’» Development

API Development

cd api
pnpm run start:dev    # Development with hot reload
pnpm run lint         # Lint code
pnpm run build        # Production build

Flutter Development

cd app
flutter run                    # Run on device/emulator
flutter build apk              # Build Android APK, the native configuration isn't done for anything other than android

OpenAPI Client Generation

Regenerate the Dart API client from the OpenAPI schema:

./generate-openapi-client.sh   # Generate client

Bonus for scrolling so far. Here is the image of my favourite livery.

ANA181

Copyright: TommyNGB

Link: https://www.jetphotos.com/photo/11888246