Skip to content

Hunt Hub is a web-app that connects Product Owners and Freelancers (Hunters) all over the globe!

Notifications You must be signed in to change notification settings

CarlosAugustoP/hunt-hub

Repository files navigation

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.

Hunt-hub 🇧🇷

Repositório destinado ao projeto Hunt-hub, da disciplina de Requisitos, projeto de software e validação, do 5° período no CESAR School.

Descrição do domínio

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

Padrões de Projeto utilizados

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

Como Rodar:

- Clone o repositório do Backend em uma pasta:
  git clone https://github.com/CarlosAugustoP/hunt-hub.git
- Clone o repositório do Frontend em uma pasta:
  git clone https://github.com/pedroandriottii/hunt-hub-front.git
- Dentro de um terminal do Backend, rode:
  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
- Dentro de outro terminal do Backend, rode:
  cd ./hunt-hub/application
  mvn spring-boot:run
- Dentro de um terminal do Frontend, rode:
  cd ./hunt-hub-front
  npm install
  npm run build
  npm run start
- Caso haja algum problema inesperado. use o comando seguinte:
npm run dev 

Links do projeto

Protótipo
Mapa de histórias
Context Map
Drive

Nossos desenvolvedores

Foto Paixão
Arthur Paixão

[email protected]
Foto Carlos
Carlos Augusto

[email protected]
Foto Estela
Estela Lacerda

[email protected]
Foto Pires
Gabriel Pires

[email protected]
Foto Rossiter
Gabriel Rossiter

[email protected]
Foto Luis
Luis Otávio

[email protected]
Foto Matheus
Matheus Gomes

[email protected]
Foto Paulo
Paulo Campos

[email protected]
Foto Pedro
Pedro Andriotti

[email protected]

Hunt-hub 🇺🇸

Repository intended for the Hunt-hub project, part of the Requirements, Software Project, and Validation course in the 5th semester at CESAR School.

Domain description

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.

Design Patterns Used

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.

How to Run:

- Clone the Backend repository into a folder:
  git clone https://github.com/CarlosAugustoP/hunt-hub.git
- Clone the Frontend repository into a folder:
  git clone https://github.com/pedroandriottii/hunt-hub-front.git
- In a terminal for the Backend, run:
  cd ./hunt-hub
  docker compose up
- In another terminal for the Backend, run:
  cd ./hunt-hub
  mvn clean install
- In another terminal for the Backend, run:
  cd ./hunt-hub/application
  mvn spring-boot:run
- In a terminal for the Frontend, run:
  cd ./hunt-hub-front
  npm install
  npm run build
  npm run start

Project links

Prototype
History Map
Context Map
Drive

Our developers

Foto Paixão
Arthur Paixão

[email protected]
Foto Carlos
Carlos Augusto

[email protected]
Foto Estela
Estela Lacerda

[email protected]
Foto Pires
Gabriel Pires

[email protected]
Foto Rossiter
Gabriel Rossiter

[email protected]
Foto Luis
Luis Otávio

[email protected]
Foto Matheus
Matheus Gomes

[email protected]
Foto Paulo
Paulo Campos

[email protected]
Foto Pedro
Pedro Andriotti

[email protected]

About

Hunt Hub is a web-app that connects Product Owners and Freelancers (Hunters) all over the globe!

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published