Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/alxdelira/teste-gazintech


https://github.com/alxdelira/teste-gazintech

Last synced: 7 days ago
JSON representation

Awesome Lists containing this project

README

        


Project programing languages count

Teste Técnico Gazin Tech_





Last commit on GitHub
Made by Alexandre Nogueira
Project top programing language
GitHub license



💜 Projeto On-Line...



Ir para o uso agora »






Report Bug

·

Request Feature


## 📦 Sobre o Projeto



Este projeto consiste em uma aplicação para cadastro de desenvolvedores associados a diferentes níveis. A aplicação é composta por um backend que oferece uma API RESTful e um frontend que é uma SPA (Single Page Application) interligada à API.


## 🔥 Checklist 📝
### 🚀 Nível 1
- [x] Listar niveis
- [x] Cadastrar um nível
- [x] Editar um nível
- [x] Remover um nível
- [x] Listar desenvolvedores
- [x] Cadastrar um desenvolvedor
- [x] Editar um desenvolvedor
- [x] Remover um desenvolvedor

### 🚀 Nível 2

- [x] Impedir remoção de nível com desenvolvedores associados
- [x] Adicionar busca via query para a listagem de n íveis
- [x] Adicionar busca via query para a listagem de desenvolvedores
- [x] Tratamento de Exceções / Retornos erros concisos
- [x] Paginação na listagem de níveis
- [x] Paginação na listagem de desenvolvedores
- [x] Mensagens de sucesso e/ou erros (Ex. Toast Notification)
- [x] Confirmação para exclusão de itens
- [x] Ordenação das tabelas clicando no nome da coluna
- [x] Validações de campos
- [x] Na página de níveis adicionar uma coluna com a qtde de devs associados

### 🚀 Nível 3
- [x] Tipagem de dados
- [x] Organização e estrutura de pastas
- [x] Reaproveitamento de código
- [x] Clean Code
- [x] Arquitetura: Clean, Onion, Hexagonal
- [ ] Testes unitários / Feature
- [x] Documentação código/endpoint (swagger)

### 🚀 Nível 4
- [x] Disponibilização do backend via Docker
- [x] Disponibilização do frontend via Docker
- [x] Disponibilização dos containers (backend + frontend) via Docker Compose
- [x] Publicação do projeto online

## 🧭 Technologies Back-End

Este projeto foi desenvolvido com as seguintes tecnologias:

- `cors`: [npm cors](https://www.npmjs.com/package/cors)
- `dotenv`: [dotenv on GitHub](https://github.com/motdotla/dotenv)
- `express`: [Express.js on GitHub](https://github.com/expressjs/express)
- `Javascript`: [JavaScript on Docs](https://developer.mozilla.org/pt-BR/docs/Web/JavaScript)
- `Swagger`: [swagger-UI on GitHub](https://github.com/swagger-api/swagger-ui)
- `Mongo DB Atlas`: [MongoDB - Atlas](https://www.mongodb.com/pt-br)
- `mongoose`: [Mongoose on GitHub](https://github.com/Automattic/mongoose)
- `mongoose-paginate-v2`: [npm mongoose-paginate-v2](https://www.npmjs.com/package/mongoose-paginate-v2)

## 🌐 Technologies Front-End

Este projeto foi desenvolvido com as seguintes tecnologias:

- `@hookform/resolvers`: [npm @hookform/resolvers](https://www.npmjs.com/package/@hookform/resolvers)
- `@radix-ui/react-dialog`: [npm @radix-ui/react-dialog](https://www.npmjs.com/package/@radix-ui/react-dialog)
- `@radix-ui/react-dropdown-menu`: [npm @radix-ui/react-dropdown-menu](https://www.npmjs.com/package/@radix-ui/react-dropdown-menu)
- `@radix-ui/react-label`: [npm @radix-ui/react-label](https://www.npmjs.com/package/@radix-ui/react-label)
- `@radix-ui/react-popover`: [npm @radix-ui/react-popover](https://www.npmjs.com/package/@radix-ui/react-popover)
- `@radix-ui/react-select`: [npm @radix-ui/react-select](https://www.npmjs.com/package/@radix-ui/react-select)
- `@radix-ui/react-slot`: [npm @radix-ui/react-slot](https://www.npmjs.com/package/@radix-ui/react-slot)
- `@tanstack/react-table`: [npm @tanstack/react-table](https://www.npmjs.com/package/@tanstack/react-table)
- `axios`: [npm axios](https://www.npmjs.com/package/axios)
- `class-variance-authority`: [npm class-variance-authority](https://www.npmjs.com/package/class-variance-authority)
- `clsx`: [npm clsx](https://www.npmjs.com/package/clsx)
- `cmdk`: [npm cmdk](https://www.npmjs.com/package/cmdk)
- `dotenv`: [npm dotenv](https://www.npmjs.com/package/dotenv)
- `lucide-react`: [npm lucide-react](https://www.npmjs.com/package/lucide-react)
- `next`: [npm next](https://www.npmjs.com/package/next)
- `react`: [npm react](https://www.npmjs.com/package/react)
- `react-dom`: [npm react-dom](https://www.npmjs.com/package/react-dom)
- `react-hook-form`: [npm react-hook-form](https://www.npmjs.com/package/react-hook-form)
- `react-toastify`: [npm react-toastify](https://www.npmjs.com/package/react-toastify)
- `sharp`: [npm sharp](https://www.npmjs.com/package/sharp)
- `tailwind-merge`: [npm tailwind-merge](https://www.npmjs.com/package/tailwind-merge)
- `tailwindcss-animate`: [npm tailwindcss-animate](https://www.npmjs.com/package/tailwindcss-animate)
- `zod`: [npm zod](https://www.npmjs.com/package/zod)

## ⚓ Rodando o Projeto

Você precisará do [Node.js](https://nodejs.org) e [Docker](https://www.docker.com/get-started/) instalado no seu computador para rodar este app.

🔧 Execute o script para rodar localmente o back-end
```bash
git clone https://github.com/Alxdelira/teste-gazintech.git

cd teste-gazin-tech

cd backend

cp .env.example .env
# Configure o .env de acordo com as portas disponiveis
npm install

npm run dev
```
🔧 Para rodar localmente o back-end
```bash
cd frontend

cp .env.example .env
# Configure o .env de acordo com as portas disponiveis
npm install

npm run dev
```
🚢 usando `docker-compose.yml` para rodar as imagens
```bash
# diretorio principal execute o seguinte comando no terminal

docker compose -f docker-compose.yml up -d

docker exec backend/ npm run seed
```

## Autor

| [
Alexandre Nogueira](https://github.com/Alxdelira) |
| :-----------------------------------------------------------------------------------------------------------------------------------------------: |















banner