
movGR is a modern Progressive Web App (PWA) built with Next.js and powered by a backend API built with FastAPI. It provides real-time tracking of Granada’s public transport system, including buses and metro lines, helping users stay informed and on the move.
Whether you’re a commuter, a student, or just exploring the city, movGR keeps transit information at your fingertips—live, accurate, and lightweight.
🧠 Architecture
movGR follows a decoupled architecture where the frontend and backend are developed, deployed, and scaled independently.
🔌 API
The backend lives in the AWS Cloud, built with FastAPI and deployed via GitHub Actions. It serves as a crawler and API for the transport data.
- AWS Lambda runs Python code (with BeautifulSoup) to scrape real-time data from transit-related websites.
- These Lambda functions are triggered through AWS API Gateway, which exposes HTTP endpoints used by the frontend.
- The backend is deployed via a GitHub repo (
movgr-api
), with CI/CD set up through GitHub Actions.
This setup ensures the API remains lightweight, scalable, and cost-efficient.
💻 Frontend
The frontend is built with Next.js and deployed on Vercel, offering instant updates upon each commit to main
in the movgr-next
repository.
- Data is fetched directly from the AWS-hosted API.
- localStorage is used to persist user preferences and session data.
- As a PWA, movGR can be installed on any device, even functioning offline for cached views.
This makes the app fast, responsive, and user-friendly—optimized for mobile and desktop.
⚙️ Install it!
Installing movGR is a breeze—simply visit the web app on your browser and install it like a native app. No app store required.
Being a PWA, it offers:
- Offline support
- Native-like performance
- Minimal install size
🌍 Open Source
movGR is 100% open source! Contributions, issues, and forks are all welcome:
- Frontend: mianfg/movgr-next
- Backend: mianfg/movgr-api