You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: tp02/README.md
+10-57Lines changed: 10 additions & 57 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,4 +1,4 @@
1
-
# TP 01 - Projeto: PUCFlix - Gerenciamento de Séries e EpisódiosPUCFlix
1
+
# TP 02 - Projeto: PUCFlix - Gerenciamento de Séries, Episódios e Atores - PUCFlix
2
2
3
3
## Informações Gerais
4
4
**Disciplina:** Algoritmos e Estrutura de Dados
@@ -9,18 +9,24 @@
9
9
- Gustavo Henrique Rodrigues de Castro <br> [<imgsrc = "https://img.shields.io/badge/github-black.svg?&style=for-the-badge&logo=github&logoColor=white">](https://github.com/GhrCastro)
10
10
11
11
## Sobre a Tarefa
12
-
O objetivo deste projeto é desenvolver um sistema para gerenciar séries e episódios, implementando funcionalidades essenciais de CRUD (Create, Read, Update, Delete) e garantindo a integridade dos relacionamentos entre as entidades. A principal estrutura de dados utilizada será a Árvore B+ para otimização das buscas e indexação, além da Tabela Hash Extensível.
12
+
13
+
Este trabalho prático tem como objetivo aprofundar o uso de estruturas de dados para representar relacionamentos entre entidades no contexto de um sistema de gerenciamento de séries, chamado PUCFlix 1.0. Após a implementação de um relacionamento 1:N no primeiro trabalho (TP1), o foco agora está na implementação de um relacionamento N:N (muitos-para-muitos) entre as entidades Série e Ator, utilizando duas Árvores B+ para garantir buscas eficientes e consistência dos dados.
14
+
15
+
No sistema, cada série pode ter vários atores e cada ator pode participar de várias séries. Para isso, foram implementadas estruturas que permitem associar os IDs das séries aos IDs dos atores e vice-versa. Além disso, foi desenvolvido o CRUD completo para atores, com validações que impedem a exclusão de um ator caso ele esteja vinculado a alguma série.
16
+
17
+
O menu principal do programa foi ampliado para incluir a manutenção de atores, e as visões de séries e atores foram adaptadas para exibir os vínculos entre eles. A manipulação desses vínculos também pode ser feita durante o cadastro ou edição de séries, garantindo assim uma interface intuitiva e a integridade dos dados.
18
+
19
+
Este trabalho reforça a importância de organizar bem as estruturas de dados, garantir consistência nas operações e manter uma interface clara para o usuário final.
13
20
14
21
## Organização do Grupo
22
+
15
23
A equipe está organizada por meio das seguintes ferramentas e metodologias:
16
24
-**Metodologia Ágil:** As tarefas foram distribuídas em **sprints**.
17
25
-**Comunicação:** O grupo utiliza **Discord** e **WhatsApp** para alinhamento das atividades.
18
26
-**Gerenciamento de Tarefas:** O acompanhamento das atividades ocorre no **GitHub Projects**.
19
27
20
28
## Organização de Pastas do Projeto
21
29
22
-
-**`tp02/base_code`**: Armazena implementações de código base, como árvores B+, tabelas hash extensíveis e operações CRUD, ainda não utilizadas no projeto, mas fundamentais para futuras expansões.
23
-
24
30
-**`tp02/bin`**: Contém os arquivos `.class` compilados do código-fonte, organizados conforme a estrutura de pacotes de `src`. São usados para rodar a aplicação.
25
31
26
32
-**`tp02/src`**: Contém o código-fonte da aplicação, organizado em subpastas:
@@ -32,62 +38,9 @@ A equipe está organizada por meio das seguintes ferramentas e metodologias:
32
38
33
39
-**`tp02/files`**: Armazena os dados persistentes do sistema, como arquivos de clientes e índices.
34
40
35
-
-**`tp02/appendix`**: Armazena os arquivos correspondentes ao relatos de cada aluno.
36
-
37
-
38
41
Essa estrutura facilita a organização modular e futura expansão do projeto.
39
42
40
43
41
-
## Sprints e Tarefas
42
-
43
-
### 🟢 Sprint 1: Estrutura e Funcionalidade Principal (Foco no CRUD e no Relacionamento 1:N)
44
-
**Prazo recomendado:** Até 24
45
-
46
-
1️⃣ **Implementar CRUD de Séries** (🗂️)
47
-
- Criar a estrutura da entidade Série
48
-
- Implementar inclusão, alteração, busca e exclusão
49
-
50
-
2️⃣ **Implementar CRUD de Episódios** (🎞️)
51
-
- Criar a estrutura da entidade Episódio
52
-
- Implementar inclusão, alteração, busca e exclusão
53
-
54
-
3️⃣ **Criar a relação 1:N entre séries e episódios usando Árvore B+** (🔗)
55
-
- Definir o par (idSerie; idEpisódio)
56
-
- Criar e gerenciar os índices na Árvore B+
57
-
58
-
4️⃣ **Criar a visão e controle de séries (Interface + Lógica)** (📺)
59
-
- Criar a classe VisaoSeries para entrada/saída de dados
60
-
- Criar a classe ControleSeries para gerenciar operações
61
-
62
-
5️⃣ **Criar a visão e controle de episódios (Interface + Lógica)** (🎭)
63
-
- Criar a classe VisaoEpisodios para entrada/saída de dados
64
-
- Criar a classe ControleEpisodios para gerenciar operações
65
-
66
-
6️⃣ **Garantir que séries não possam ser excluídas se tiverem episódios vinculados** (🚫)
67
-
- Implementar regra de negócio para evitar exclusão incorreta
68
-
69
-
### 🟡 Sprint 2: Regras Extras, Testes e Documentação (Foco em otimização, regras e finalização)
70
-
**Prazo recomendado:** Até 30 (com tolerância até 31)
71
-
72
-
7️⃣ **Permitir visualização dos episódios organizados por temporada** (📆)
73
-
- Criar método para exibir episódios de uma série separados por temporada
74
-
75
-
8️⃣ **Criar e configurar os índices usando Tabela Hash Extensível e Árvore B+** (📌)
76
-
- Implementar os índices para otimizar as buscas
77
-
78
-
9️⃣ **Garantir que episódios só possam ser criados para séries existentes** (✔️)
79
-
- Criar validação para impedir episódios sem série válida
80
-
81
-
🔟 **Testar todas as operações e validar o funcionamento** (🔍)
82
-
- Testar CRUD, relacionamento 1:N e regras de exclusão
83
-
84
-
1️⃣1️⃣ **Criar documentação e relatório (README) para o GitHub** (📝)
85
-
- Explicar como o sistema funciona, estrutura de classes e métodos principais
86
-
87
-
1️⃣2️⃣ **Responder ao checklist do professor e relatar desafios** ✅ (📑)
88
-
- Verificar cada requisito do trabalho e documentar dificuldades enfrentadas
0 commit comments