Bem-vindo ao repositório do Cantina School Website! Este projeto oferece uma solução completa para gerenciamento da cantina escolar no Colégio Fantástico, permitindo que estudantes comprem produtos e que a equipe administrativa gerencie o estoque, pagamentos e usuários de forma eficiente.
- Gerenciamento de Produtos da Cantina: Estudantes podem visualizar, pesquisar e adquirir produtos. Administradores podem criar, editar e remover itens do estoque.
- Carrinho de Compras: Usuários autenticados adicionam produtos ao carrinho, removem itens e finalizam a compra, descontando automaticamente o saldo disponível.
- Sistema de Permissões e Papéis de Usuário: Diferentes papéis (administrador, financeiro, estudante) definem quem pode criar, editar ou aprovar ações, garantindo segurança e organização.
- Afiliados e Folha de Pagamento (Payroll): Permite configurar relações de afiliados, possibilitando integrar recargas e liquidações de valores via folha de pagamento de forma centralizada.
- Recargas e Pagamentos: O usuário pode recarregar seu saldo usando diversos métodos de pagamento (incluindo folha de pagamento). Solicitações de recarga podem precisar de aprovação de um administrador. Em breve: Pagamentos via Pix!
- Despacho de Produtos: Após a compra, a cantina pode marcar produtos como "a despachar" e depois "despachados", facilitando o controle de retirada.
- Estatísticas e Exportações: Possibilidade de extrair estatísticas sobre vendas, métodos de pagamento mais usados, produtos mais populares e histórico de recargas. Exportação de dados em formato Excel para análise e controle interno.
- Gestão de Usuários: Administradores podem criar, editar e remover usuários, atualizar senhas, e aplicar filtros de pesquisa. É possível identificar usuários com saldo disponível, saldo em folha de pagamento, entre outros.
Defina um arquivo .env
com as seguintes variáveis:
TIMEZONE=America/Maceio
WEBUI_PORT=8080
Se desejar expor externamente sem um proxy reverso, você pode alterar para WEBUI_PORT=80
.
Certifique-se de ter o Docker instalado. Em seguida, execute:
docker-compose up -d
Isso iniciará o sistema completo:
- Nginx: Proxy reverso interno, garantindo que apenas a porta definida no
.env
seja exposta. - Next.js (Frontend): Interface web do usuário.
- Flask (Backend): APIs internas, não expostas diretamente.
As credenciais do usuário inicial serão geradas em credentials.txt
.
Para produção, recomenda-se um proxy reverso externo ou simplesmente definir WEBUI_PORT=80
no .env
.
Faça um fork do projeto, crie uma branch de feature e envie um pull request. Sua contribuição é bem-vinda!
- GitHub: @felipeadeildo
- Email: [email protected]
Feliz desenvolvimento! 🎉
- Verificar status dos contêineres:
docker compose ps
- Parar os contêineres:
docker-compose down