Este projeto foi completamente desenvolvido em TypeScript, utilizando Node.js, Express.js, MongoDB e outras bibliotecas auxiliares como, jsonwebtoken, bcryptjs, jest, entre algumas outras. 🚀
Foi totalmente desenvolvido seguindo os pilares da programação orientada a objeto (POO), e seguindo alguns padrões de projeto e arquitetura, como separação dos casos de uso em use-cases, para o nosso domínio da aplicação foi criadas as entidade no formato de object-value, também separei as camadas em layers e main. A camada Layer está toda a parte das entidades, as controladoras na camada presentation, tudo que for biblioteca externa está na camada external, assim como os repositórios, qualquer import feito de módulos external são feitos na camada external. A camada main está todas as nossas factories para atender a camada layer, além de conter todas as rotas e configurações rest.
👀 Leia essa parte atentamente, pois aqui você encontrará informações importantes para rodar corretamente o projeto.
🔰 Instruções
- Clone o repositório
git clone https://github.com/Gabrielja2/fiter-back-end.git
- Entre na pasta do repositório que você acabou de clonar:
cd pasta-do-repositório
- Instale as dependências
npm install
- Configure as variáveis de ambiente, é Obrigatório para funcionar corretamente:
- Confira o arquivo .env na raiz do projeto e preencha com as variáveis de
ambiente caso seja necessário, mas ja vou deixar elas preenchidas nesse
exemplo, lembre que é obrigatório algumas dessas váriaveis para conseguir
rodar o servidor como PORT, eu utilizei a PORT=
3030
mas pode ser qualquer uma que não esteja sendo usada na sua máquina, e MONGO_UR=mongodb://localhost:27017/fiter-lottery
- Dentro do diretório FITER-LOTTERY-BACKEND, abra um terminal, suba o docker-compose e depois no mesmo terminal rode o projeto:
-
docker-compose up
-
npm run dev
São as rotas para logar ou registrar um novo usuário
Rota de Login
- Método: POST
- URL: API_BASE_URL/users/login
- Descrição: Realiza o login de um usuário cadastrado.
- Parâmetros de entrada:
- email: String (obrigatório) - E-mail do usuário.
- password: String (obrigatório) - Senha do usuário.
- Resposta de sucesso:
- Código: 200
- Corpo: Objeto contendo o token de autenticação do usuário e algumas informações.
Rota de Registro
- Método: POST
- URL: API_BASE_URL/users/register
- Descrição: Registra um novo usuário.
- Parâmetros de entrada:
- email: String (obrigatório) - E-mail do usuário.
- password: String (obrigatório) - Senha do usuário.
- Resposta de sucesso:
- Código: 201
- Corpo: String com o email do usuário criado.
Rota de Registro de tickets
- Método: POST
- URL: API_BASE_URL/tickets/register
- Descrição: Registra um novo bilhete.
- Exemplo dos parâmetros de entrada: { "tickets": [ { "ticketId": 1, "price": 3.00, "selectedNumbers": [ 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20] }, { "ticketId": 2, "price": 25000, "selectedNumbers": [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20] } ] }
- Resposta de sucesso:
- Código: 201
- Corpo: String com a mensagem de criação com sucesso.
Rota de Registro de tickets
- Método: POST
- URL: API_BASE_URL/tickets/register
- Descrição: Registra um novo bilhete.
- Exemplo dos parâmetros de entrada: { "tickets": [ { "ticketId": 1, "price": 3.00, "selectedNumbers": [ 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20] }, { "ticketId": 2, "price": 25000, "selectedNumbers": [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20] } ] }
- Resposta de sucesso:
- Código: 201
- Corpo: String com a mensagem de criação com sucesso.
Rota de busca de configuração dos tickets
- Método: GET
- URL: API_BASE_URL/ticket-config
- Descrição: Lista as configurações do bilhete.
- Resposta de sucesso:
- Código: 200
- Corpo: Um array com as configuração de preço e numeros selecionados.
Rota de busca de configuração dos sorteios e os premios
-
Método: GET
-
URL: API_BASE_URL/prize-draw-config
-
Descrição: Lista as configurações do sorteio.
-
Resposta de sucesso:
- Código: 200
- Corpo: Um array com as configuração de prêmio e numeros sorteados.
Rota de criação dos sorteios e pagamento dos premios
- Método: POST
- URL: API_BASE_URL/prize-draw-result
- Descrição: Cria o sorteio faz todas as açoes necessárias nesse fluxo.
- Resposta de sucesso:
- Código: 201
- Corpo: String com a mensagem de criação com sucesso do sorteio.