Skip to content

carlos-hfc/food-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Food App

Este projeto é uma aplicação completa para gestão de pedidos e restaurantes, composta por três principais módulos:

  • api/: Backend em Node.js com TypeScript, utilizando Prisma ORM, Docker e Vitest para testes. Responsável pela lógica de negócios, autenticação, rotas REST, manipulação de dados e integração com banco de dados.
  • client/: Frontend para clientes finais, desenvolvido em React + Vite, com componentes modernos, integração via Axios, gerenciamento de estado e autenticação.
  • web/: Painel administrativo para restaurantes, também em React + Vite, com funcionalidades de gestão de produtos, pedidos, avaliações e relatórios.

Funcionalidades

  • Cadastro e login de usuários
  • Listagem e filtro de restaurantes
  • Gestão de pedidos, favoritos e avaliações
  • Painel administrativo para restaurantes
  • Upload de imagens
  • Relatórios e métricas

Requisitos

  • Node.js 20+
  • Docker e Docker Compose
  • npm/pnpm (ou outro gerenciador, dependendo do projeto)

Tecnologias Utilizadas

Estrutura do Projeto

food-app/
├── api/      # Backend (Node.js, TypeScript, Prisma, Docker)
├── client/   # Frontend do cliente (React, Vite)
├── web/      # Painel administrativo (React, Vite)

Configuração

Backend (api)

  1. Instale as dependências:
cd api
npm install
  1. Configure as variáveis ambiente:
PORT=
DATABASE_URL=
JWT_SECRET=
NODE_ENV=
  1. Rode o banco de dados com Docker:
docker-compose up -d
  1. Execute as migrações do Prisma:
npm run prisma:migrate
  1. Popule o banco com exemplos: (opcional)
npm run prisma:seed

Frontend (client/web)

  1. Instale as dependências:
cd client # ou cd web
npm install # ou pnpm install
  1. Configure as variáveis ambiente:
VITE_API_URL=

Executando o projeto

cd api 
npm run dev
cd client # ou cd web
npm run dev # ou pnpm dev

Contribuição

Pull requests são bem-vindos! Para contribuir, siga as boas práticas de commit e mantenha o padrão de código.

Licença

Este projeto está sob a licença MIT.