A AdoPet 🐾 é uma empresa fictícia que funciona como intermediária entre pessoas que querem adotar pets e ONGs recolhem os animais das ruas.
Potuguese - English
Este projeto foi desenvolvido como resultado de um Desafio Back-End exclusivo para alunos da escola de tecnologia Alura.
O desafio consiste em simular um ambiente de trabalho real no qual é disponibilizado tarefas através do Trello com entregas semanais, durante 4 semanas. Cada tarefa descreve o que o cliente fictício deseja que seja construído. Temos a liberdade de realizar modificações ou seguir novas abordagens a depender das necessidades e criatividade. Podemos também escolher as tecnologias que desejarmos para desenvolver o projeto.
No desenvolvido da API foi utilizado o Express como framework de construção de aplicações web, o ORM Sequelize para abstrair a integração com o banco de dados SQL entre outras tecnologias listadas ☝🏾 logo acima, todos como forma de praticar os conceitos das bibliotecas, ferramentas e construção de APIs RESTful.
Para a integração da API com o Front-End previamente desponibilizado, explorei os recursos do React para realizar as chamadas da API com o UseEffect, organizar o código da autenticação via login através dos hooks e contexts, entre outros recursos que foram sendo necessários durante os ajustes no desenvolvimento e testes.
A API abrange rotas para gerenciamento de usuários, pets, abrigos, perfil e permissões. Assim como autenticação de usuários através de login e autorização de acesso as rotas por meio de tokens JWT gererado no login. Além disso, há também o controle via permissão às rotas por perfil de usuário.
Para os testes de unidade e integração na API foi usado Jest, enquanto para os testes E2E no Front-end foi usado o Cypress como test runner.
Usei o Docker para a construção da imagem e o Docker Compose para subir a aplicação e o banco de dados localmente para dar suporte ao desenvolvimento e testes.
Há testes e build automatizados que são realizados pelo GithHub Actions toda vez que um novo commit é enviado para branch principal do repositório da API. Uma vez que todas as verificação são validadas é gerada uma imagem docker e publicada no Docker Hub.
O deploy da API e do Front-End é realizado pela plataforma do Render, também de forma automática seguindo a mesma regra descrito acima.
Contudo uma refatoração futura do código será necessária após a evolução dos meus estudos.
- 🚀 Acesse o site para conhecer o AdoPet.
Este repositório consiste de dois módulos, a api e o front-end do Adopet. É possivels clonar os projetos individualmente ou através deste repositório via git submodules.
Clone este repositório atualizando recursivamente os módulos
git clone --recurse-submodules https://github.com/jeff-pedro/challenge-backend-adopet.git
E leia os READMEs de cadas projeto para aprender como usuá-los.