Esse é o backend. para front, vá para https://github.com/pedroandriottii/hunt-hub-front This is the backend. for the front ent, visit https://github.com/pedroandriottii/hunt-hub-front
Obs: O módulo "application" possui o nome application por conter a classe springbootapplication e as classes relativas à configuração da aplicação. Não possui referência à camada de aplicação no DDD.
Repositório destinado ao projeto Hunt-hub, da disciplina de Requisitos, projeto de software e validação, do 5° período no CESAR School.
Hunt Hub é uma plataforma destinada a conectar hunter com POs que buscam tais profissionais para realizar projetos.
O PO anuncia uma task, faz um pagamento prévio, adicionada também à uma taxa cobrada pela plataforma ajustada ao valor da task.
Ademais, o PO fornece uma descrição detalhada do serviço, incluindo tags que indicam o tipo de profissional necessário
(como desenvolvedor back-end, administrador de banco de dados, cientista de dados, entre outros), a quantidade de reuniões desejadas com o Hunter,
o pagamento, e por fim, o prazo de entrega esperado. O sistema também inclui um mecanismo de qualificação para os hunters e POs,
baseado em níveis (“levels”) e troféus (“achievements”), que recompensam os profissionais conforme completam novas tasks.
Para uma descrição mais aprofundada, acesse nossa
Descrição de Domínio
No desenvolvimento do nosso projeto, utilizamos os seguintes padrões de projetos:
- Observer: O Observer é usado no gerenciamento de notificações entre usuários (POs e Hunters). Ele promove o desacoplamento entre os serviços que geram eventos e os usuários que precisam ser notificados, permitindo uma comunicação eficiente e flexível. Isso facilita a manutenção e a expansão do sistema, permitindo adicionar novos tipos de notificações sem alterar o código existente. O uso do observer pode ser encontrado no arquivo NotificationService e TaskService, localizado na pasta hunt-hub/domain/src/main/java/com/groupseven/hunthub/domain/services
- Builder: O Builder é usado para criar objetos complexos, como Hunter, PO e Task, de maneira organizada e flexível. Ele permite construir objetos passo a passo, garantindo consistência e melhorando a legibilidade do código. Esse padrão facilita a criação de instâncias completas, mesmo para objetos com muitos atributos ou configurações opcionais. O uso do Builder pode ser encontrado nas pastas hunt-hub/bdd/src/test/java/com/groupseven/hunthub/steps/builder e hunt-hub/bdd/src/test/java/com/groupseven/hunthub/steps/director
git clone https://github.com/CarlosAugustoP/hunt-hub.git
git clone https://github.com/pedroandriottii/hunt-hub-front.git
cd ./hunt-hub
docker compose up
Obs: Certifique-se que não haja conflito de volumes ou contêineres. O nosso banco PostgreSQL roda na porta 5432.
- Dentro de outro terminal do Backend, rode: cd ./hunt-hub
mvn clean install
cd ./hunt-hub/application
mvn spring-boot:run
cd ./hunt-hub-front
npm install
npm run build
npm run start
npm run dev
Protótipo
Mapa de histórias
Context Map
Drive
Arthur Paixão [email protected] |
Carlos Augusto [email protected] |
Estela Lacerda [email protected] |
Gabriel Pires [email protected] |
Gabriel Rossiter [email protected] |
Luis Otávio [email protected] |
Matheus Gomes [email protected] |
Paulo Campos [email protected] |
Pedro Andriotti [email protected] |
Repository intended for the Hunt-hub project, part of the Requirements, Software Project, and Validation course in the 5th semester at CESAR School.
Hunt Hub is a platform designed to connect hunters with POs looking for professionals to carry out projects. The PO posts a task, makes a preliminary payment, which includes a fee charged by the platform based on the task's value. Additionally, the PO provides a detailed description of the service, including tags that indicate the type of professional needed (such as back-end developer, database administrator, data scientist, among others), the desired number of meetings with the hunter, payment details, and the expected delivery deadline. The system also includes a qualification mechanism for both hunters and POs, based on levels and achievements, rewarding professionals as they complete new tasks.
For a more in-depth description, please visit our
document.
In the development of our project, we utilized the following design patterns:
- Observer: The Observer pattern is used for managing notifications between users (POs and Hunters). It promotes decoupling between the services that generate events and the users who need to be notified, enabling efficient and flexible communication. This simplifies system maintenance and expansion, allowing new types of notifications to be added without altering the existing code. The usage of the Observer pattern can be found in the NotificationService file, located in the hunt-hub/domain/src/main/java/com/groupseven/hunthub/domain/services folder.
- Builder: The Builder pattern is used to create complex objects, such as Hunter, PO, and Task, in an organized and flexible manner. It allows building objects step by step, ensuring consistency and improving code readability. This pattern facilitates the creation of complete instances, even for objects with many attributes or optional configurations. The usage of the Builder pattern can be found in the folders hunt-hub/bdd/src/test/java/com/groupseven/hunthub/steps/builder and hunt-hub/bdd/src/test/java/com/groupseven/hunthub/steps/director.
git clone https://github.com/CarlosAugustoP/hunt-hub.git
git clone https://github.com/pedroandriottii/hunt-hub-front.git
cd ./hunt-hub
docker compose up
cd ./hunt-hub
mvn clean install
cd ./hunt-hub/application
mvn spring-boot:run
cd ./hunt-hub-front
npm install
npm run build
npm run start
Prototype
History Map
Context Map
Drive
Arthur Paixão [email protected] |
Carlos Augusto [email protected] |
Estela Lacerda [email protected] |
Gabriel Pires [email protected] |
Gabriel Rossiter [email protected] |
Luis Otávio [email protected] |
Matheus Gomes [email protected] |
Paulo Campos [email protected] |
Pedro Andriotti [email protected] |