Este projeto é um exemplo didático desenvolvido na disciplina de Projeto de Software, com o objetivo de demonstrar a implementação de um sistema de pedidos para restaurante. O projeto enfatiza a utilização de diagramas UML, especialmente Diagrama de Classes e Diagrama de Sequência, integrados ao desenvolvimento com Java Swing e persistência em banco de dados MySQL.
- Cadastrar Itens
- Editar Itens
- Excluir Itens
- Ver pedidos
- Adicionar itens ao carrinho
- Realiza Pedidos
- Finaliza Pedidos
- Remove Itens do Carrinho
O Diagrama de Domínio é uma representação conceitual que descreve as principais entidades do sistema e seus relacionamentos.
O diagrama de casos de uso é uma ferramenta visual utilizada para representar as interações entre os atores e o sistema que está sendo modelado, destacando as funcionalidades que o sistema oferece.
Cliente
O menu deve estar disponível com itens ativos.
Os itens selecionados são adicionados ao carrinho do cliente.
- O cliente seleciona um item.
- O cliente adiciona os itens ao carrinho.
- O sistema registra os itens no carrinho e exibe uma mensagem de confirmação.
O cliente pode continuar adicionando itens antes de confirmar o pedido.
Cliente
O cliente deve ter um carrinho ativo com pelo menos um item.
O carrinho do cliente é atualizado no sistema.
- O cliente acessa o carrinho.
- O cliente seleciona um item e clica em remover item.
- O sistema registra a alteração no carrinho e exibe uma mensagem de confirmação.
Se o item para remover for null ele exibe uma mensagem de erro.
O carrinho pode ser modificado até que o cliente confirme o pedido.
Cliente
O cliente deve ter um carrinho ativo com pelo menos um item.
O pedido é registrado no sistema e não pode mais ser alterado.
- O cliente acessa o carrinho.
- O cliente acessa a opção de "Fazer Pedido".
- O sistema exibe um resumo do carrinho.
- O cliente confirma o pedido.
- O sistema exibe uma mensagem de confirmação.
Se o carrinho estiver vazio, o sistema impede a confirmação e exibe uma mensagem de erro.
Após a confirmação, o pedido não pode mais ser alterado, apenas finalizado.
Cliente
O cliente deve ter um pedido confirmado.
O pedido é finalizado e o pagamento pode ser processado.
- O cliente acessa a aba dos pedidos.
- O cliente clica em finalizar pedidos.
- O sistema calcula o valor total do pedido.
- O sistema exibe o valor.
- O cliente realiza o pagamento.
- O sistema registra o encerramento do pedido.
- [Include] Emitir Ticket: O sistema emite o ticket com todos os itens no pedido e o valor total a pagar.
Se o cliente não tiver feito nenhum pedido, o sistema exibe uma mensagem de erro.
Após a confirmação, Adicionar 10% ao valor total para o garçom.
Administrador/Gerente
O sistema deve estar disponível para edição do menu.
O novo item é adicionado ao menu e fica disponível para os clientes.
- O administrador acessa o menu do administrador.
- O administrador seleciona "Cadastrar Item".
- O sistema solicita informações do novo item (nome, descrição, preço, etc.).
- O administrador insere os dados e confirma.
- O sistema adiciona o novo item ao menu e exibe uma mensagem de confirmação.
Se os dados inseridos forem inválidos ou estiverem incompletos, o sistema exibe um erro.
Administrador/Gerente
O sistema deve ter pelo menos um item cadastrado no menu.
As informações do item são atualizadas no menu.
- O administrador acessa o menu do administrador.
- O administrador escolhe um item existente.
- O sistema exibe as informações do item.
- O administrador altera os dados conforme necessário.
- O administrador confirma a alteração.
- O sistema salva as modificações no menu e exibe uma mensagem de confirmação.
Administrador/Gerente
O sistema deve ter pelo menos um item cadastrado no menu.
O item é excluído.
- O administrador acessa o menu do administrador.
- O administrador seleciona um item existente.
- O administrador clica em excluir item.
- O sistema salva a alteração e exibe uma mensagem de confirmação.
Administrador/Gerente
- O administrador acessa o menu do administrador.
- O administrador seleciona Ver Pedidos.
- o sistema exibe a tabela com os pedidos em andamento.
Este diagrama representa a estrutura das funcionalidades voltadas ao Administrador, onde a classe Item modela os produtos e a classe Pedido representa os pedidos realizados.
As classes ItemDAO e PedidoDAO são responsáveis pela persistência desses dados no banco de dados. Já as interfaces gráficas CadastrarItemForm, EditarItemForm, ExcluirItemForm e VerPedidosForm possibilitam a interação do administrador com o sistema.
Este diagrama representa a estrutura das funcionalidades voltadas ao cliente, como visualização do cardápio, carrinho de compras e realização de pedidos.
Estes diagramas mostram a interação entre os objetos para as ações do Administrador, nas funcionalidades de cadastro, edição, exclusão e visualização de pedidos.
Estes diagramas mostram a interação entre os objetos para as ações do cliente, como adicionar e remover itens do carrinho, realizar e finalizar pedidos.
-
Clone este repositório:
git clone https://github.com/MiguelToller/Trabalho-Restaurante.git
-
Crie o Banco MySQL e adicione o
Banco.txt. -
Altere (se necessário) a versão do JDK de acordo com sua máquina
-
Adicione o mysql-connector em Libraries
-
Execute o Servidor:
Server.java
-
Execute a interface gráfica:
menuADM.form (Administrador)
-
Clone este repositório:
git clone https://github.com/MiguelToller/Trabalho-Restaurante.git
-
Altere (se necessário) a versão do JDK de acordo com sua máquina
-
Adicione o mysql-connector em Libraries
-
Mudar o ip para conectar ao servidor
-
Adicionar pasta de imagens
-
Execute a interface gráfica:
Cardapio.form (Cliente)
- Compreender o uso prático de diagramas UML (classes e sequência)
- Aplicar a arquitetura orientada a objetos
- Trabalhar com persistência de dados
- Desenvolver interfaces gráficas com Swing
├───Descrições
├───Diagramas
│ ├───Diagramas Classe
│ ├───Diagramas Extra
│ └───Diagramas Sequencia
│ ├───Admin
│ └───Cliente
├───SistemaRestaurante
│ ├───build
│ │ └───classes
│ │ ├───Conexao
│ │ ├───dao
│ │ ├───model
│ │ └───sistema
│ ├───drivers
│ ├───nbproject
│ │ └───private
│ └───src
│ ├───Conexao
│ ├───dao
│ ├───model
│ └───sistema
└───SistemaRestauranteCliente
├───nbproject
│ └───private
└───src
├───Conexao
├───dao
├───model
└───sistema
Modelos de Dados
Contêm as classes responsáveis pela representação dos dados no sistema.
Item.javaCarrinho.javaItemCarrinho.javaPedido.java
Interfaces Gráficas (Administrador)
Interfaces gráficas responsáveis pela interação com o usuário para entrada, alteração, exclusão de dados e visualização de pedidos.
CadastrarItem.formEditarItem.formExcluirItem.formVerPedidos.form
Interfaces Gráficas (Cliente)
Interfaces gráficas responsáveis por exibir o cardápio, o menu principal e a tela do carrinho.
Cardapio.formTelaCarrinho.formTelaPedidos.form
Acesso ao Banco de Dados
Classes responsáveis por interagir com o banco de dados.
CarrinhoDAO.javaItemCarrinhoDAO.javaItemDAO.javaPedidoDAO.java
Arquivos de Configuração e Licença
Banco.txt– Arquivo onde os dados são persistidos.LICENSE– Arquivo que contém a licença MIT do projeto.README.md– Este arquivo, que contém instruções e explicações sobre o projeto.
Este projeto está licenciado sob os termos da licença MIT.
Consulte o arquivo LICENSE para mais informações.
Luiz Miguel Toller Marconatto
Curso de Ciência da Computação – Universidade Franciscana (UFN)
E-mail: [email protected]
GitHub: @MiguelToller
Eduardo Carvalho Ceretta
Curso de Ciência da Computação – Universidade Franciscana (UFN)
E-mail: [email protected]
GitHub: @Duduceretta
Gabriel Machado Orling de Oliveira
Curso de Ciência da Computação – Universidade Franciscana (UFN)
E-mail: [email protected]
GitHub: @Gorling














