O código consiste em construir uma interface web que possibilite o upload de um arquivo de transações de produtos vendidos, normalizar os dados e armazená-los em um banco de dados relacional.
- link da apresentação Loom
Para conseguir utilizar o projeto e contribuir nele, basta seguir as instruções abaixo:
- O Node.js é OBRIGATÓRIO para executar esse projeto e é RECOMENDADO usar a versão LTS.
- O NPM ou Yarn são OBRIGATÓRIO para o gerenciamento dos pacotes da aplicação.
- O Git é OBRIGATÓRIO para o controle de versão do projeto.
- O MySQL é OBRIGATÓRIO para o funcionamento da aplicação.
Primeiro clone o repositório em seu computador, por meio do terminal utilizando o comando:
- Clonando o repositório
# Clone o repositório
$ git clone https://github.com/Juninho-dev/challenge-fullstack-coodesh.git
# Entre na pasta raiz da aplicação
$ cd challenge-fullstack-coodesh
- Criando arquivo
.env
e.env.local
- Começe criando um arquivo
.env
dentro do diretório do servidor e cole as seguintes variáveis: - Utilize HMAC Generator caso seja necessário.
DATABASE_URL="mysql://user:password@localhost:3306/databasename"
JWT_SECRET="yourHMACgenerate"
- Crie um arquivo
.env.local
dentro do diretório do front e cole a seguinte variável:
NEXT_PUBLIC_API_URL="http://localhost:3333"
- Iniciando o Projeto
- Após configurado a etapa anterior, basta executar os seguintes comandos:
# Instale as dependências do servidor
$ cd server && yarn # ou npm install
# Execute o comando abaixo para criar as tabelas do banco de dados
$ yarn prisma migrate dev
# Execute o comando abaixo para seedar o banco de dados
$ yarn seed
# Execute o comando abaixo para iniciar o servidor
$ yarn dev
# Instale as dependências da aplicação web
$ cd web && yarn # ou npm install
# Execute o comando abaixo para iniciar o projeto
$ yarn dev
- SOLID
- MVC
- Repository Pattern
O projeto esta dividido em:
- Controller
- Middleware
- Repositories
- Validators
- Routes
- Helpers
É responsável por intermediar as requisições enviadas pelo Front com as respostas fornecidas pelo Model, processando os dados que o usuário informou e repassando para outras camadas, utilizando a arquitetura MVC.
Responsável por barrar as requisições e manipular as informações. Foi criado 2 middlewares, um se chama authenticateToken
sendo responsável por verificar se o usuário esta autenticado na plataforma, o outro se chama errorMiddleware
responsável por tratar os erros da aplicação utilizando o padrão apiMessage
.
Responsável por implementar as regras de negócio no que se refere aos modelos de banco de dados.
Responsável por tratar e validar as informações enviadas pelo Front.
Responsável por conter todas as rotas da API
.
Feito para criar funcões que possam ser usadas mais de uma vez no código e tambem manter o código limpo.
- Adding ORM
Prisma 10
. - Create
Repository Pattern
module. - Use
SOLID
Arquiteture. - Create auth routes.
- Create
Middleware
authenticate. - Implementing tratative errors.
- Use the default response api.
- Create sales routes.
- Create unit tests.
- Create
swagger
documentation.
- Create Login page.
- Create Register page.
- Create Dashboard page.
- Configure
cypress
and automatized tests. - Create middleware authenticate private routes.
- Adding
sweet-alert2
for return messages in application. - Install axios and configure
api.ts
Feito com 💙 por 👾Juniel ® 2022.