|
O Ondekié é um sistema de gestão de eventos desenvolvido como trabalho final da disciplina Projeto de Software do 4º período do Bacharelado em Engenharia de Software da PUC Minas, sob orientação do Prof. Dr. João Paulo Aramuni.
A plataforma permite que usuários descubram lugares e eventos bacanas - shows, festivais, exposições e muito mais - e realizem a compra de ingressos de forma prática. O sistema contempla três perfis de acesso: Participante, Organizador e Administrador, cada um com funcionalidades específicas para compra, gestão e moderação de eventos. Este repositório reúne exclusivamente a modelagem do sistema, documentada no estilo TCC da PUC Minas, por meio de diagramas UML elaborados com PlantUML. O desenvolvimento da aplicação em si não faz parte do escopo deste trabalho. |
|
- Links Úteis
- Sobre o Projeto
- Funcionalidades Principais
- Tecnologias Utilizadas
- Modelagem do Sistema
- Estrutura de Pastas
- Documentações Utilizadas
- Autor
- Agradecimentos
- Licença
- 📖 Documentação: Documentação do Projeto (PDF)
O Ondekié surgiu da necessidade de reunir em um único lugar a descoberta de eventos culturais, shows, festivais e locais de entretenimento, combinando essa funcionalidade com a conveniência de adquirir ingressos diretamente pela plataforma.
O projeto foi desenvolvido exclusivamente como modelagem de sistema, seguindo práticas profissionais de Engenharia de Software e documentado no padrão TCC da PUC Minas. Toda a especificação foi construída com diagramas UML utilizando PlantUML, abrangendo visões estruturais, comportamentais e de implantação do sistema.
O escopo da modelagem contempla:
- Levantamento de requisitos com 29 casos de uso distribuídos entre três perfis de atores
- Visão estrutural com diagramas de classes, componentes e modelo lógico de dados
- Visão comportamental com diagramas de sequência, comunicação e estados
- Visão de implantação com a arquitetura de microsserviços e diagrama de deployment
- 🔐 Autenticação e Recuperação de Senha: Login seguro e fluxo de recuperação de acesso para todos os perfis.
- 🔍 Descoberta de Eventos e Locais: Pesquisa e navegação por eventos disponíveis e locais de entretenimento cadastrados.
- 🎟️ Gestão de Ingressos: Inscrição em eventos, compra de ingressos, visualização e validação de entradas.
- 💳 Pagamento e Reembolso: Fluxo de pagamento integrado com confirmação de ação e solicitação de reembolso.
- ⭐ Avaliação e Feedback: Avaliação de eventos participados e envio de feedback sobre a plataforma.
- 🗂️ Gestão de Eventos pelo Organizador: Criação, edição e moderação de eventos e locais de entretenimento, com visualização de métricas e participantes.
- 🛡️ Administração da Plataforma: Gerenciamento de categorias, acesso de organizadores, moderação de eventos e acompanhamento de feedbacks.
- 🔖 Favoritos: Marcação de eventos de interesse para acompanhamento futuro.
Este projeto é exclusivamente de modelagem de software, sem implementação de código de produção. A única tecnologia utilizada foi:
| Ferramenta | Descrição | Versão |
|---|---|---|
| PlantUML | Ferramenta de geração de diagramas UML a partir de texto simples | v1.2025 |
Todos os diagramas foram criados em arquivos .puml e exportados como imagens .png.
A modelagem do Ondekié cobre as principais visões arquiteturais e comportamentais do sistema, abrangendo desde a especificação de casos de uso até a definição estrutural de componentes, classes e fluxos de interação.
Especifica os 29 casos de uso do sistema, distribuídos entre os atores Usuário, Participante, Organizador e Administrador.
Apresenta a visão macro da arquitetura do sistema, baseada em microsserviços, com os principais serviços, responsabilidades e interações entre eles.
Define a estrutura estática do sistema, com as entidades principais, seus atributos, métodos e os relacionamentos entre as classes.
Descreve a organização dos componentes de software do sistema e as interfaces que os conectam.
Ilustra a infraestrutura física e lógica de implantação do sistema, incluindo servidores, contêineres e a distribuição dos serviços.
Representa o modelo lógico de dados do sistema, com as entidades, atributos e relacionamentos do banco de dados.
Modela o ciclo de vida dos principais objetos do sistema, especificando os estados possíveis e as transições entre eles.
Detalham a ordem das interações entre os objetos do sistema para os fluxos mais relevantes.
| Diagrama de Sequência | Diagrama de Comunicação |
|---|---|
![]() |
![]() |
| Diagrama de Sequência | Diagrama de Comunicação |
|---|---|
![]() |
![]() |
| Diagrama de Sequência | Diagrama de Comunicação |
|---|---|
![]() |
![]() |
Os diagramas de comunicação dos casos de uso UC06, UC07 e UC16 estão agrupados junto aos respectivos diagramas de sequência na seção anterior.
.
├── README.md # 📘 Documentação principal do projeto
├── LICENSE.md # ⚖️ Licença MIT do projeto
│
├── codes/ # 📁 Código-fonte dos diagramas PlantUML
│ ├── architecture-diagram/
│ │ └── architecture-diagram.puml # 🏗️ Diagrama de Arquitetura
│ ├── class-diagram/
│ │ └── class-diagram.puml # 🧬 Diagrama de Classes
│ ├── communication-diagram/
│ │ ├── uc06-communication-diagram.puml # 💬 Diagrama de Comunicação - UC06
│ │ ├── uc07-communication-diagram.puml # 💬 Diagrama de Comunicação - UC07
│ │ └── uc16-communication-diagram.puml # 💬 Diagrama de Comunicação - UC16
│ ├── component-diagram/
│ │ └── component-diagram.puml # 🧩 Diagrama de Componentes
│ ├── deployment-diagram/
│ │ └── deployment-diagram.puml # 🌐 Diagrama de Implantação
│ ├── logical-model/
│ │ └── logical-model.puml # 🗄️ Modelo Lógico de Dados
│ ├── sequence-diagram/
│ │ ├── general-sequence-diagram.puml # 🔁 Diagrama de Sequência Geral
│ │ ├── uc06-sequence-diagram.puml # 🔁 Diagrama de Sequência - UC06
│ │ ├── uc07-sequence-diagram.puml # 🔁 Diagrama de Sequência - UC07
│ │ └── uc16-sequence-diagram.puml # 🔁 Diagrama de Sequência - UC16
│ ├── state-diagram/
│ │ └── state-diagram.puml # 🔄 Diagrama de Estados
│ └── use-case-diagram/
│ └── use-case-diagram.puml # 🎯 Diagrama de Casos de Uso
│
├── docs/
│ └── project-documentation.pdf # 📄 Documentação completa do projeto (TCC)
│
└── images/ # 📁 Imagens exportadas dos diagramas
├── architecture-diagram/
│ └── architecture-diagram.png
├── class-diagram/
│ └── class-diagram.png
├── communication-diagram/
│ ├── uc06-communication-diagram.png
│ ├── uc07-communication-diagram.png
│ └── uc16-communication-diagram.png
├── component-diagram/
│ └── component-diagram.png
├── deployment-diagram/
│ └── deployment-diagram.png
├── logical-model/
│ └── logical-model.png
├── sequence-diagram/
│ ├── general-sequence-diagram.png
│ ├── uc06-sequence-diagram.png
│ ├── uc07-sequence-diagram.png
│ └── uc16-sequence-diagram.png
├── state-diagram/
│ └── state-diagram.png
└── use-case-diagram/
└── use-case-diagram.png
- 📖 Linguagem de Modelagem: Documentação Oficial do PlantUML
- 📖 Padrão UML: Especificação UML 2.5 - Object Management Group (OMG)
- 📖 Guia de Estilo: Conventional Commits (Padrão de Mensagens)
- 📖 Referência Acadêmica: Normas de TCC - PUC Minas
Artur Bomtempo |
|---|
Desenvolvido por Artur Bomtempo 👋🏻. Entre em contato:
- Engenharia de Software PUC Minas - Pelo apoio institucional, estrutura acadêmica e fomento às boas práticas de Engenharia de Software.
- Prof. Dr. João Paulo Aramuni - Pelos ensinamentos sobre Projeto de Software, Arquitetura de Software e Padrões de Projeto, e pelo template base deste README.
- PlantUML - Pela ferramenta open-source que tornou possível a criação de todos os diagramas deste projeto de forma simples e eficiente.
Este projeto é distribuído sob a Licença MIT.














