Skip to content

BetaTH/find-a-friend-api

Repository files navigation

Find a friend Api

Linguagem mais utilizada Último commit

🚧 🚀 Em construção... 🚧

🚀 Introdução

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

👨‍💻 Tecnologias

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

🏗️ Design Patterns

A aplicação segue os seguintes padrões de design:

  1. Arquitetura Limpa: A estrutura do projeto é organizada em camadas (entidades, casos de uso, interfaces) para separar as preocupações e facilitar a manutenção.

  2. Domain Driven Design (DDD): O design do software é orientado ao domínio, focando em regras de negócio e entidades principais.

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

  4. Testes Automatizados: Testes unitários são escritos para garantir a qualidade do código.

🎯 Principais Recursos

  • 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á

🧑‍💻 Em construção

  • Adicionar o swagger para documentar melhor as rotas da API
  • Adicionar fluxo de upload de imagens do pets
  • Adicionar testes end-to-end

🔧 Rodando o Projeto

Para rodar essa aplicação, é necessário ter instalado o NodeJS e Docker na sua máquina.

  • Execute o comando cp .env.example .env para criar arquivos de variáveis de ambiente.
  • Inicie os serviços do Docker usando: docker-compose up -d
  • Execute o comando pnpm install para baixar as dependências. Você pode usar o gerenciador de pacotes que preferir.
  • Execute o comando pnpm prisma migrate deploy para aplicar as migrações ao banco de dados.
  • Execute o comando pnpm build para buildar a aplicação.
  • Execute o comando pnpm start para rodar a aplicação.

🧪 Testes Automatizados

  • Execute o comando pnpm test para rodar os testes unitarios

🧑‍💻 Possíveis Melhorias

  • Adicionar controle dos pets já adotados
  • Possibilidade de remover um pet

📄 Licença

Este projeto está sob a licença MIT. Acesse o link LICENSE para mais detalhes.

🌐 GitHub

O código-fonte da aplicação pode ser encontrado no GitHub: Project Link

📧 Contact

Em caso de dúvidas ou sugestões, entre em contato conosco através do email: [email protected].

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages