Projeto desenvolvido para a disciplina de Programação Orientada a Objetos
Universidade Federal da Paraíba (UFPB)
Somos alunos do curso de Sistemas de Informação da Universidade Federal da Paraíba (UFPB).
Este projeto foi desenvolvido na disciplina de Programação Orientada a Objetos, ministrada pelo Professor Dr. Dorgival Netto, com o objetivo de aplicar conceitos de Engenharia de Software, Arquitetura em Camadas, Modelagem UML e Padrões de Projeto na construção de um sistema de gestão para uma rede de padarias.
O projeto tem como objetivo desenvolver um Sistema de Gestão para uma Rede de Padarias, permitindo centralizar o gerenciamento das unidades da rede e melhorar o controle dos recursos utilizados em cada uma delas.
O sistema busca oferecer:
- Controle de estoque;
- Cadastro e gerenciamento de insumos;
- Registro de movimentações de entrada e saída;
- Controle das unidades da rede;
- Gerenciamento de demandas de reposição;
- Redução de desperdícios;
- Maior organização das informações.
- ✅ Cadastro de Unidades
- ✅ Cadastro de Insumos
- ✅ Adição de Insumos ao Estoque
- ✅ Registro de Movimentações (Entrada e Saída)
- ✅ Criação de Demandas de Reposição
- ✅ Consulta de Estoque por Unidade
- ✅ Listagem de Demandas de Reposição
- ✅ Consulta de Unidade
- ✅ Consulta de Insumo
- 🔄 Persistência de dados utilizando SQLite
O sistema foi desenvolvido utilizando Arquitetura em Camadas (Layered Architecture), separando as responsabilidades da aplicação para facilitar manutenção, escalabilidade e organização do código.
Controller
│
▼
Service
│
▼
Repository
│
▼
SQLite
Model representa as entidades do sistema.
View representa a interface em console responsável pela interação com o usuário.
O sistema utiliza alguns padrões de projeto para melhorar sua organização e manutenção.
- MVC (Model-View-Controller): separação entre interface, regras de negócio e dados.
- Factory: responsável pela criação das implementações dos repositórios.
- Strategy: utilizada para representar os diferentes tipos de movimentação do estoque (Entrada e Saída).
src
│
├── controller
├── factory
├── model
├── repository
├── service
├── strategy
├── view
└── Main.java
- Unidade
- Insumo
- Estoque
- Movimentacao
- DemandaReposicao
O sistema é utilizado por meio de um menu em console com as seguintes opções:
1 - Cadastrar Unidade
2 - Consultar Unidade
3 - Cadastrar Insumo
4 - Consultar Insumo
5 - Adicionar Insumo ao Estoque
6 - Registrar Movimentação (Entrada/Saída)
7 - Criar Demanda de Reposição
8 - Consultar Estoque de uma Unidade
9 - Listar Demandas de Reposição
0 - Sair
| Foto | Nome | |
|---|---|---|
![]() |
Arthur Neto Coutinho da Silva | arthur.coutinho@dcx.ufpb.br |
![]() |
João Alisson de Oliveira Freitas | joao.freitas@dcx.ufpb.br |
![]() |
Kaany Araújo Feitosa Rolin | kaany.rolin@dcx.ufpb.br |
![]() |
Maria Gabriella de Oliveira Barbosa | maria.oliveira@dcx.ufpb.br |
- Java 21
- SQLite
- IntelliJ IDEA
- Git
- GitHub
- UML
- Notion
- Draw.io
- Programação Orientada a Objetos (POO)
- Arquitetura MVC
- ✅ Criação da Página no GitHub
- ✅ Compreensão do Sistema
- ✅ Definição da Arquitetura
- ✅ Modelagem de Classes
- ✅ Padrões de Projeto
- ✅ Diagramas de Sequência
- ✅ Implementação
| Documento | Entrega |
|---|---|
| 📁 Repositório no GitHub | Etapa 00 |
| 📁 Compreensão do Sistema | Etapa 01 |
| 📁 Definição da Arquitetura | Etapa 02 |
| 📁 Modelagem de Classes | Etapa 03 |
| 📁 Padrões de Projeto | Etapa 04 |
| 📁 Diagramas de Sequência | Etapa 05 |
Clone o repositório:
git clone https://github.com/Arthurne/Projeto-APS.gitEm seguida:
- Abra o projeto no IntelliJ IDEA.
- Configure o JDK 21 (ou versão compatível).
- Execute a classe
Main.java. - Utilize o menu do sistema para acessar as funcionalidades disponíveis.
Este projeto foi desenvolvido exclusivamente para fins acadêmicos na disciplina de Programação Orientada a Objetos da Universidade Federal da Paraíba (UFPB).




