Esse projeto faz parte de um desafio do curso de NodeJS da Rocketseat. Consiste em uma aplicação backend com o objetivo de catalogar animais de estimação através de uma API REST, que pode ser acessada por outras aplicações, ajudando pessoas a encontrar um amigo..
- Javascript/Typescript: Linguagem de programção principal.
- NodeJS: Plataforma para executar JavaScript no backend.
- PostgreSQL: Banco de dados utilizado na aplicação.
- Fastify: Web framework para construir APIs no NodeJS.
- Prisma ORM: ORM para comunicação com o banco de dados.
- Docker: Ambiente configuarado para o banco de dados postgress.
A aplicação segue os seguintes padrões de design:
-
Arquitetura Limpa: A estrutura do projeto é organizada em camadas (entidades, casos de uso, interfaces) para separar as preocupações e facilitar a manutenção.
-
Domain Driven Design (DDD): O design do software é orientado ao domínio, focando em regras de negócio e entidades principais.
-
Injeção de Dependência: Inversão de controle e injeção de dependência são usadas para garantir flexibilidade de código e testabilidade.
-
Testes Automatizados: Testes unitários são escritos para garantir a qualidade do código.
- Se cadastrar como organização
- Se autenticar como organização
- Cadastrar um pet
- Pesquisar pets por cidade e estado, como também por características
- Obter detalhes de um pet e da org em que ele está
- Adicionar o swagger para documentar melhor as rotas da API
- Adicionar fluxo de upload de imagens do pets
- Adicionar testes end-to-end
Para rodar essa aplicação, é necessário ter instalado o NodeJS e Docker na sua máquina.
- Execute o comando
cp .env.example .envpara criar arquivos de variáveis de ambiente. - Inicie os serviços do Docker usando:
docker-compose up -d - Execute o comando
pnpm installpara baixar as dependências. Você pode usar o gerenciador de pacotes que preferir. - Execute o comando
pnpm prisma migrate deploypara aplicar as migrações ao banco de dados. - Execute o comando
pnpm buildpara buildar a aplicação. - Execute o comando
pnpm startpara rodar a aplicação.
- Execute o comando
pnpm testpara rodar os testes unitarios
- Adicionar controle dos pets já adotados
- Possibilidade de remover um pet
Este projeto está sob a licença MIT. Acesse o link LICENSE para mais detalhes.
O código-fonte da aplicação pode ser encontrado no GitHub: Project Link
Em caso de dúvidas ou sugestões, entre em contato conosco através do email: [email protected].