Skip to content

Latest commit

 

History

History
80 lines (61 loc) · 3.22 KB

README.md

File metadata and controls

80 lines (61 loc) · 3.22 KB

Project Logo

Sobre

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!

Rodando o Projeto localmente

Pré-requisitos

Antes de começar, certifique-se de ter o seguinte instalado em seu sistema:

Como executar

  1. Clone o repositório para sua máquina local usando o Git:
git clone https://github.com/RavinProject/ProjetoRavin.git
  1. Navegue até o diretório que contém a classe principal App.java:
cd ProjetoRavin/src/main/java/org/ravin
  1. Compile o código:
javac App.java
  1. Execute a classe principal:
java App

Status atual

Entidades Criação (Create) Leitura (Read) Atualização (Update) Deleção (Delete)
Cardápio 🚧 🚧 🚧 🚧
Cliente ✔️ ✔️ ✔️ ✔️
Comanda 🚧 🚧 🚧 🚧
Estoque ✔️ ✔️ ✔️ ✔️
Funcionário ✔️ ✔️ ✔️ ✔️
Mesa 🚧 🚧 🚧 🚧
Pedido 🚧 🚧 🚧 🚧
Produto ✔️ ✔️ ✔️ ✔️

Conceitos aplicados

Arquitetura

Padrão MVCS, desacoplando a parte visual, entidades, regra de negócios e dados

Architecture

Conceitos gerais

  • 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)

Design Patterns

  • 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

Diagrama de Classe

Class Diagram