Archimedes is an online platform designed to provide problem solving capabilities for users. The application is structured as a set of microservices, where each service is responsible for a specific task. These services communicate with each other via well-defined APIs, typically using HTTP or messaging queues. Docker containers are used to encapsulate each service, ensuring they run consistently across different environments.
- Clone the repository
git clone https://github.com/ntua/saas2024-31 cd saas2024-31
- Ensure you have the following installed:
- Docker
- Docker Compose (if applicable)
- Build the image and run the services
docker-compose up -d --build
Now you should be able to access the web application through localhost.
- Orchestrator
- Description: Acts as the central service responsible for managing communication between the different microservices.
- Frontend
- Description: The user interface of the application, served via an HTTP server.
- Authorization Service
- Description: Handles user authentication.
- AuthorizationDB
- Description: PostgreSQL database for storing user authentication data.
- Credits Service
- Description: Manages user credits and related operations.
- CreditsDB
- Description: PostgreSQL database for storing credits-related data.
- Submissions Service
- Description: Handles submission of problems to be solved and results.
- SubmissionsDB
- Description: PostgreSQL database for storing problem submissions.
- RabbitMQ
- Description: Message broker for managing communication between services using message queues.
- Solver Service
- Description: Responsible for solving the problems submitted through the
submissions
service.
- Description: Responsible for solving the problems submitted through the
- Notifier
- Description: Notifies users about the completion of tasks or changes in state.
- Konstantinos Pikoulas
- Maria Lazou
- Stefanos Yiannakopoulos