Skip to content

Projeto em Python que simula um mini mecanismo de busca. O sistema indexa arquivos de texto no formato TXT e permite localizar rapidamente em quais linhas determinados termos aparecem.

Notifications You must be signed in to change notification settings

williandpg/ting

Repository files navigation

TING - Trybe Is Not Google

Descrição

Projeto que implementa um simulador de algoritmo de indexação de documentos em Python. O sistema permite anexar arquivos de texto no formato TXT e realizar buscas por termos nesses documentos, retornando em quais linhas cada palavra aparece. O foco está no uso de estruturas de dados lineares para organizar a leitura e a consulta dos arquivos.

Funcionalidades

  • Fila de arquivos: implementação manual de uma fila FIFO para armazenar os arquivos que serão processados na ordem em que foram adicionados.
  • Importação de arquivos TXT: leitura de arquivos de texto linha a linha, com validação de extensão e tratamento de erros quando o arquivo não é encontrado.
  • Metadados dos documentos: exibição de informações como nome do arquivo, quantidade de linhas e conteúdo bruto armazenado em memória.
  • Remoção de arquivos da fila: remoção do primeiro arquivo processado, com mensagens informativas sobre sucessos ou tentativas em filas vazias.
  • Busca de palavras: função que verifica se uma palavra existe nos arquivos carregados e retorna em quais linhas ela aparece, de forma case insensitive.
  • Busca detalhada: variação da busca que também retorna o conteúdo das linhas onde a palavra foi encontrada, facilitando a análise do contexto.

Demonstração do Projeto

Projeto sem demonstração visual. Apenas linha de comando.

Tecnologias Utilizadas

  • Python: Linguagem principal utilizada para implementar as estruturas de dados e o algoritmo de indexação de documentos.
  • Pytest: Framework de testes utilizado para validar o comportamento das filas, buscas e funções de gerenciamento de arquivos.
  • Flake: Ferramenta de linting para garantir qualidade de código e padronização de estilo em Python.
  • pip: Gerenciador de pacotes para instalação de dependências, junto com ambiente virtual venv para isolamento do ambiente de desenvolvimento.

Estrutura do Projeto

A estrutura do projeto é organizada da seguinte forma:

/
├── statics/
│   ├── arquivo_teste.txt
│   ├── novo_paradigma_globalizado.txt
│   └── novo_paradigma_globalizado-min.txt
├── tests/
│   └── __init__.py
├── ting_file_management/
│   ├── file_management.py
│   └── file_process.py
├── ting_word_searches/
│   └── word_search.py
├── dev-requirements.txt
├── requirements.txt
├── pyproject.toml
├── setup.cfg
├── setup.py
└── README.md

Contato

Willian Gonçalves | LinkedIn | Github | Portfólio | Email

Créditos

Projeto desenvolvido no curso de Ciência da Computação da Trybe como parte do curso de desenvolvimento full stack.

English Version

TING - Trybe Is Not Google

Description

Project that implements a simple document indexing algorithm in Python. The program loads TXT files into a queue and provides search functions that return in which lines a given word appears. The main goal is to practice data structures such as queues, stacks and linked lists.

Features

  • File Queue: manual implementation of a FIFO queue to store files to be processed in the order they were added.
  • TXT File Import: reading text files line by line, with extension validation and error handling when the file is not found.
  • Document Metadata: display of information such as file name, number of lines, and raw content stored in memory.
  • File Removal from Queue: removal of the first processed file, with informative messages about successes or attempts on empty queues.
  • Word Search: function that checks if a word exists in the loaded files and returns in which lines it appears, case insensitive.
  • Detailed Search: variation of the search that also returns the content of the lines where the word was found, facilitating context analysis.

Project Demonstration

No visual demonstration. Command line only.

Technologies Used

  • Python: Main language used to implement data structures and the document indexing algorithm.
  • Pytest: Testing framework used to validate the behavior of queues, searches, and file management functions.
  • Flake: Linting tool to ensure code quality and style standardization in Python.
  • pip: Package manager for installing dependencies, along with the venv virtual environment for development environment isolation.

Project Structure

The project structure is organized as follows:

/
  ├── statics/
  │   ├── arquivo_teste.txt
  │   ├── novo_paradigma_globalizado.txt
  │   └── novo_paradigma_globalizado-min.txt
  ├── tests/
  │   └── __init__.py
  ├── ting_file_management/
  │   ├── file_management.py
  │   └── file_process.py
  ├── ting_word_searches/
  │   └── word_search.py
  ├── dev-requirements.txt
  ├── requirements.txt
  ├── pyproject.toml
  ├── setup.cfg
  ├── setup.py
  └── README.md
  

Contact

Willian Gonçalves | LinkedIn | Github | Portfolio | Email

Credits

Project developed at Trybe as part of the Computer Science curriculum.

About

Projeto em Python que simula um mini mecanismo de busca. O sistema indexa arquivos de texto no formato TXT e permite localizar rapidamente em quais linhas determinados termos aparecem.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages