A web-based Air Traffic Control (ATC) system designed for the GeoFS Events community. This application provides pilots with a simple way to file flight plans and gives controllers a real-time, dynamic board to manage flight strips, update statuses, and track aircraft movements.
This project was built from scratch to address the need for a modern, reliable, and real-time ATC strips solution for virtual pilots and controllers.
- allow users to edit flight details if they are in delivery.
- Pilot Flight Filing: A dedicated, user-friendly form for pilots to file their flight plans.
- Dynamic ATC Board: A real-time board that displays flight strips for a specific airport, with automatic updates as new flights are filed or existing ones are modified.
- Controller Tools: Controllers can create new flight strips, edit existing flight details, update an aircraft's status (e.g., Ground, Tower, Approach), and delete flights.
- Real-time Data: Leverages SWR (Stale-While-Revalidate) to provide real-time updates without constant manual page refreshes.
- Database-Driven: Stores all flight information persistently in a PostgreSQL database using Prisma ORM.
- Type-Safe Development: Built entirely with TypeScript for a robust and maintainable codebase.
- Framework: Next.js 14 (App Router, Server Actions, API Routes)
- UI Components: Shadcn/ui (A collection of accessible, reusable components)
- Styling: Tailwind CSS
- Database: PostgreSQL
- ORM: Prisma
- Data Fetching: SWR
- Language: TypeScript
Follow these steps to set up and run the project locally.
- Node.js (LTS version)
- Bun
- A running PostgreSQL database instance
git clone https://github.com/mansoorbarri/geofs-vstrips
cd geofs-vstripsbun installCopy the .env.example file to .env and update the values as needed.
cp .env.example .envUse Prima to push the database schema and generate the client.
bun db:pushbun devThe application will be available at http://localhost:3000.
-
File a Flight: Navigate to
/file-flightto access the pilot flight filing form. -
View the ATC Board: Navigate to
/board/[airport-code](e.g.,/board/YSSY) to view the ATC board for a specific airport.
Contributions are welcome! If you have any ideas, bug reports, or feature requests, please open an issue or submit a pull request.