Our project, UTP+ Collab, is platform that allows students to collaborate with each other with tree main features:
- Collaboration: Students can create and join groups to work on projects together.
- Kanban board: Each group has a kanban board to manage their tasks.
- Chat: Each group has a chat with an IA that helps them to organize their tasks, meetings and statistics of the tasks.
- Meetings: Each group can schedule meetings with the members of the group.
To run Java Microservices you need to have installed mvn or a wrapper of it. Then you have to change directory for each microservice and execute the following command.
mvn spring-boot:run -qCaution
The Config Server must be running before the other microservices and the Eureka Server must be running before the Gateway and after the Config Server.
To start the Python Microservice you need to have installed Python 3.12 and poetry (can be used without any virtual environment but it is recommended to).
Execute the next command to install the dependencies and run the microservice.
poetry install
poetry run python main.pyExecute the next command to install the dependencies and run the microservice.
pip install -r requirements.txt
python main.pyTip
With this batch script it's possible to launch all the microservices.
This microservices are built with Spring Boot and FastAPI.
This microservice is responsible for managing the configuration of the other microservices.
- Spring Cloud Config Server
This microservice is responsible for managing the services of the other microservices.
- Spring Cloud Config Client
- Spring Cloud Eureka Server
- Spring Actuator
This microservice is responsible for managing the requests to the other microservices and the authentication of the users.
- Spring Cloud Gateway
- Spring Cloud Eureka Client
- Spring Cloud Config Client
- JWT
This microservice is responsible for managing the users of the platform. Like login and me (get the user information).
- Spring Security
- Spring JPA Data
- Spring Cloud Eureka Client
- Spring Cloud Config Client
- MySQL
- JWT
This microservice is responsible for managing the teams of the groups. Like creating (with or without criteria), updating, deleting and listing the teams.
- Spring Cloud Eureka Client
- Spring Cloud Config Client
- Spring JPA Data
- WebSockets
- MySQL
This microservice is responsible for managing the profiles of the users (user tier and user role).
- Spring JPA Data
- Spring Cloud Eureka Client
- Spring Cloud Config Client
- MySQL
This microservice is responsible for managing the kanban boards of the groups.
- Spring JPA Data
- Spring Cloud Eureka Client
- Spring Cloud Config Client
- MySQL
This microservice is responsible for managing the meetings of the groups.
- Spring JPA Data
- Spring Cloud Eureka Client
- Spring Cloud Config Client
- MySQL
This microservice is responsible for managing the chatbot for each group.
- FastAPI
- Py Eureka Client
- Config Client
- OpenAI
All the endpoints are documented with Swagger.