This project is a full-stack application built for monitoring and collecting measurement data.
It uses Quarkus for backend services, React for the frontend, PostgreSQL as the database, InfluxDB for time-series data, and Nginx as a reverse proxy and static content delivery service.
- Backend: Quarkus (Java framework for cloud-native applications)
- Frontend: React
- Database: PostgreSQL (relational DB), InfluxDB (time-series DB)
- Proxy & Static Content: Nginx
- Testing & Load Simulation: Locust scripts (in
./locust/scripts)
- Balsa Bulatovic
- Vladimir Popov
- Teodor Vidakovic
-
Start the backend services
- Run
docker compose -f dev.docker-compose.yml up -dto deploy all the necessary services. - Navigate to the
eps-backendfolder and run the Quarkus application. - Navigate to the
measurement-collectorfolder and run the Quarkus application.
- Run
-
Start the frontend
- Navigate to the
eps-frontendfolder and run the React application. - By default, static content will be served via Nginx.
- Navigate to the
-
Access the system
- Once all services are up, you can access the frontend in your browser (check the configured host/port).
- The frontend will communicate with the backend services via the configured API routes.
-
Build frontend and start services
- Execute
./runAll.sh, to build the frontend application and deploy all the services.
- Execute
-
Start the backend services
- Navigate to the
eps-backendfolder and run the Quarkus application. - Navigate to the
measurement-collectorfolder and run the Quarkus application.
- Navigate to the
-
Access the system
- Once all services are up, you can access the frontend in your browser (
http://localhost). - The frontend will communicate with the backend services via the configured API routes.
- Once all services are up, you can access the frontend in your browser (
To populate the database with test data:
- Ensure PostgreSQL and InfluxDB are running and accessible.
- Run the provided scripts located in:
./locust/scripts
These scripts simulate traffic and populate both PostgreSQL and InfluxDB with sample data for testing and development.
- Nginx is used as a reverse proxy to route requests between frontend and backend services, and to serve static frontend assets.
- Configuration files for Nginx should be adapted according to your deployment environment.