Projects

movGR

Follow Granada's public transport in real time

movGR

movGR is a modern Progressive Web App (PWA) that provides real-time tracking of Granada’s public transport system, including buses and metro lines. It is designed to offer fast, lightweight, and reliable access to transit information for everyday use.

The application is built with Next.js on the frontend and powered by a backend API implemented with FastAPI, following a decoupled architecture that allows independent development, deployment, and scaling of each component.

Whether you are a commuter, a student, or visiting the city, movGR keeps transit information accessible and up to date, directly from your device.

#Motivation

Public transport data is often fragmented across multiple sources, presented through slow or outdated interfaces, and poorly optimized for mobile usage. movGR was built to explore how modern web technologies and cloud-native architectures can be combined to deliver a simple, real-time user experience on top of heterogeneous data sources.

The focus of the project is not only on functionality, but also on responsiveness, reliability, and operational simplicity.

#Architecture Overview

Architecture of movGR

movGR follows a fully decoupled architecture, where frontend and backend services are developed, deployed, and scaled independently. This design allows rapid iteration on the user interface while keeping the data ingestion and processing layer lightweight and cost-efficient.

#Backend API

The backend runs in the AWS Cloud and is built using FastAPI, serving as both a crawler and a public API for transport data.

Key characteristics:

  • AWS Lambda executes Python-based data extraction logic, using BeautifulSoup to collect real-time transport information from transit-related sources.
  • Lambdas are exposed via AWS API Gateway, providing HTTP endpoints consumed by the frontend.
  • The backend codebase is open source and maintained in the movgr-api repository.
  • Continuous integration and deployment are handled through GitHub Actions.

This setup prioritizes low operational overhead, horizontal scalability, and cost efficiency, making it well suited for bursty, read-heavy workloads.

#Frontend Application

The frontend is implemented with Next.js and deployed on Vercel, enabling automatic deployments on every commit to the main branch of the movgr-next repository.

Notable aspects:

  • Data is fetched directly from the AWS-hosted API.
  • localStorage is used to persist user preferences and session-level data.
  • As a Progressive Web App, movGR can be installed on any device and supports offline access for cached views.

The result is a fast, responsive interface optimized for both mobile and desktop environments.

#Installation and Usage

Installing movGR requires no app store and no account. Simply visit the web application and install it directly from your browser.

As a PWA, movGR provides:

  • Offline support for previously loaded data
  • Native-like performance
  • Minimal installation footprint

Installation guides:

#Open Source

movGR is fully open source, and contributions are welcome.

This project serves as an exploration of real-time data delivery, cloud-native design, and user-focused web applications.

Next project

pvv