Skip to content

martindotpy/hackathon-utp-2024-microservices

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

143 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Hackathon UTP 2024 - Microservices

Description

Our project, UTP+ Collab, is platform that allows students to collaborate with each other with tree main features:

  1. Collaboration: Students can create and join groups to work on projects together.
  2. Kanban board: Each group has a kanban board to manage their tasks.
  3. Chat: Each group has a chat with an IA that helps them to organize their tasks, meetings and statistics of the tasks.
  4. Meetings: Each group can schedule meetings with the members of the group.

Dev

Java Microservices

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 -q

Caution

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.

Python Microservice

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

Poetry

Execute the next command to install the dependencies and run the microservice.

poetry install
poetry run python main.py

pip (without virtual environment)

Execute the next command to install the dependencies and run the microservice.

pip install -r requirements.txt
python main.py

Tip

With this batch script it's possible to launch all the microservices.

Microservices

This microservices are built with Spring Boot and FastAPI.

Config

This microservice is responsible for managing the configuration of the other microservices.

Technologies

  • Spring Cloud Config Server

Eureka

This microservice is responsible for managing the services of the other microservices.

Technologies

  • Spring Cloud Config Client
  • Spring Cloud Eureka Server
  • Spring Actuator

Gateway

This microservice is responsible for managing the requests to the other microservices and the authentication of the users.

Technologies

  • Spring Cloud Gateway
  • Spring Cloud Eureka Client
  • Spring Cloud Config Client
  • JWT

Identity

This microservice is responsible for managing the users of the platform. Like login and me (get the user information).

Technologies

  • Spring Security
  • Spring JPA Data
  • Spring Cloud Eureka Client
  • Spring Cloud Config Client
  • MySQL
  • JWT

Teams

This microservice is responsible for managing the teams of the groups. Like creating (with or without criteria), updating, deleting and listing the teams.

Technologies

  • Spring Cloud Eureka Client
  • Spring Cloud Config Client
  • Spring JPA Data
  • WebSockets
  • MySQL

Profile

This microservice is responsible for managing the profiles of the users (user tier and user role).

Technologies

  • Spring JPA Data
  • Spring Cloud Eureka Client
  • Spring Cloud Config Client
  • MySQL

Kanban

This microservice is responsible for managing the kanban boards of the groups.

Technologies

  • Spring JPA Data
  • Spring Cloud Eureka Client
  • Spring Cloud Config Client
  • MySQL

Meetings

This microservice is responsible for managing the meetings of the groups.

Technologies

  • Spring JPA Data
  • Spring Cloud Eureka Client
  • Spring Cloud Config Client
  • MySQL

Chatbot

This microservice is responsible for managing the chatbot for each group.

Technologies

  • FastAPI
  • Py Eureka Client
  • Config Client
  • OpenAI

Doc

All the endpoints are documented with Swagger.

About

Microservices for UTP+ Hackathon Project.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages