Skip to content
This repository was archived by the owner on May 9, 2026. It is now read-only.

NathanGrenier/AERO

Repository files navigation

AI-Enabled Resolution Officer (AERO)

CI Status

Branch Code Coverage
main codecov
develop codecov
Branch Frontend CI Status Backend CI Status n8n CI Status
main Frontend CI Backend CI n8n CI
develop Frontend CI Backend CI n8n CI

CD Status

Production Build & Push

Uptime Kuma (Uptime) Dashboard: https://uptime.ngrenier.com/status/capstone

About

AI-Enabled Resolution Officer (AERO) is a smart online platform that takes care of flight delay compensation from start to finish. It identifies when passengers are eligible for compensation, prepares and sends the claim, and even automatically follows up on disputes. A network of intelligent AI agents handle each step, from creating formal claim messages to reviewing airline replies, all while keeping communication organized and private.

By combining automation, practical reasoning, live flight tracking, and targeted location-based ads, AERO simplifies the compensation process and makes it fairer. It helps travelers receive what they are rightfully owed without relying on costly middlemen or wasting time searching for the right contacts only to be offered less than they deserve. The initial version focuses on flights from JFK Airport with plans to expand the same framework to industries such as hotels, trains, and telecommunications.

You can visit the application on the web through this link.

Release Demo Recordings

Release 1

Release_1_Presentation-Aero.mp4

Release 1 Presentation Video Download

Release 2

Release.2.Presentation-Aero.Compressed.mp4

Release 2 Presentation Video Download

Product Demo

Release_2_Product_Demo-Aero.mp4

Release 2 Product Demo Video

Due to team reorganization and stakeholder withdrawal, we experienced a short delay in our project. We attempted to deploy our app using Concordia servers and Railway but we ran into technical issues that we are currently working on.

[Final] Release 3

Release.3.Presentation-Aero.Compressed.mp4

Release 3 Presentation Video Download

Product Demo

Release_3_Product_Demo-Aero.mp4

Release 3 Product Demo Video

Poster Presentation Demo

AERO.VIDEO.mp4

Contributors

Name Student ID Github Username Role
Nathan Grenier 40250986 NathanGrenier CI/CD & PM (Release 1&2)
Tanzir Hoque 40210275 siphant AI
Johnny Morcos 40172039 johnnyghub AI
George Ezzat 40245502 george-ezzat Frontend
Anh-Tuan Nguyen 40177349 anhtuann Frontend
Nathanial Hwong 40243583 nathanial-hwong Frontend
Mark Tadros 40250850 mark3737-tadros Frontend
Kermina Sourial 40249648 kerminasourial Backend & PM (Release 3)
Julie Makary 40243160 juliemakary Backend
Sarah Ohayon 40209765 SarOhayon Backend
Sarah Papadopoli 26629598 sloanware Backend & PM (Release 3)

Grading TA Github Account: Niloofar-Tavakolian

Project Structure & Wiki

For detailed setup, contribution guidelines, and component-specific instructions, please refer to the README.md files in the respective subdirectories.

Wiki Page and Github Project

Before contributing, it's highly recommended to take a look around this repository's wiki.

The following are some of the more important pages to read over before starting:

Github Project Board

Follow This link to view our GitHub project board. The following are some pages that might be in your interest to check out:

  • All Epics: All of our projects Epics. We treat Epics as feature labels to organize User Stories.
  • All Stories: All of our projects User Stories. They're organized by Epic.
  • All Tasks: Tasks are units of work that need to be completed by developers. They can be related to a specific User Story, or just the project in general (no user story).
  • Current Iteration: The work we've planned to complete during the current iteration.

Breakdown of Work Done Per Iteration

There are many ways to view what was done by which member during each iteration. The following are some of the places you can see this information in a visual format:

Project Boards:

Project Insights:

Getting Started

Prerequisites

  1. Docker Desktop: The backend services run in Docker. Make sure it's installed and running.
  2. Node.js (v22.20.0): Required for the frontend dev server and running scripts.
  3. Git: You must have Git installed to clone the repository and for the pre-commit hooks.

1. Setup Environment Files

This project uses .env files for managing secrets and environment-specific variables.

  1. Root .env.dev:

    • This file is used by Docker Compose and the start.sh script to run all development services.
    • Copy the example file:
      cp .env.dev.example .env.dev
    • Review .env.dev and fill in any missing secrets (like AIRLABS_API_KEY).
  2. Dozzle Authentication

    • This is a file used by dozzle to authenticate.
    • You can generate one with the following command:
      docker run -it --rm amir20/dozzle generate admin --password "your_secure_password" --name "Admin" > dozzle_data/users.yml
  3. Service-Specific .env files:

    • The services inside backend/, n8n/, and frontend/ may also require environment files.
    • Please follow the setup steps in their respective README.md files to create them:

2. Setup Pre-Commit Hooks

We use Husky to lint and test code before you commit. This is a one-time setup.

npm install

Skipping Hooks (Not Recommended): If you need to bypass the hooks, you can commit with the --no-verify flag. Ex: git commit -m "message" --no-verify

3. Run the Development Environment

We have a single script to start the entire stack.

  1. Make the script executable (only needs to be done once):
chmod +x start.sh
  1. Run the script:
./start.sh

This script will:

  • Start the backend, database, and n8n containers in the background.
  • Navigate into the frontend/ directory.
  • Install frontend dependencies (npm install).
  • Start the Expo dev server for you to connect to.

When you're finished, press Ctrl+C in the terminal. The script will automatically shut down all the Docker containers.

Production Build & Deployment

These instructions are for building and deploying the production-ready application.

  1. Setup Production Environment File Create a .env.prod file in the root directory by copying the example:
cp .env.prod.example .env.prod

You must edit .env.prod and fill in all production-level values, such as:

  • EXPO_PUBLIC_API_URL (e.g., https://api.yourdomain.com/api/)
  • POSTGRES_PASSWORD (use a strong, generated password)
  • N8N_BASIC_AUTH_PASSWORD (use a strong, generated password)
  • All Sentry, Airlabs, and Email service API keys.
  1. Build and Run Production Containers Use the production Docker Compose file (docker-compose.prod.yaml) and your new .env.prod to build and run the application.
docker compose -f docker-compose.prod.yaml up --build -d

This command will:

  • Build the production multi-stage Dockerfile.
  • Create and start the aero_app, aero_db, and aero_n8n_prod containers.
  • Run the containers in detached mode (-d).

To stop the production services, run:

docker compose -f docker-compose.prod.yaml down

Manual Production Deployment

  1. Log into the GitHub Container Registry
  2. Build the local docker image:
docker build \
  --build-arg EXPO_PUBLIC_API_URL=https://aero.ngrenier.com/api/ \
  --build-arg EXPO_PUBLIC_WEB_URL=https://aero.ngrenier.com \
  -t ghcr.io/nathangrenier/aero:latest .
  1. Push the docker image to the GitHub Container Registry:
docker push ghcr.io/nathangrenier/aero:latest
  1. Manually restart the production compose stack or wait until the redeploy is triggered.

Wiki Table of Contents

For detailed project documentation, research, and technical standards, please visit our Full Project Wiki.

Category Wiki Pages
Project Management HomeWorkflowMeeting MinutesBudget
Architecture & Tech Software ArchitectureTechnologiesFramework Best PracticesPerformanceNaming Conventions
DevOps & Infrastructure Deployment Plan and InfrastructureTesting and Continuous IntegrationSecurity
Legal, Ethics & Risks Legal and Ethical IssuesEULARisksDiversity Statement
User & Market Analysis PersonasUser Feedback AnalysisEconomic
Implementation Evidence Substantial ImplementationIndependent Learning

About

AI-Enabled Resolution Officer: A fully automated system that uses intelligent agents to file, manage, and win flight delay compensation claims.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors