Implements a SaaS-based math-solving web application for the Ece Ntua SaaS 2023-24 course. The project is structured around multiple microservices, allowing users to solve complex mathematical problems by purchasing credits and utilizing computational resources. Each microservice handles a distinct aspect of the application, such as problem-solving logic, credit management, and user interaction.
- Backend: NodeJS, ExpressJS, Python
- Frontend: ReactJS
- Database: MongoDB
- client: Handles the user interface and interactions.
- credit-manager: Manages user credits and transactions.
- solver-manager: Coordinates solving processes.
- submissions-management: Manages the lifecycle of user submissions.
- submissions-results: Manages the results of submissions.
- or-tools: Provides the solutions to complex mathematical problems.
Inside the documentation
folder, you will find the following folders:
- JMeter: Results from Apache JMeter stress tests.
- Visual Paradigm: Component, deployment, sequence, and class diagrams.
- AI-Log: AI logs with prompts.
To get started with the project, follow these steps:
-
Clone the repository:
git clone https://github.com/apostolos-k/ntua-saas-project.git cd saas2024-30
-
Set up the environment: Ensure you have Docker and Docker Compose installed on your system.
-
Build and run the services:
docker-compose up --build
-
Access the application: The client application should be accessible at http://localhost:3000.
Title | Method | URL | File | Microservice | Description |
---|---|---|---|---|---|
Get Credits | GET | http://localhost:7500 | /credit | credit-manager | Retrieves user credits |
Change Credits | POST | http://localhost:7500 | /credit | credit-manager | Modifies user credits |
New Submission | POST | http://localhost:9500 | /new_submission | or-tools | Starts the computation of the solution |
Kill Submission | POST | http://localhost:9500 | /kill_submission | or-tools | Terminates the ongoing computation of the solution |
New Solver | POST | http://localhost:8500 | /solver | solver-manager | Adds a new solver |
Get Solver | GET | http://localhost:8500 | /solver?solverID | solver-manager | Retrieves a solver |
Get Solver File | GET | http://localhost:8500 | /solver/file?solverID | solver-manager | Retrieves a solver file |
Get All Solvers | GET | http://localhost:8500 | /solver/getall | solver-manager | Retrieves all solvers |
Get All Submissions | GET | http://localhost:5500 | /allsubmissions | submission-results | Retrieves all submissions |
Get Submission | GET | http://localhost:5500 | /getsubmission?submissionID | submission-results | Retrieves a specific submission |
Delete Submission | POST | http://localhost:5500 | /deletesubmission | submission-results | Deletes a submission |
Healthcheck | GET | http://localhost:6500 | /healthcheck | submissions-management | Server healthcheck |
New Submission | POST | http://localhost:6500 | /new-submission | submissions-management | Creates a new submission |
Edit Submission | POST | http://localhost:6500 | /editsubmission | submissions-management | Edits an existing submission |
This project is licensed under the MIT License - see the LICENSE file for details.