Campus Navigation App for Government Engineering College, Thrissur
GEC Compass is a cross-platform campus navigation application built with Flutter that helps students, staff, and visitors navigate the GEC Thrissur campus with ease. It features real-time GPS tracking, turn-by-turn walking directions along campus roads, and a beautiful ambient dark-themed UI.
Tip
π² Download the Optimized Android APK (ARM64-v8a) β For most modern phones (highly optimized size: 18.2 MB).
- πΊοΈ Interactive Campus Map β Full satellite + labeled map of GEC Thrissur with building markers, categorized by type (Departments, Workshops, Hostels, Cafes/ATMs, Rooms/Labs).
- πΆ Walking Navigation β Dijkstra-based shortest-path routing along actual campus roads with turn-by-turn instructions.
- π Real-Time GPS Tracking β Live blue-dot user position with heading indicator and location accuracy ring.
- π’ Place Management β Add, edit, and manage custom places on the map with names, categories, and photos.
- βοΈ Cloud Sync β All custom places are synced globally via a Vercel serverless API so updates reflect on every device.
- π Ambient Dark Theme β A premium dark UI with smooth glassmorphism effects and micro-animations.
- π± Cross-Platform β Runs on Android (APK), Web (Vercel), iOS, Windows, macOS, and Linux.
- π¬ WhatsApp Integration β Quick contact via WhatsApp for feedback and support.
GEC Compass/
βββ api/ # Vercel serverless functions
β βββ places.js # Cloud sync API (Vercel KV / GitHub Gist / GitHub Repo)
βββ config.json # Dynamic API URL configuration
βββ gec_compass_app/ # Flutter application
β βββ lib/
β β βββ models/ # Data models (Building)
β β βββ screens/ # UI screens (MapScreen)
β β βββ services/ # Business logic
β β βββ data_service.dart # Cloud data sync service
β β βββ routing_service.dart # Dijkstra road-graph navigation
β β βββ pdr_service.dart # Pedestrian Dead Reckoning
β βββ assets/
β β βββ campus_buildings.json # OSM-sourced building data
β βββ android/ # Android platform files
βββ vercel.json # Vercel deployment configuration
βββ vercel-build.sh # Flutter web build script for Vercel
βββ package.json # Node.js dependencies (@vercel/kv)
- Flutter SDK (stable channel)
- Node.js (for serverless API development)
- Android Studio or VS Code with Flutter extensions
# Clone the repository
git clone https://github.com/anjo2007/GECMAPS.git
cd GECMAPS/gec_compass_app
# Get Flutter dependencies
flutter pub get
# Run on Chrome (Web)
flutter run -d chrome
# Run on Android (connected device or emulator)
flutter runcd gec_compass_app
flutter build apk --release
# Output: build/app/outputs/flutter-apk/app-release.apkcd gec_compass_app
flutter build web --release
# Output: build/web/The serverless API (api/places.js) supports multiple database backends and a secondary backup option to ensure reliability.
Configure one of the following as primary:
| Backend | Environment Variables | Description |
|---|---|---|
| Vercel KV (default) | KV_REST_API_URL, KV_REST_API_TOKEN |
Redis-based, auto-configured when linking Vercel KV |
| GitHub Gist | GITHUB_TOKEN, GIST_ID |
Stores places in a GitHub Gist |
| GitHub Repo | GITHUB_TOKEN, GITHUB_REPO |
Stores places.json in a repository |
You can configure a backup storage option that runs alongside the primary. If both a primary and backup are configured, the API performs dual-writes on every POST and read failover on GET (if the primary store fails/rate-limits).
| Backup Backend | Environment Variables | Description |
|---|---|---|
| GitHub Repo Backup | BACKUP_GITHUB_REPO |
Backup repository path (e.g., username/repo). Uses GITHUB_TOKEN |
| Vercel KV Backup | BACKUP_KV_REST_API_URL, BACKUP_KV_REST_API_TOKEN |
Secondary Vercel KV store |
| GitHub Gist Backup | BACKUP_GIST_ID |
Secondary GitHub Gist ID. Uses GITHUB_TOKEN |
Note
If no explicit backup environment variable is set, any configured non-primary credentials (for example, configuring both GIST_ID and GITHUB_REPO concurrently) will automatically act as the backup driver.
If no backend is configured, the API uses an ephemeral in-memory cache.
- Push this repository to GitHub
- Import the project on Vercel
- Vercel will automatically detect the configuration from
vercel.json - Configure environment variables for primary and backup storage options under Project Settings.
- (Optional) Link a Vercel KV store for persistent cloud sync
The app uses a Dijkstra shortest-path algorithm over a hand-curated road graph of the GEC Thrissur campus. The graph contains ~40 waypoints placed along actual internal campus roads, ensuring navigation lines follow walkways instead of cutting through buildings.
- User selects a destination building on the map
- The app finds the closest road waypoint to the user's GPS position and the destination
- Dijkstra's algorithm computes the shortest path through the campus road network
- The route is rendered as a blue polyline on the map
- Turn-by-turn instructions are generated from named waypoints along the route
Coming soon β deploy the app to see it in action!
| Component | Technology |
|---|---|
| Frontend | Flutter (Dart) |
| Map | flutter_map + OpenStreetMap tiles |
| Backend | Vercel Serverless Functions (Node.js) |
| Database | Vercel KV / GitHub API |
| Hosting | Vercel |
| Navigation | Custom Dijkstra graph routing |
This project is open source and available under the MIT License.
Anjo β @anjo2007
Built with β€οΈ for the GEC Thrissur community