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