Este é um desafio para desenvolver uma API RestFul de acordo com a descrição do git https://github.com/brain-ag/trabalhe-conosco.
As seguintes ferramentas foram usadas na construção do projeto:
- Node.js
- Express
- PostgreSQL
- Prisma ORM
- GitFlow
- Docker
- Swagger
- Jest
- Typescript
- DDD
- Clean Architecture
- Hexagonal Architecture
- Principles SOLID
- Design Patterns
- Unit Tests
Antes de começar, você vai precisar ter instalado em sua máquina as seguintes ferramentas: Git, Node.js, PostgreSQL e Docker (caso queira iniciar com o docker). Além disto é bom ter um editor para trabalhar com o código como VSCode.
Será necessário clonar o projeto para sua máquina local,rodando.
git clone https://github.com/samuelsankys/desafio-verx.git``
Variáveis de Ambiente
Antes de iniciar, você precisará realizar duas cópias do arquivo .env.example
e renomeá-lo para .env
e .env.development
. Nesses arquivos estarão as variáveis de ambientes do modo de desenvolvimento e de produção. No arquivo .env.example
tem as informações para rodar o projeto localmente.
- Instale as dependências com
npm install
- Certifique que o Postgres está funcionando e rode.
npm run migrate
Isso irá construir as tabelas necessárias para rodar nosso projeto.
- Por fim, inicialize o servidor com
npm run dev
para o modo de desenvolvimento.
Antes de inicializar certifiquesse de parar algum container que contenha o postgres rodando. Após isso, para inicializar o servidor e banco de dados rode:
docker-compose up --build
A documentação das rotas poderá ser visualizada após inicializado o servidor no endpoint http://localhost:3563/api-docs/
.
- O usuário deverá ter a possibilidade de cadastrar, editar, e excluir produtores rurais.
- O sistema deverá validar CPF e CNPJ digitados incorretamente.
- A soma de área agrícultável e vegetação, não deverá ser maior que a área total da fazenda
- Cada produtor pode plantar mais de uma cultura em sua Fazenda.
- A plataforma deverá ter endpoint para um Dashboard
- Aplicação de padrões Clean Code.
- classes desacopladas.
- Commits seguindo o padrão de convensão.
- Fluxo de git utilizando boas práticas auxiliado pelo gitflow.
- Eslint.