- Descrição
- Tecnologias Utilizadas
- Estrutura de Pastas
- Como Instalar e Rodar o Projeto
- Projeto ao Vivo
- Fluxo de Dados
- Licença
- Autor
O AlFood é um sistema de gerenciamento de restaurantes e cardápios online. É um MVP (Produto Mínimo Viável) que permite listar restaurantes e seus respectivos pratos, além de oferecer uma área administrativa para gerenciar esses dados.
- Listagem de restaurantes com paginação
- Visualização de pratos por restaurante
- Área administrativa para:
- Cadastro, edição e exclusão de restaurantes
- Cadastro, edição e exclusão de pratos
- Interface responsiva e amigável
- Integração com API backend em Django
React 17TypeScriptReact Router Dom 6Axiospara requisições HTTPMaterial UIpara componentes de interfaceSASSpara estilização avançadaCSS Modulespara estilos encapsulados
Django 3.2Django REST FrameworkDockereDocker Composepara containerizaçãoPython 3.9SQLite(desenvolvimento)
alfood-cms/
├── backend/ # API Django
│ ├── restaurantes/ # App de restaurantes
│ ├── Dockerfile # Configuração do container
│ ├── docker-compose.yml # Orquestração de containers
│ └── requirements.txt # Dependências Python
├── public/ # Arquivos estáticos
│ └── imagens/ # Imagens do projeto
├── src/ # Código fonte React
│ ├── componentes/ # Componentes reutilizáveis
│ ├── interfaces/ # Interfaces TypeScript
│ ├── paginas/ # Páginas da aplicação
│ │ ├── Administracao/ # Área administrativa
│ │ ├── Home/ # Página inicial
│ │ └── VitrineRestaurantes/ # Listagem de restaurantes
│ └── App.tsx # Componente principal
└── package.json # Dependências JavaScript
src/App.tsx: Configuração de rotas da aplicaçãosrc/http.ts: Cliente HTTP configurado com Axiossrc/interfaces/: Definições de tipos para o TypeScriptbackend/docker-compose.yml: Configuração do ambiente de desenvolvimento
- Node.js (v14 ou superior)
- npm ou yarn
- Docker e Docker Compose (para o backend)
- Git
- Clone o repositório:
git clone https://github.com/Melksedeque/alfood-cms.git
cd alfood-cms- Instale as dependências do frontend:
npm install- Inicie o backend com Docker:
cd backend
docker-compose up -d- Volte para a pasta raiz e inicie o frontend:
cd ..
npm start- Acesse a aplicação em http://localhost:3000
O projeto utiliza as seguintes variáveis de ambiente que podem ser configuradas:
REACT_APP_API_URL: URL da API (padrão: http://localhost:8000/api/v1)
O backend já vem configurado com dados iniciais através do arquivo seed.json. Ao iniciar o container Docker, o banco de dados será populado automaticamente.
-
Visualizar restaurantes:
- Acesse a página inicial e clique em "Conheça os melhores restaurantes"
- Ou navegue diretamente para
/restaurantes
-
Acessar área administrativa:
- Navegue para
/admin - Selecione "Restaurantes" ou "Pratos" no menu lateral
- Navegue para
-
Adicionar um novo restaurante:
- Na área administrativa, clique em "+ Adicionar" na seção de restaurantes
- Preencha o nome e salve
-
Adicionar um novo prato:
- Na área administrativa, acesse a seção de pratos
- Clique em "+ Adicionar"
- Preencha os dados, selecione uma imagem e salve
- API não responde: Verifique se o container Docker está rodando com
docker ps - Erro ao carregar imagens: Verifique se o backend está configurado corretamente para servir arquivos estáticos
- Problemas de CORS: Verifique se o backend está configurado para permitir requisições do frontend
Para acessar uma versão de demonstração do projeto, visite: https://alfood-cms.vercel.app
-
Listagem de Restaurantes:
- Frontend faz requisição GET para
/restaurantes/ - API retorna lista paginada de restaurantes
- Frontend renderiza os dados e botão "Carregar mais" se houver próxima página
- Frontend faz requisição GET para
-
Administração:
- CRUD completo para restaurantes e pratos
- Formulários enviam dados via POST/PUT
- Exclusão via DELETE
- Após operações bem-sucedidas, usuário é redirecionado para a listagem
-
Upload de Imagens:
- Formulário de pratos permite upload de imagens
- Dados enviados como
multipart/form-data - Backend processa e armazena as imagens
Este projeto está licenciado sob a Licença MIT. Veja o arquivo MIT License para mais detalhes.
- GitHub - Melksedeque
- FrontEndMentor - Melksedeque
- Twitter / X - SouzaMelk
- LinkedIn - Melksedeque Silva
