| Branch | Code Coverage |
|---|---|
main |
|
develop |
| Branch | Frontend CI Status | Backend CI Status | n8n CI Status |
|---|---|---|---|
main |
|||
develop |
Uptime Kuma (Uptime) Dashboard: https://uptime.ngrenier.com/status/capstone
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_1_Presentation-Aero.mp4
Release 1 Presentation Video Download
Release.2.Presentation-Aero.Compressed.mp4
Release 2 Presentation Video Download
Release_2_Product_Demo-Aero.mp4
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.
Release.3.Presentation-Aero.Compressed.mp4
Release 3 Presentation Video Download
Release_3_Product_Demo-Aero.mp4
AERO.VIDEO.mp4
| 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
For detailed setup, contribution guidelines, and component-specific instructions, please refer to the README.md files in the respective subdirectories.
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:
- Workflow: https://github.com/NathanGrenier/AERO/wiki/Workflow
- Naming Conventions: https://github.com/NathanGrenier/AERO/wiki/Naming-Conventions
- Testing and Continuous Integration: https://github.com/NathanGrenier/AERO/wiki/Testing-and-Continuous-Integration
- Software Architecture: https://github.com/NathanGrenier/AERO/wiki/Software-Architecture
- Technologies: https://github.com/NathanGrenier/AERO/wiki/Technologies
- Deployment Plan and Infrastructure: https://github.com/NathanGrenier/AERO/wiki/Deployment-Plan-and-Infrastructure
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.
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:
- Tasks Completed in Specific Iteration: https://github.com/users/NathanGrenier/projects/8/views/14
- User Stories Completed in Specific Iteration: https://github.com/users/NathanGrenier/projects/8/views/13
Project Insights:
- Sum of Hours Worked Per Iteration by Task Issue Status: https://github.com/users/NathanGrenier/projects/8/insights/5
- Sum of Story Points Per Iteration By Story Issue Status: https://github.com/users/NathanGrenier/projects/8/insights/4
- Docker Desktop: The backend services run in Docker. Make sure it's installed and running.
- Node.js (v22.20.0): Required for the frontend dev server and running scripts.
- Git: You must have Git installed to clone the repository and for the pre-commit hooks.
This project uses .env files for managing secrets and environment-specific variables.
-
Root
.env.dev:- This file is used by Docker Compose and the
start.shscript to run all development services. - Copy the example file:
cp .env.dev.example .env.dev
- Review
.env.devand fill in any missing secrets (likeAIRLABS_API_KEY).
- This file is used by Docker Compose and the
-
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
-
Service-Specific
.envfiles:- The services inside
backend/,n8n/, andfrontend/may also require environment files. - Please follow the setup steps in their respective
README.mdfiles to create them:
- The services inside
We use Husky to lint and test code before you commit. This is a one-time setup.
npm installSkipping 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
We have a single script to start the entire stack.
- Make the script executable (only needs to be done once):
chmod +x start.sh- Run the script:
./start.shThis 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.
These instructions are for building and deploying the production-ready application.
- Setup Production Environment File
Create a
.env.prodfile in the root directory by copying the example:
cp .env.prod.example .env.prodYou 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.
- Build and Run Production Containers
Use the production Docker Compose file (
docker-compose.prod.yaml) and your new.env.prodto build and run the application.
docker compose -f docker-compose.prod.yaml up --build -dThis command will:
- Build the production multi-stage
Dockerfile. - Create and start the
aero_app,aero_db, andaero_n8n_prodcontainers. - Run the containers in detached mode (
-d).
To stop the production services, run:
docker compose -f docker-compose.prod.yaml down- Log into the GitHub Container Registry
- 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 .- Push the docker image to the GitHub Container Registry:
docker push ghcr.io/nathangrenier/aero:latest- Manually restart the production compose stack or wait until the redeploy is triggered.
For detailed project documentation, research, and technical standards, please visit our Full Project Wiki.
| Category | Wiki Pages |
|---|---|
| Project Management | Home • Workflow • Meeting Minutes • Budget |
| Architecture & Tech | Software Architecture • Technologies • Framework Best Practices • Performance • Naming Conventions |
| DevOps & Infrastructure | Deployment Plan and Infrastructure • Testing and Continuous Integration • Security |
| Legal, Ethics & Risks | Legal and Ethical Issues • EULA • Risks • Diversity Statement |
| User & Market Analysis | Personas • User Feedback Analysis • Economic |
| Implementation Evidence | Substantial Implementation • Independent Learning |