Svelte Commerce
A standalone open-source storefront built with SvelteKit, headless across 26 commerce backends. MIT licensed.
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗Sistema de pedidos da cantina do COTEMIG. O aluno vê o cardápio, monta o carrinho, paga com o saldo da carteira e retira o pedido no balcão com um código. A administração acompanha os pedidos e cuida do cardápio e dos alunos.
| Nome | Matrícula |
|---|---|
| Caio Antunes Guedes Alves da Silva | 12501719 |
| Davi Pimentel de Moraes | 12502120 |
| Ana Julia Gois do Nascimento | 22401369 |
| João Vitor Marques de Sampaio | 22400540 |
| Felipe Ferreira da Fonseca | 12502537 |
| Maria Eduarda Fidelis Correa | 12401595 |
| Parte | Tecnologia |
|---|---|
| Front-end | HTML, CSS, JavaScript e Bootstrap 5.3 |
| Back-end | Python, Flask (API JSON), Flask-SQLAlchemy e Flask-Login |
| Banco | MySQL, com stored procedures (SQLite para testar sem MySQL) |
| Servidor | AWS EC2 |
Existem três perfis: aluno, admin e mestre. O primeiro cadastro do sistema vira mestre.
Aluno
Admin
Mestre (tudo do admin, e mais)
Status de um pedido: Pendente (em preparo) → Pronto (pronto para retirar) → Concluído (entregue). Antes de ser entregue, o pedido pode ser Cancelado.
flowchart LR
T["Tela<br/>(HTML + JS)"] -->|"fetch: HTTP + JSON"| C["Controller<br/>(rotas)"]
C --> S["Service<br/>(regras)"]
S --> M["Model<br/>(CRUD)"]
S --> R["Repository<br/>(consultas especiais)"]
M --> DB[("MySQL")]
R -->|"CALL sp_..."| DB
| Camada | Pasta | Papel |
|---|---|---|
| Controller | backend/controllers/ | Recebe a requisição, chama o service e devolve JSON |
| Service | backend/services/ | Um caso de uso por classe, com as regras de negócio |
| Model | backend/models/ | Uma classe por tabela, com o CRUD |
| Repository | backend/repositories/ | Consultas não-CRUD, feitas por stored procedures |
Exemplo, o aluno finaliza o pedido:
cardapio.js → POST /api/carrinho/finalizar → item_pedido_controller → FinalizarPedidoService → Pedido / ItemPedido → banco
O diagrama de classes está em docs/diagrama-de-classes.md.
| Procedure | Usada em |
|---|---|
sp_produtos_por_categoria | Filtro por categoria |
sp_produtos_por_faixa_de_preco | Filtro por preço |
sp_produtos_ordenar_por_preco / sp_produtos_ordenar_por_nome | Ordenação |
sp_repetir_ultimo_pedido | "Repetir último pedido" |
sp_combinacoes_mais_pedidas | Combos mais pedidos |
Elas são criadas pelo backend/database/create-database.sql.
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
python app.py
Abra http://127.0.0.1:5000.
Sem configuração, o projeto usa SQLite (cantina.db). Para usar o MySQL, rode o create-database.sql e crie um .env na raiz:
DATABASE_URL=mysql+pymysql://usuario:senha@localhost/cantina_db?charset=utf8mb4
SECRET_KEY=um-texto-longo-e-aleatorio
FLASK_DEBUG=False
| Pasta | O que tem em cada pasta |
|---|---|
backend/ | A API: camadas, app.py e login |
backend/database/ | Script do MySQL (tabelas e procedures) |
front-end/ | As páginas |
front-end/js/ | Um JavaScript por página |
backend/imagens-produtos | Fotos dos produtos |
docs/ | Diagrama de classes |
preco_atual.RateioPagamento e a tabela existem, mas ainda não têm tela nem rota.