A comprehensive monorepo for aviation-related applications, featuring unified CI/CD, shared infrastructure, and secure secrets management.
This monorepo contains 8 aviation applications and 3 shared packages with unified development infrastructure:
- Unified CI/CD Pipeline - Automated testing, security scanning, and deployment
- Secure Secrets Management - Encrypted keystore for API keys and credentials
- Automated Dependency Updates - Dependabot manages all dependencies
- Shared Infrastructure - Common packages for keystore, SDK, and UI framework
- Beads Pattern - Work organization for parallelism and testability
Aviation/
βββ apps/ # Applications
β βββ aviation-accident-tracker/ # Incident tracking and analysis (TypeScript + React)
β βββ aviation-missions-app/ # Mission management (Clojure + JS)
β βββ flight-tracker/ # Real-time flight tracking (TypeScript)
β βββ flight-planner/ # VFR flight planning (Python + React)
β βββ flightschool/ # Flight school management (Python Flask)
β βββ foreflight-dashboard/ # ForeFlight logbook analysis (Python + React)
β βββ meta-app/ # Unified dashboard for all apps (React + TypeScript)
β βββ weather-briefing/ # Aviation weather briefing (TypeScript)
βββ packages/ # Shared packages
β βββ keystore/ # Secure encrypted key management
β βββ shared-sdk/ # Common SDK and service patterns
β βββ ui-framework/ # Multi-modal UI framework
βββ docs/ # Documentation
βββ scripts/ # Build and utility scripts
βββ .github/workflows/ # CI/CD pipeline configuration
βββ package.json # Monorepo root configuration
Required:
- Node.js 20+ and npm 9+
- Python 3.11+ (for Python apps)
- Java 11+ (for Clojure apps)
Optional (for containerization):
- Docker and Docker Compose
# Clone the repository
git clone https://github.com/jordanhubbard/Aviation.git
cd Aviation
# Install all dependencies
npm install
# Set up secrets (one-time setup)
npm run keystore:initπ For detailed setup instructions, see Getting Started Guide
The repository includes a top-level Makefile for common tasks:
# Build everything
make build
# Run all tests
make test
# Clean all build artifacts
make clean
# Show all available targets
make helpComponent-specific targets:
make build-node # Build Node.js/TypeScript apps
make build-python # Build Python apps
make build-clojure # Build Clojure apps
make test-node # Test Node.js apps
make test-python # Test Python apps
make test-clojure # Test Clojure apps
make clean-node # Clean Node.js artifacts
make clean-python # Clean Python artifacts
make clean-clojure # Clean Clojure artifactsEach application can also be built and run independently:
cd apps/aviation-missions-app
make build # Build the application
make start # Start the server (port 3000)
make test # Run testscd apps/flight-planner
# Backend
python3 -m venv .venv
.venv/bin/pip install -r requirements.txt
.venv/bin/uvicorn backend.main:app --reload --port 8000
# Frontend (separate terminal)
cd frontend
npm install
npm run devcd apps/flightschool
make demo # Run demo with test data
# OR
make start # Start production servercd apps/foreflight-dashboard
make start # Start with Docker Compose
# OR for development:
make dev # Start backend and frontend separatelycd apps/flight-tracker
npm install
npm run build
npm startcd apps/weather-briefing
npm install
npm run build
npm start# From monorepo root
npm test
# Or run CI pipeline locally
.github/workflows/ci.yml # GitHub Actions will run automaticallyAviation Suite Meta App π©οΈ
Unified dashboard interface that aggregates all aviation applications into a single multi-tab web interface.
- Tech Stack: React, TypeScript, Vite, @aviation/ui-framework
- Features: Multi-tab navigation, keyboard shortcuts, responsive design, beautiful gradient UI
- Port: 3100
- Applications: Integrates all 7 aviation apps in one interface
Quick start:
cd apps/meta-app
make dev # Opens at http://localhost:3100Comprehensive aviation accident and incident tracking system with automated data ingestion, geospatial visualization, and flexible APIs.
- Tech Stack: Node.js, TypeScript, Express, SQLite, React, Leaflet
- Features: Automated ingestion (ASN, AVHerald), interactive map, filters, REST & GraphQL APIs, data export
- Ports: Backend 3002, Frontend 5173
- Documentation: API Guide, GraphQL API, Deployment
Mission management system for general aviation training with comprehensive catalog, community features, and administrative tools.
- Tech Stack: Clojure, Ring, Compojure, H2 Database, JavaScript
- Features: Mission catalog, ratings, comments, admin panel
- Port: 3000
Unified VFR flight planning with route planning, terrain checks, and weather integration.
- Tech Stack: Python, FastAPI, React, TypeScript, Leaflet
- Features: Route planning, terrain profiles, weather overlays, fuel stops
- Ports: Backend 8000, Frontend 5173
Flight school management system with student registration, aircraft/instructor management, and booking.
- Tech Stack: Python, Flask, SQLite, Bootstrap
- Features: Student management, scheduling, aircraft tracking
- Port: 5000
ForeFlight logbook analysis with CSV import, validation, and statistics visualization.
- Tech Stack: Python, FastAPI, React, TypeScript
- Features: CSV import, flight validation, statistics, currency tracking
- Ports: Backend 8000, Frontend 5173
Real-time flight tracking service (in development).
- Tech Stack: Node.js, TypeScript
- Port: 3001
Aviation weather briefing with AI-powered analysis (in development).
- Tech Stack: Node.js, TypeScript
- Port: 3002
All applications use a secure, encrypted keystore for managing API keys and credentials.
# Set a secret
npm run keystore set <service-name> <KEY_NAME> "value"
# Get a secret
npm run keystore get <service-name> <KEY_NAME>
# List all secrets for a service
npm run keystore list <service-name>
# List all services
npm run keystore:services
# Migrate from .env files
npm run secrets:migrateTypeScript:
import { createSecretLoader } from '@aviation/keystore';
const secrets = createSecretLoader('my-service');
const apiKey = secrets.getRequired('API_KEY');Python:
from keystore import create_secret_loader
secrets = create_secret_loader('my-service')
api_key = secrets.get_required('API_KEY')Production: Set KEYSTORE_ENCRYPTION_KEY environment variable for enhanced security.
π For complete documentation, see:
Secure encrypted key management system with TypeScript and Python clients.
Common SDK with service patterns and AI methodology.
Multi-modal UI framework supporting mobile, web, and multi-tab interfaces.
- Getting Started Guide - Initial setup and first steps
- Architecture Overview - System architecture and design
- Migration Guide - Migrating from standalone repos
- Contributing Guide - How to contribute
- Agents Guide - Guidelines for LLM agents and automation
- Security Guide - Security best practices
- Security Summary - Security features overview
- Secrets Management - Complete secrets guide
- UI Modalities - UI design patterns
- Color Scheme - Visual design guidelines
-
Create directory structure:
mkdir -p apps/my-app/src cd apps/my-app -
Add package.json with workspace dependencies:
{ "name": "@aviation/my-app", "dependencies": { "@aviation/shared-sdk": "workspace:*", "@aviation/keystore": "workspace:*" } } -
Create beads.yaml for work organization:
beads: - name: my-feature description: Feature description dependencies: [] parallel: true
-
Add tests and documentation
The CI/CD pipeline runs automatically on push and pull requests, but you can test locally:
# Validate beads configuration
python validate_beads.py
# Run linting
npm run lint
# Run tests for all apps
npm test
# Check accessibility and color contrast
npm run check:contrastAutomated dependency updates run weekly:
- Monday: GitHub Actions, npm root, TypeScript packages
- Tuesday-Friday: Individual applications
- CodeQL - Static analysis for vulnerabilities
- Trivy - Container security scanning
- GitGuardian - Secret detection in commits
Runs on every push and pull request:
- β Beads validation
- β Linting and formatting
- β Unit and integration tests
- β Security scanning
- β Accessibility checks
- β Build verification
- Formatter: Black (88 char line length)
- Type Hints: Required
- Docstrings: Required for public APIs
- Testing: pytest with 80%+ coverage
- Formatter: Prettier
- Linting: ESLint with strict mode
- Style: Functional components with hooks
- Testing: Vitest/Jest with 80%+ coverage
- Formatter: cljfmt
- Testing: clojure.test
Most applications include Docker support for containerized deployment:
cd apps/<app-name>
docker-compose up --buildView the latest CI/CD runs: GitHub Actions
All applications are tested on every commit with:
- Unit tests
- Integration tests
- Security scans
- Linting and type checking
- Accessibility validation
We welcome contributions! Please see our Contributing Guide for:
- Code style guidelines
- Development workflow
- Testing requirements
- Pull request process
- Beads pattern usage
This project is licensed under the MIT License - see the LICENSE file for details.
- Repository: https://github.com/jordanhubbard/Aviation
- CI/CD: https://github.com/jordanhubbard/Aviation/actions
- Security Alerts: https://github.com/jordanhubbard/Aviation/security/dependabot
- Issues: https://github.com/jordanhubbard/Aviation/issues
Questions? Open an issue or check the documentation.