Este novo projeto, intitulado Pedidos DoThi Sushi, alinha-se perfeitamente com sua experiência acadêmica e técnica na FATEC-Assis, utilizando uma stack robusta baseada em Java e MySQL.
Abaixo, apresento a estruturação técnica detalhada do projeto, incorporando os princípios de Engenharia de Software e Sustentabilidade que você valoriza em sua prática pedagógica.
1. Contexto do Projeto: Pedidos DoThi Sushi
- Objetivo: Desenvolver um sistema web para gerenciamento de pedidos de sushi, permitindo o cadastro, visualização e controle organizado.
- Problema a Resolver: Substituir processos manuais para evitar perda de comandas, erros de anotação, demora no atendimento e o impacto ambiental do desperdício de papel.
- Sustentabilidade: O projeto atua diretamente na redução de resíduos físicos, alinhando-se ao seu interesse em tecnologia sustentável.
2. Engenharia de Software
2.1 Requisitos Funcionais (RF)
- RF-001: O sistema deve permitir a identificação do cliente e do prato solicitado.
- RF-002: O sistema deve permitir a seleção da forma de pagamento no momento do pedido.
- RF-003: O sistema deve realizar a listagem organizada de todos os pedidos cadastrados.
- RF-004: O sistema deve permitir a exclusão de pedidos.
- RF-005: O sistema deve gerenciar o Status do Pedido (ex: Em Preparo, Pronto, Entregue).
2.2 Requisitos Não Funcionais (RNF)
- RNF-001 (Desempenho): O sistema deve registrar o pedido de forma rápida para diminuir problemas operacionais.
- RNF-002 (Integridade): Garantir o armazenamento persistente das informações em banco de dados para evitar extravios.
- RNF-003 (Usabilidade): Interface simples em HTML5/CSS3 para facilitar o uso pelo atendente.
3. Modelagem de Dados (MySQL)
Utilizando os padrões de Modelo Relacional observados em seus planos de ensino, a estrutura inicial do banco de dados é definida abaixo:
3.1 Modelo Entidade-Relacionamento (MER)
erDiagram
PEDIDO {
int id_pedido PK
string nome_cliente
string prato_escolhido
string forma_pagamento
string status_pedido
datetime data_pedido
}
3.2 Script DDL (Data Definition Language)
CREATE DATABASE dothi_sushi_db;
USE dothi_sushi_db;
CREATE TABLE pedidos (
id_pedido INT AUTO_INCREMENT PRIMARY KEY,
nome_cliente VARCHAR(100) NOT NULL,
prato_escolhido VARCHAR(150) NOT NULL,
forma_pagamento ENUM('Dinheiro', 'Cartão', 'Pix') NOT NULL,
status_pedido ENUM('Recebido', 'Em Preparo', 'Pronto', 'Entregue') DEFAULT 'Recebido',
criado_em TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
4. Arquitetura e Ferramentas
O desenvolvimento seguirá o ecossistema técnico que você domina:
- Arquitetura: Aplicação do padrão MVC (Model-View-Controller) em Java para separar a lógica de negócio (pedidos) da interface web.
- Back-end: Uso de Java no IntelliJ IDEA, possivelmente integrando com frameworks como Spring Boot para facilitar a persistência com o MySQL.
- Front-end: Interface responsiva utilizando HTML5 e CSS3.
- Versionamento: Controle de versão via Git e hospedagem do código no GitHub.
5. Próximos Passos Sugeridos
Para elevar o nível do projeto conforme os padrões da FATEC-Assis:
- Refatoração para POO: Implementar a classe
Pedidocom atributos encapsulados e métodos de validação. - Relatórios: Criar uma visualização que mostre os pratos mais solicitados, auxiliando no controle de estoque.
- Interface de Cozinha: Desenvolver uma tela específica que liste apenas pedidos com status “Recebido” ou “Em Preparo”, otimizando o fluxo operacional.
Com base nas diretrizes de Engenharia de Software e nos padrões pedagógicos da FATEC-Assis, apresento o detalhamento técnico avançado para o projeto Pedidos DoThi Sushi. Esta versão incorpora melhorias de arquitetura, fluxos operacionais e segurança de dados.
2. Engenharia de Software (Avançada)
2.4 Diagrama de Casos de Uso (UML)
O diagrama abaixo detalha as interações entre os atores (Atendente e Cozinheiro) e o sistema, focando na resolução dos problemas de atraso e organização.
flowchart LR
At(("Atendente"))
Coz(("Cozinheiro"))
subgraph Sistema ["Sistema DoThi Sushi"]
direction TB
UC1(["Cadastrar Pedido"])
UC2(["Consultar Fila de Pedidos"])
UC3(["Atualizar Status do Pedido"])
UC4(["Cancelar/Excluir Pedido"])
UC5(["Gerar Resumo do Dia"])
end
At --> UC1
At --> UC2
At --> UC4
Coz --> UC2
Coz --> UC3
UC1 -.->|<<include>>| UC2
Versão em SVG (Diagrama de Casos de Uso):
2.5 Diagrama de Classes (Padrão MVC)
Para este projeto em Java, aplicamos o padrão MVC (Model-View-Controller) para garantir manutenibilidade e escalabilidade, princípios fundamentais que você leciona.
classDiagram
class PedidoModel {
-int id
-String nomeCliente
-String prato
-String status
+salvar()
+atualizarStatus()
}
class PedidoController {
+processarNovoPedido()
+listarPedidosAtivos()
+removerPedido()
}
class PedidoView {
+exibirFormulario()
+exibirPainelCozinha()
}
PedidoController --> PedidoModel : manipula
PedidoController --> PedidoView : gerencia
3. Banco de Dados (MySQL)
3.1 MER - Modelo Entidade-Relacionamento
A estrutura foi aprimorada para incluir o registro de Data/Hora, essencial para o controle eficiente e redução de atrasos mencionados no escopo.
erDiagram
PEDIDO ||--o{ LOG_STATUS : "registra"
PEDIDO {
int id_pedido PK
string nome_cliente
string prato_escolhido
string forma_pagamento
enum status_pedido
datetime criado_em
}
LOG_STATUS {
int id_log PK
int id_pedido FK
string status_anterior
string novo_status
datetime data_alteracao
}
4. Melhorias Sugeridas Implementadas
As seguintes melhorias foram integradas para elevar a qualidade técnica do projeto:
- Validação de Status: O sistema impede que um pedido seja excluído sem que haja um registro de justificativa, aumentando o controle sobre extravios.
- Gestão de Sustentabilidade: Implementação de um “Modo Digital” onde o cliente pode visualizar o status do seu pedido via QR Code, eliminando totalmente a necessidade de comandas físicas.
- Integridade Referencial: Uso de chaves estrangeiras (
FK) para garantir que cada alteração de status esteja vinculada a um pedido existente. - Arquitetura Java: Utilização de JDBC ou JPA/Hibernate para a conexão segura entre o Back-end em Java e o MySQL.
5. Plano de Implementação (Timeline)
| Semana | Fase | Foco Técnico |
|---|---|---|
| S1 | Requisitos | Refinamento das formas de pagamento e pratos. |
| S2 | Modelagem | Configuração do banco dothi_sushi_db no MySQL. |
| S3 | Back-end | Desenvolvimento das classes DAO (Data Access Object) em Java. |
| S4 | Front-end | Construção da interface responsiva com HTML5 e CSS3. |
| S5 | Integração | Testes de fluxo: do cadastro à entrega do pedido. |
Este detalhamento técnico pode ser facilmente convertido para o formato Marp para suas apresentações ou para o Jekyll/MkDocs para documentação oficial do projeto.