tp-aeds-iii

Java CRUD Todo List using byte file storage and hash-based indexing for efficient task management.

https://github.com/giusfds/tp-aeds-iii

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (1.8%) to scientific vocabulary
Last synced: 9 months ago · JSON representation ·

Repository

Java CRUD Todo List using byte file storage and hash-based indexing for efficient task management.

Basic Info
  • Host: GitHub
  • Owner: giusfds
  • License: mit
  • Language: Java
  • Default Branch: main
  • Homepage:
  • Size: 249 KB
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 2
  • Open Issues: 0
  • Releases: 0
Created almost 2 years ago · Last pushed over 1 year ago
Metadata Files
Readme Contributing License Code of conduct Citation

readme.md

Trabalho Prático AEDs 3 - Parte 3

Descrição

Este trabalho amplia o sistema CRUD desenvolvido nas etapas anteriores, integrando consultas otimizadas, índices inversos e outras melhorias avançadas de processamento de dados. Nesta fase, também aplicamos o relacionamento 1:N entre Tarefa e Categoria a cenários mais complexos, utilizando estruturas como Árvore B+, Lista Invertida e Tabela Hash Extensível para otimizar o acesso e a manipulação dos dados.

Estrutura do Projeto

Diretórios

  • controller:
    Contém as classes responsáveis pela lógica de controle do sistema, implementando as operações CRUD e otimizando a interação com as estruturas de dados.

    • Classes principais:
      • ArquivoCategoria: Gerencia a persistência e manipulação de categorias.
      • ArquivoTarefa: Gerencia a persistência e manipulação de tarefas.
      • IndiceInvertido: Implementa um índice para buscas eficientes baseadas em termos.
  • model:
    Contém as estruturas de dados utilizadas pelo sistema, como Árvores B+, Tabelas Hash e representações de entidades.

    • Classes principais:
      • Categoria e Tarefa: Representam as entidades do sistema.
      • ArvoreBMais: Implementa a Árvore B+ usada no relacionamento 1:N e outras buscas.
      • HashExtensivel: Gerencia índices indiretos por meio de uma tabela hash extensível.
      • ListaInvertida: Implementa o índice invertido para busca textual.
      • StopWords: Gerencia palavras irrelevantes para buscas textuais (com suporte a um arquivo externo stopword.txt).
  • util:
    Contém utilitários para entrada/saída e operações auxiliares.

    • Classes principais:
      • IO: Oferece métodos para leitura e escrita em arquivos e auxilia na manipulação de dados.
  • view:
    Contém a interface de interação com o usuário, organizando menus e exibições de dados.

    • Classes principais:
      • CategoriasView e TarefasView: Interfaces para interagir com os dados das entidades.
      • PrincipalView: Classe principal que centraliza o fluxo de interação.

Estrutura de Dados

  1. Árvore B+

    • Relaciona categorias e tarefas, garantindo acesso eficiente e ordenado.
  2. Hash Extensível

    • Gerencia índices indiretos para buscas rápidas por nome de categoria.
  3. Lista Invertida

    • Facilita buscas por termos em descrições de tarefas, ignorando palavras irrelevantes (stopword.txt).
  4. Estrutura de Arquivos Externos

    • data: Diretório para armazenamento dos arquivos binários do sistema.
    • stopword.txt: Arquivo com palavras irrelevantes usadas pelo índice invertido.

Desafios e Aprendizados

Os principais desafios desta parte envolveram a otimização do desempenho do sistema para consultas complexas e a implementação de relatórios, que demandaram o processamento eficiente de grandes volumes de dados. A experiência permitiu aprofundar conhecimentos em:
- Uso avançado de estruturas de dados como Árvores B+ e tabelas hash.
- Processamento de dados em massa com integridade e consistência.
- Planejamento de sistemas modulares, permitindo fácil expansão.

Checklist

  • O índice invertido com os termos das tarefas foi criado usando a classe ListaInvertida? SIM

  • O CRUD de rótulos foi implementado? SIM

  • No arquivo de tarefas, os rótulos são incluídos, alterados e excluídos em uma árvore B+? SIM

  • É possível buscar tarefas por palavras usando o índice invertido? SIM

  • É possível buscar tarefas por rótulos usando uma árvore B+? SIM

  • O trabalho está completo? SIM

  • O trabalho é original e não a cópia de um trabalho de um colega? SIM

Integrantes

Owner

  • Name: giuseppe cordeiro
  • Login: giusfds
  • Kind: user
  • Location: Brazil, MG

a computer science student, improving on frontend HTML and CSS and backend C languages

Citation (CITATION.cff)

cff-version: 1.0.1
title: TP-AEDS-III
authors:
  - family-names: Pires Santos
    given-names: Breno
  - family-names: Faria Diniz
    given-names: Caio
  - family-names: Sena Cordeiro
    given-names: Giuseppe
  - family-names: Miranda de Araújo
    given-names: Vinícius
  - name-suffix: Professor
    affiliation: PUC Minas
    family-names: Silveira Kutova
    given-names: Marcos Andre
keywords:
  - CRUD
  - Tarefa
  - Operações com Arquivo
  - Tipos Genéricos
repository-code: https://github.com/giusfds/TP-AEDS-III
license: CC-BY-4.0
version: 1.0.0
date-released: 2024-08-26

GitHub Events

Total
  • Delete event: 6
  • Member event: 1
  • Push event: 41
  • Pull request event: 6
  • Create event: 10
Last Year
  • Delete event: 6
  • Member event: 1
  • Push event: 41
  • Pull request event: 6
  • Create event: 10