Project Info
Inspiration
Despite massive automation in aviation, most air-cargo operations still rely on manual triage — people scanning dashboards, making phone calls, and sending emails whenever disruptions occur. During severe weather or ATC congestion, it can take 15–30 minutes for a single reroute or gate reassignment to be approved and executed, costing tens of thousands per delay and jeopardizing SLA-critical freight and perishables. By the time humans piece together the situation and coordinate a response, valuable minutes are lost. Automated Routing & Inventory for Shipping Efficiency (A.R.I.S.E.) changes that by autonomously monitoring airspace, reasoning through alternatives, and orchestrating coordinated responses in real time.
What it does
A.R.I.S.E. is an autonomous “watchtower” for air cargo operations. It continuously monitors airspace and airport conditions, pulling data from FAA advisories, ADS-B streams, and scraped operational feeds via Bright Data. When it detects a potential disruption (e.g., weather risk, reduced ATC capacity, or runway change), it triggers a Fetch.AI multi-agent reasoning loop to generate a decision plan with reroute options and risk scores. Then, using our agent MCP, A.R.I.S.E. automatically sends messages or calls on-duty handlers through Vapi, presenting a short, human-readable summary (“Flight DL104 facing +60m delay due to IFR — move ULDs 4A–4D to Gate 6?”). The result is a closed-loop, explainable AI assistant that handles disruptions in real time, no dashboards, no emails, just autonomous coordination.
How we built it
Fetch.AI Agents - reason over multimodal data and produce ranked response plans (reroute, hold, transfer). Bright Data - scrapes FAA ATCSCC advisories, airport capacity reports, and weather data into normalized JSON feeds. Claude API - condenses decision context into a natural-language “speak plan” for voice delivery. Vapi - delivers outbound voice calls to real humans (simulated in demo) and collects DTMF acknowledgments. ChromaDB - stores past incidents and responses for retrieval-augmented learning.
Challenges we ran into
Multi-agent state coordination — Getting 5 Fetch.ai uAgents to pass structured data sequentially without losing context required building a bureau coordinator that manages workflow execution and validates outputs at each stage. Real-time scraping reliability — Public flight plan data doesn't exist in accessible APIs—airlines and airports don't expose operational details. We used Bright Data to scrape live airport status pages, built custom HTML parsers to normalize tables into JSON, and implemented 5-minute caching with stale-data fallback when scraping fails.
Accomplishments we're proud of
Built a complete closed-loop system (detection → reasoning → action → acknowledgment) that runs in 2-5 seconds with live data integration (Bright Data scraping SFO flights), true multi-agent coordination (Fetch.AI), and voice interface (Vapi with DTMF). ChromaDB learning makes it smarter over time.
What we learned
AI agents need structure: free-form communication was chaos. Strict JSON schemas with AS1 LLM made the workflow reliable. Real-time data integration taught us that context matters more than speed; ChromaDB's case-based retrieval improved decisions more than faster inference.
What's next
Multi-airport cascade analysis, crew/gate resource optimization, and what-if simulation engine
A.R.I.S.E
Automated Routing & Inventory for Shipping Efficiency
A.R.I.S.E is an AI-powered airline operations control center that autonomously manages flight routing, crew scheduling, and resource inventory while responding to operational disruptions in real-time using a multi-agent system.
What It Solves
Airlines face constant operational challenges: weather delays, mechanical issues, crew scheduling conflicts, and cascading disruptions. Traditional operations centers rely on manual routing decisions and inventory management, leading to:
- Inefficient flight routing and resource allocation
- Poor inventory visibility across crew, aircraft, and cargo
- Delayed decision-making during critical incidents
- Inconsistent risk assessment and compliance checking
- Reactive rather than proactive operations
A.R.I.S.E solves this by providing an intelligent, autonomous system that:
- Optimizes routing for flights and crew assignments in real-time
- Manages inventory of aircraft, crew, and operational resources
- Detects incidents from multiple data sources automatically
- Analyzes impact across flights, schedules, and resource availability
- Generates action plans with automated routing adjustments and inventory reallocation
- Coordinates execution via automated communications (email, SMS, voice calls)
- Learns from history using vector memory to improve decision-making
Key Features
- Multi-Agent System: Specialized AI agents for narration, impact analysis, options generation, risk assessment, and scoring
- Real-Time Flight Data: Live flight tracking and status monitoring
- Interactive Map: Visualize affected flights, weather patterns, and operational zones
- Voice Integration: VAPI-powered voice calls for approvals and notifications
- Vector Memory: ChromaDB-based case retrieval for experience-based decision making
- Automated Actions: Email, Slack, and calendar integrations via Composio
Tech Stack
Frontend
- Next.js 14 (App Router)
- React with TypeScript
- Tailwind CSS for styling
- Mapbox GL for interactive mapping
- Zustand for state management
- Framer Motion for animations
Backend
- Python 3.11+
- FastAPI for REST API
- Fetch.ai (ASI:One) for multi-agent orchestration
- ChromaDB for vector memory and case retrieval
- VAPI for voice call integration
- Composio for email/Slack/calendar automation
External APIs
- AviationStack - Live flight data
- Bright Data - Web scraping for airport information
- Mapbox - Map visualization
Getting Started
Prerequisites
- Node.js 18+ and npm
- Python 3.11+ and pip
- Git
1. Clone the Repository
git clone https://github.com/yourusername/calhacks-2025.git
cd calhacks-2025
2. Set Up Environment Variables
Copy the example environment file to create your own:
cp be/.env.example .env
Edit .env and fill in your API keys:
Required Keys:
ASI_ONE_API_KEY- Get from Fetch.aiVAPI_API_KEY- Get from VAPICOMPOSIO_API_KEY- Get from ComposioCHROMA_API_KEY- Get from ChromaDB CloudNEXT_PUBLIC_MAPBOX_TOKEN- Get from Mapbox
Optional Keys:
AVIATIONSTACK_API_KEY- For real flight dataBRIGHTDATA_API_KEY- For web scraping
3. Install Dependencies
Frontend
cd fe
npm install
cd ..
Backend
cd be
pip install -r requirements.txt
cd ..
4. Seed the Database (Optional)
Populate ChromaDB with historical incident data for case-based reasoning:
cd be
python3 seed_chromadb.py
cd ..
5. Start the Application
The easiest way is to use the start script:
./start.sh
Or start services manually:
Terminal 1 - Backend
cd be
python3 -m src.rest_server
Terminal 2 - Frontend
cd fe
npm run dev
6. Access the Application
- Frontend: http://localhost:3000
- Backend API: http://localhost:8000
- API Docs: http://localhost:8000/docs
Project Structure
calhacks-2025/
├── fe/ # Next.js frontend
│ ├── app/ # App router pages
│ ├── components/ # React components
│ │ ├── arise/ # A.R.I.S.E specific components
│ │ └── ops-room/ # Operations room components
│ └── lib/ # Utilities and stores
│
├── be/ # Python backend
│ ├── src/
│ │ ├── agents/ # Multi-agent system
│ │ ├── api/ # FastAPI routes
│ │ ├── core_logic.py # Core processing logic
│ │ ├── bureau_coordinator.py # Agent coordination
│ │ └── rest_server.py # FastAPI server
│ └── seed_chromadb.py # Database seeding script
│
├── .env # Environment variables (create from .env.example)
└── start.sh # Startup script
Usage
Triggering an Incident
- Navigate to http://localhost:3000/trigger
- Select an incident scenario (weather delay, mechanical issue, etc.)
- Watch as the multi-agent system:
- Narrates the incident
- Analyzes impact on flights and resources
- Generates action plan options
- Assesses risks and compliance
- Scores and selects the best plan
- Coordinates execution
Viewing the Operations Room
The main dashboard at http://localhost:3000 shows:
- Live flight map with affected aircraft
- Incident timeline with agent reasoning
- Action plan with execution status
- KPI metrics tracking resolution progress
Voice Integration (Optional)
To enable voice approvals and notifications:
- Set up a VAPI account and create assistants
- Configure phone numbers in
.env - For local testing, use ngrok to expose your backend:
ngrok http 8000 - Update
BACKEND_URLin.envwith your ngrok URL
Development
Frontend Development
cd fe
npm run dev
Backend Development
cd be
python3 -m src.rest_server
Type Checking (Frontend)
cd fe
npm run type-check
Linting (Frontend)
cd fe
npm run lint
Security
All API keys and sensitive data are stored in the .env file, which is:
- Excluded from Git via
.gitignore - Never committed to the repository
- Kept local to your machine
Never commit your .env file or share your API keys publicly.
Contributing
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
License
This project was created for CalHacks 2025.
Acknowledgments
- Built with Fetch.ai multi-agent framework
- Powered by VAPI for voice integration
- Integrated with Composio for automation
- Flight data from AviationStack
- Maps by Mapbox
Built with passion for CalHacks 2025
Analysis
View
Metric
- 13
- 12
- 4
- 4
Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.
Technology
- CSSIn code
- FastAPIIn code
- Next.jsIn code
- OpenAIIn code
- PythonIn code
- ReactIn code
- Tailwind CSSIn code
- TypeScriptIn code
8 of 8 appear in the indexed code.
AI coding agents
- Claude CodeCommits
Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.
Codebase size
Source size
487 KB
Source files
77
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
M1Z8N/calhacks-2025
88 files · 682 KB · @ 8eabafa
Structure
Interface
30 files · 34%Screens, components and styles rendered to the user.
API & routing
8 files · 9%Request entry points: routes, handlers and controllers.
Application logic
30 files · 34%Domain rules, services and shared utilities.
Background jobs
1 file · 1%Work run outside a request: tasks, workers and schedules.
Supporting
Layers are inferred from where files sit in the tree, not from reading the code. A project that names its directories unconventionally will read oddly here — open the file browser to check anything the diagram implies.
Languages
- TypeScript57%
- Python33%
- Markdown9%
- Shell0%
- CSS0%
- YAML0%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
fe/package.json
npm · 28- @chroma-core/default-embed
- @radix-ui/react-checkbox
- @radix-ui/react-label
- @radix-ui/react-select
- @radix-ui/react-slider
- @radix-ui/react-tooltip
- @vapi-ai/web
- chromadb
- class-variance-authority
- clsx
- framer-motion
- lucide-react
- mapbox-gl
- next
- openai
- react
- react-dom
- react-map-gl
- +10 more
be/requirements.txt
pypi · 9- aiohttp
- chromadb
- fastapi
- fastmcp
- openai
- pydantic
- requests
- uagents
- uvicorn
Declared in the repository’s manifests at the indexed commit. A declared package is not proof it is used, and runtime dependencies are listed first.
This project’s features have not been analysed yet.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.