Aplicacao SPA para busca e cadastro de pratos, seguindo a mesma tematica de comida usada no Projeto 1. O seed busca imagens reais na API TheMealDB (a Foodish, usada no Projeto 1, foi descontinuada pelo proprietario). React no frontend, Express no backend, MongoDB como banco de dados e Redis para cache e blacklist de tokens.
- Lucas Silva Teixeira - 2465329
- Gabriela Rocha Passotto - 2454351
.
├── backend
│ ├── server.js
│ └── src
│ ├── config
│ ├── models
│ └── routes
└── frontend
└── src
├── components
├── contexts
├── pages
├── routes
└── services
- Node.js 20+
- MongoDB
- Redis
Por fins de facilitar a execução, removemos do .gitignore as variáveis de ambiente, porém estão listadas:
backend/.env:
PORT=3333
MONGO_URI=mongodb://127.0.0.1:27017/oficinas
REDIS_URL=redis://127.0.0.1:6379
JWT_SECRET=troque_este_segredo
JWT_EXPIRES_IN=1h
FRONTEND_URL=http://localhost:5173frontend/.env
VITE_API_URL=http://localhost:3333cd backend
npm install
npm run seed
npm run devEm outro terminal:
cd frontend
npm install
npm run devO seed cria:
- Email:
professor@example.com - Senha:
123456
Backend:
npm run dev: inicia com Nodemon.npm start: inicia em modo normal.npm run seed: cria usuario inicial e pratos de exemplo.
Frontend:
npm run dev: servidor Vite.npm run build: build de producao com compressao gzip/brotli.npm run preview: preview do build.
POST /loginPOST /logoutGET /foodsGET /foods/:idPOST /foodsPUT /foods/:idDELETE /foods/:id
Todas as rotas protegidas exigem Authorization: Bearer <token>.