TerraWing is a premium, high-performance, real-time global transit tracking application. Designed with an immersive, map-focused, and highly responsive interface, it serves as a unified command center for aviation tracking, railway transit monitoring, and interactive earth weather intelligence.
The Aviation Tracking module integrates live aeronautical tracking directly into the primary digital map. It connects to the OpenSky Network API and local airport datasets to deliver a live global radar interface.
- Interactive Aviation Radar:
- Real-time coordinates plotting, tracking flight paths, altitude profiles, heading/course lines, and speeds.
- Distinct, color-coded aircraft categories based on commercial class, passenger capacity, and transponder type.
- Airport Activity Tracker & Heatmap:
- Heatmap rendering of flight congestion and passenger queue densities at major global airports (e.g., ICAO code lookup).
- Live departures, arrivals, and delay reports at specific airport hubs.
- Aircraft Intelligence:
- Detailed aircraft lookup featuring technical specifications (manufacturer, model, operators, country of registration) by registration code or flight code.
- Airspace Viewport Search:
- Query flights and nearby air traffic in a bounding box centered around the user's viewport or selected coordinates.
The Railway Tracking module bypasses dashboard clutter to bring users directly into tracking tools. It relies on a hybrid architecture combining live NTES scraper data with local CC0 railway schedules.
- Live Train Tracker:
- Real-time location plotting, platform assignment, scheduled vs. actual arrival/departure, delay estimation, and current speed metrics.
- Interactive Intermediate Halts: Major stoppage stations populate the primary timeline. Tapping any stoppage station dynamically expands a drawer revealing all intermediate passing stations/halts between it and the next stop, along with calculated transit delays.
- Offline-Ready Schedule Viewer:
- Deep-linkable schedule explorer utilizing local SQLite/JSON databases containing over 60+ stations per route.
- Pnr Status Checker:
- Validates 10-digit PNR journeys. Returns seat details and preparation updates.
- Recent Searches (History):
- Tracks your last queried trains. Clickable action chips let you instantly jump back into tracking paths.
The Weather Intelligence module offers an immersive, Google Earth-inspired meteorological environment. The weather data is rendered directly onto an interactive digital globe map, transforming flat information into a living atmospheric simulation.
- Interactive Global Weather Map:
- High-fidelity global projection utilizing customizable OpenStreetMap foundations.
- Real-Time Weather Layer Overlays: Toggles for Precipitation, Wind Speeds, Cloud Cover, Temperature, and Weather Radar sweeps.
- Stacked ESRI Places & Boundaries overlay showing city names, borders, and roads on top of weather layers.
- Reverse Geocoding & Spot Verification:
- Tap any location on the map to query atmospheric readings.
- Automatically reverse-geocodes coordinate taps into human-readable city/region names, displaying resolved names directly inside the dynamic weather intelligence panel.
- Cinematic Ambience Overlays:
- Custom-rendered precipitation particles (animated raindrops drifting across the interface).
- Atmospheric storm flash triggers representing thunder and lighting activity.
- Horizontal rainfall timeline forecast displaying hourly progression and operational transit risk levels.
The user interface follows a modern dark/light system designed to stand out:
- 🎛️ 3D-like Speedometer Card: Displays current train speeds with color-coded speed ranges.
- ✨ Animated Train Marker: Uses vertical bouncing translate animation (
_AnimatedTrainMarker) to pinpoint the train's real-time position on the live timeline. - 📐 Stack-Based Timeline Line: Employs a custom relative-stack timeline drawing system that stretches dynamically when halting panels are expanded, preventing layout clipping and rendering bugs.
- 🔄 Animated Chevrons: Subtle
AnimatedRotationindicators that guide the user interaction when expanding stations. - 🌐 Animated Globe & Radar Splash: A beautiful CustomPaint-rendered coordinates grid with rotating satellite pings, loading status ticks, and pulse effects on the landing splash.
| Component | Technology | Purpose |
|---|---|---|
| Frontend | Flutter SDK (Dart) | Immersive, high-performance UI shell |
| Riverpod | State management, caching, and reactivity | |
| Flutter Map | OpenStreetMap & weather radar tile rendering | |
| SharedPreferences | Search history persistency | |
| Backend | Node.js (TypeScript) | Normalization and backend logic |
| Express.js | Route server endpoints | |
| Cheerio | NTES public web scraping and parsing | |
| OpenSky API Wrapper | Aviation feed stream parser | |
| LRU Cache | API rate-limit protection |
- Node.js (v18+)
- Flutter SDK (v3.0+)
- Android Emulator / Physical Device (USB debugging enabled)
- Navigate to the backend folder:
cd backend - Install Node dependencies:
npm install
- Create a
.envfile in thebackend/root:PORT=3000 OPENSKY_USERNAME=your_username OPENSKY_PASSWORD=your_password NTES_BASE_URL=https://enquiry.indianrail.gov.in/mntes
- Synchronize the local railway database datasets:
npm run sync:railway-data
- Start the Express development server:
npm run dev
- Navigate to the frontend folder:
cd frontend - Install package dependencies:
flutter pub get
- Run the application locally:
flutter run
Feel free to connect or reach out for inquiries, feedback, or collaborations:
- GitHub Profile: @ashish6298
- LinkedIn Profile: Ashish Goswami
- Developer Portfolio: ashishgoswami.dev
- Email Contact: ashishgoswami1013@gmail.com