SmartCampus is an open architecture designed to integrate educational environments into the broader ecosystem of smart cities. Built on FIWARE components and modern microservices, the system enables real-time data ingestion, processing, enrichment, and visualization through a modular, container-based infrastructure.
It empowers institutions with actionable insights in areas such as:
- Service Demand Prediction – Forecast peak usage periods (e.g., dining halls) using class schedule simulations.
- Urban Mobility Analysis – Monitor student density across time and space to inform transit and traffic planning.
- Ride-Sharing Insights – Predict demand for services like Uber or public transport by course cluster and schedule.
- Public Resource Allocation – Provide analytics to optimize campus staffing and service provisioning during peak times.
To run the full environment locally, follow these steps:
git clone https://github.com/7robertodantas/smart-campus.git
cd smartcampusMake sure you have the following installed:
Spin up the core services:
docker-compose up --buildThen, run the custom sync service that transfers data from MongoDB to InfluxDB:
docker-compose run --rm mongo_to_influx-
Orion Context Broker: http://localhost:1026
-
Grafana Dashboards: http://localhost:3000 Default credentials:
Username: admin Password: admin
To simulate real-world context, use the included script to create mock entities in Orion.
-
Navigate to the appropriate folder:
cd data/ -
Run the entity creation script:
python create_entities.py
This script registers sample WeatherStation and CourseInstance entities using Orion's NGSI v2 API. Ensure that the Orion Broker is running before executing.
The system includes ready-to-use dashboards in Grafana at http://localhost:3000. Key panels include:
- Realtime Weather Code – Live weather updates per station
- Course Summary – Last 5 active course instances with enrollment info
- Alerts by Course – Panels that track course-specific weather severity
- Enrollment History – Historic trends per academic unit