| 1 | <div align="center"> |
| 2 | |
| 3 | <img src="./landing/public/icons/0-4.png" width="80"> |
| 4 | |
| 5 | # Aero |
| 6 | |
| 7 | **Real-time flight tracking across all your devices** |
| 8 | |
| 9 | [ |
| 127 | |
| 128 | --- |
| 129 | |
| 130 | ## ✨ Features |
| 131 | |
| 132 | ### Flight Tracking |
| 133 | |
| 134 | - **Real-time Updates** - Live flight position and status |
| 135 | - **Flight Search** - Find flights between any airports |
| 136 | - **Path Visualization** - See flight routes on interactive maps |
| 137 | - **Status Monitoring** - Track departures, arrivals, and delays |
| 138 | - **Historical Data** - Access past flight information |
| 139 | |
| 140 | ### Flight Management |
| 141 | |
| 142 | - **Booking System** - Create and manage flight bookings |
| 143 | - **Multi-flight Tracking** - Monitor multiple flights simultaneously |
| 144 | - **Statistics Dashboard** - View comprehensive flight analytics |
| 145 | - **Personal Flight History** - Track your travel patterns |
| 146 | |
| 147 | ### Data & Information |
| 148 | |
| 149 | - **Airport Database** - Comprehensive airport information |
| 150 | - **Airline Directory** - Detailed airline profiles |
| 151 | - **Aircraft Details** - Aircraft specifications and information |
| 152 | - **Route Information** - Flight route data and statistics |
| 153 | |
| 154 | ### User Experience |
| 155 | |
| 156 | - **Authentication** - Secure user accounts with JWT |
| 157 | - **Personal Profiles** - Customizable user profiles |
| 158 | - **Flight Statistics** - Personal flight analytics |
| 159 | - **Custom App Icons** - Dynamic icon customization |
| 160 | - **Home Widgets** - Quick access from your home screen |
| 161 | - **Wear OS Integration** - Flight info on your wrist |
| 162 | |
| 163 | --- |
| 164 | |
| 165 | ## 🚀 Getting Started |
| 166 | |
| 167 | ### Prerequisites |
| 168 | |
| 169 | Make sure you have the following installed: |
| 170 | |
| 171 | - **Node.js** 20+ and |
| 172 | - **Flutter SDK** 3.6.0+ |
| 173 | - **PostgreSQL** database |
| 174 | - **Redis** server |
| 175 | - **Bun** (for scripts and scraper) |
| 176 | - **Android Studio** (for Wear OS development) |
| 177 | |
| 178 | ### Quick Start |
| 179 | |
| 180 | #### 1. Backend API |
| 181 | |
| 182 | ```bash |
| 183 | cd api |
| 184 | pnpm install |
| 185 | cp .env.example .env # |
| 186 | pnpm run prisma migrate |
| 187 | pnpm run start:dev |
| 188 | ``` |
| 189 | |
| 190 | **API Endpoints:** |
| 191 | |
| 192 | - API Server: `http://localhost:3000` |
| 193 | - API Docs: `http://localhost:3000/docs` |
| 194 | - Scalar API Reference: `http://localhost:3000/reference` |
| 195 | |
| 196 | #### 2. Flutter Mobile App |
| 197 | |
| 198 | ```bash |
| 199 | cd app |
| 200 | flutter pub get |
| 201 | flutter run |
| 202 | ``` |
| 203 | |
| 204 | #### 3. Landing Page |
| 205 | |
| 206 | ```bash |
| 207 | cd landing |
| 208 | bun install |
| 209 | bun run dev |
| 210 | ``` |
| 211 | |
| 212 | #### 4. Scraper |
| 213 | |
| 214 | ```bash |
| 215 | cd scraper |
| 216 | bun install |
| 217 | bun run index.ts |
| 218 | ``` |
| 219 | |
| 220 | #### 5. Scripts |
| 221 | |
| 222 | ```bash |
| 223 | cd scripts |
| 224 | bun install |
| 225 | bun run index.ts |
| 226 | ``` |
| 227 | |
| 228 | ## 💻 Development |
| 229 | |
| 230 | ### API Development |
| 231 | |
| 232 | ```bash |
| 233 | cd api |
| 234 | pnpm run start:dev # |
| 235 | pnpm run lint # |
| 236 | pnpm run build # |
| 237 | ``` |
| 238 | |
| 239 | ### Flutter Development |
| 240 | |
| 241 | ```bash |
| 242 | cd app |
| 243 | flutter run # Run on device/emulator |
| 244 | flutter build apk # |
| 245 | ``` |
| 246 | |
| 247 | > [!IMPORTANT |
| 248 | > This application uses `<activity-alias> |
| 249 | |
| 250 | ### OpenAPI Client Generation |
| 251 | |
| 252 | Regenerate the Dart API client from the OpenAPI schema: |
| 253 | |
| 254 | ```bash |
| 255 | ./generate-openapi-client.sh # Generate client |
| 256 | ``` |
| 257 | |
| 258 | --- |
| 259 | |
| 260 | Bonus for scrolling so far. Here is the image of my favourite liveries. |
| 261 | |
| 262 |  |
| 263 | |
| 264 | Copyright: TommyNGB |
| 265 | |
| 266 | Link: https://www.jetphotos.com/photo/11888246 |
| 267 | |
| 268 |  |
| 269 | |
| 270 | Copyright: Sebastian Sowa |
| 271 | |
| 272 | Link: https://www.jetphotos.com/photo/12049542 |