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

 
 
 

Contributors