Este projeto é uma atividade do programa +Devs2Blu 2023. Criamos um sistema para gerenciar um restaurante fictício, segundo algumas especificações gerais. Na fase #1 do projeto, estamos desenvolvendo apenas em Java, sem frameworks. Nossa abordagem foi partir para Code-first, e assim que o sistema estiver minimamente completo, iniciaremos a integração com uma camada de persistência.
Confiram nossa Wiki do Projeto bem como temos desenvolvido nossa organização de fluxo de trabalho!
Antes de começar, certifique-se de ter o seguinte instalado em seu sistema:
- Java JDK 17 ou superior
- Git
- Clone o repositório para sua máquina local usando o Git:
git clone https://github.com/RavinProject/ProjetoRavin.git
- Navegue até o diretório que contém a classe principal
App.java
:
cd ProjetoRavin/src/main/java/org/ravin
- Compile o código:
javac App.java
- Execute a classe principal:
java App
Entidades | Criação (Create) | Leitura (Read) | Atualização (Update) | Deleção (Delete) |
---|---|---|---|---|
Cardápio | 🚧 | 🚧 | 🚧 | 🚧 |
Cliente | ✔️ | ✔️ | ✔️ | ✔️ |
Comanda | 🚧 | 🚧 | 🚧 | 🚧 |
Estoque | ✔️ | ✔️ | ✔️ | ✔️ |
Funcionário | ✔️ | ✔️ | ✔️ | ✔️ |
Mesa | 🚧 | 🚧 | 🚧 | 🚧 |
Pedido | 🚧 | 🚧 | 🚧 | 🚧 |
Produto | ✔️ | ✔️ | ✔️ | ✔️ |
Padrão MVCS, desacoplando a parte visual, entidades, regra de negócios e dados
- Abstração
- Encapsulamento
- Herança
- Polimorfismo Estático ou Sobrecarga
- Polimorfismo Dinâmico ou Sobrescrita (método buscaPorCpf em ClienteController.java, FuncionarioController.java e PessoaController.java)
- Interfaces individualizadas (SIP)
- Singleton
- Classe ListaDados.java, a qual monta as listas de dados fictícios ao iniciar o programa
- Factory + Strategy
- Sistema flexível de Descontos utilizado para a regra de negócios de Desconto de Aniversariante
- Foi pensado para facilitar a implementação futura de outras regras de descontos
- Inversion of Control
- Nesta etapa do desenvolvimento do sistema, ainda não estamos fazendo uso de Frameworks.
- Mesmo assim, criamos uma sequência de dependências parametrizadas entre as classes do sistema, facilitando futuras alterações