Desafio técnico
O objetivo deste desafio foi desenvolver uma aplicação web para gestão de receitas de cozinha, com autenticação e sistema de cadastro de usuários.
- Autenticação (com token JWT via cookie):
- Login de usuário
- Cadastro de usuário
- Receitas:
- Listagem de receitas
- Opções de filtro por nome e dificuldade da receita
- Exibição em cards com opção de deleção (soft-delete)
- Modal com detalhes da receita selecionada
- Listagem de receitas
Para este projeto, optei por utilizar o shadcn como design system.
A estrutura de pastas do projeto está organizada da seguinte forma:
sofex-test/
├── backend/
│ ├── prisma/
│ │ ├── migrations/
│ │ ├── seeds/ # Seeds do banco de dados
│ │ ├── schema.prisma
│ ├── src/
│ │ ├── auth/
│ │ ├── common/ # Componentes gerais (decorators, enums, guards, etc.)
│ │ ├── health/
│ │ ├── recipes/
│ │ ├── users/
│ │ ├── app.module.ts
│ │ └── main.ts
│ └── ...
└── frontend/
├── public/
├── src/
│ ├── app/
│ ├── components/
│ │ ├── common/ # Componentes gerais (topbar, pagination-control, etc.)
│ │ ├── cards/ # Cards
│ │ ├── forms/ # Formulários
│ │ ├── modals/ # Modais
│ │ ├── sections/ # Seções da Home
│ │ └── ui/ # Componentes do shadcn
│ ├── contexts/
│ ├── hooks/
│ ├── libs/
│ │ ├── enums/ # Enums usados no projeto
│ │ ├── interfaces/ # Interfaces usadas no projeto
│ │ ├── schemas/ # Schemas usados no projeto
│ │ └── utils/ # Utilitários
│ └── services/ # Serviços e chamadas de API
└── ...
- Clone o repositório:
git clone git@github.com:mateusmedeir/sofex-test.git
- Navegue para a pasta do projeto:
cd sofex-test
- Instale as dependências do frontend:
cd frontend yarn
- Inicie o frontend:
yarn dev
- Instale as dependências do backend:
cd backend yarn
- Inicie o backend:
yarn start:dev
Para popular o banco de dados com dados iniciais, siga os passos abaixo:
- Certifique-se de ter o dotenv-cli instalado:
npm i -g dotenv-cli
- Rode a seed de usuários:
yarn prisma:seed:users
- Em seguida, rode a seed das receitas:
yarn prisma:seed:recipes