Skip to content

jeff-pedro/challenge-backend-adopet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Challenge Backend: AdoPet

A AdoPet 🐾 é uma empresa fictícia que funciona como intermediária entre pessoas que querem adotar pets e ONGs recolhem os animais das ruas.

Adopet App

Potuguese - English

🤖 Tecnologias usadas

🦾 Sobre o desafio

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.

👨🏽‍💻 Sobre o desenvolvimento

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.

🏗️ Projetos

⚙️ Como usar esse repositório

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.


☝🏾 Voltar ao topo

About

Back-End Challenge that build an API RESTful for Adopet website.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published