Skip to content

Tekisha/eps

Repository files navigation

Energy Processing System (EPS)

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.


📌 Technologies Used

  • 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)

👥 Participants

  • Balsa Bulatovic
  • Vladimir Popov
  • Teodor Vidakovic

🚀 How to Run the Project

DEV mode

  1. Start the backend services

    • Run docker compose -f dev.docker-compose.yml up -d to deploy all the necessary services.
    • Navigate to the eps-backend folder and run the Quarkus application.
    • Navigate to the measurement-collector folder and run the Quarkus application.
  2. Start the frontend

    • Navigate to the eps-frontend folder and run the React application.
    • By default, static content will be served via Nginx.
  3. 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.

PROD mode

  1. Build frontend and start services

    • Execute ./runAll.sh, to build the frontend application and deploy all the services.
  2. Start the backend services

    • Navigate to the eps-backend folder and run the Quarkus application.
    • Navigate to the measurement-collector folder and run the Quarkus application.
  3. 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.

🗄️ Database Setup with Test Data

To populate the database with test data:

  1. Ensure PostgreSQL and InfluxDB are running and accessible.
  2. 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.


⚙️ Notes

  • 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.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published