Skip to content

prtpj1/project-ting

Repository files navigation

35º Projeto TING:

Header


Project DescriptionLearningRequirementsStacksHow to run the application


Descrição do ProjetoAprendizadoRequisitosTecnologias UtilizadasRodar a Aplicação


Project Description

I completed this BackEnd project during my learning period at Trybe, where I developed a program that simulates a document indexing algorithm similar to Google's. The program can identify occurrences of terms in TXT files.

The program has the following modules

  • A file management module that allows attaching text files (TXT format)
  • A search module that enables search functions to operate on the attached files

In this project, I learned and put into practice

  • Manipulating Stacks
  • Manipulating Deques
  • Manipulating Nodes & Linked Lists
  • Manipulating Doubly Linked Lists

According to the project requirements designated by Trybe, I learned how to

  • ✅ Implement a queue to store the files to be read
  • ✅ Implement a txt_importer function within the file_management module that imports news from a TXT file, using "\n" as a separator.
  • ✅ Implement the process function in the file_process module. This function transforms the list generated by the txt_importer function into a dictionary that will be stored in the Queue.
  • ✅ Implement a remove function within the file_process module that can remove the first processed file.
  • ✅ Implement a file_metadata function within the file_process module that can present superficial information about a processed file.
  • ✅ Implement an exists_word function within the word_search module, which checks for the existence of a word in all processed files.
  • ❌ Implement a search_by_word function within the word_search module, which searches for a word in all processed files.

Note: In some projects, some requirements were not completed due to the accelerated dynamics of the course, not because I didn't know how to do them. At the time, I just needed a little more time.

I still haven't decided if it's better to leave it this way to demonstrate my progress during my learning or if it would be better to complete the requirements that were missing in the course projects.

Feedback is welcome.

Stacks

BackEnd

  • Python

Python Icon

How to run the application?

  • Clone the repository:
    git clone git@github.com:tryber/sd-019-c-project-ting.git
  • Navigate to the project folder:
    cd project-ting
  • Create and activate the virtual environment:
    python3 -m venv .venv && source .venv/bin/activate
  • Install dependencies:
    python3 -m pip install -r dev-requirements.txt
  • In the terminal, run the commands below:
    python3 ting_word_searches/word_search.py
  • After typing the word or letter to be searched, provide the path to the file.
    Below are the possible paths (choose one at a time) considering the files that already exist, but you can add your own files or direct the search to another folder (pay attention to the path format):
    ./statics/arquivo_teste.txt
    ./statics/nome_pedro.txt
    ./statics/novo_paradigma_globalizado-min.txt
    ./statics/novo_paradigma_globalizado.txt

Note: If you have any difficulties with the instructions and would like to give feedback, send me a message


Descrição do Projeto

Fiz este projeto BackEnd durante meu período de aprendizagem na Trybe onde desenvolvi um programa que simula um algoritmo de indexação de documentos similar ao do Google. O programa é capaz de identificar ocorrências de termos em arquivos TXT.
O programa tem módulos:

  • de gerenciamento de arquivos que permite anexar arquivos de texto (formato TXT)
  • de buscas que permite operar funções de busca sobre os arquivos anexados

Nesse projeto, aprendi e coloquei em prática

  • Manipular Pilhas
  • Manipular Deques
  • Manipular Nó & Listas Ligadas
  • Manipular Listas Duplamente Ligadas

De acordo com os requisitos do projeto designados pela Trybe aprendi como

  • ✅ Implementar uma fila para armazenar os arquivos que serão lidos
  • ✅ Implementar uma função txt_importer dentro do módulo file_management capaz de importar notícias a partir de um arquivo TXT, utilizando "\n" como separador.
  • ✅ Implementar a função process no módulo file_process. Essa função é capaz de transformar o conteúdo da lista gerada pela função txt_importer em um dicionário que será armazenado dentro da Queue.
  • ✅ Implementar uma função remove dentro do módulo file_process que é capaz de remover o primeiro arquivo processado
  • ✅ Implementar uma função file_metadata dentro do módulo file_process que é capaz de apresentar as informações superficiais de um arquivo processado.
  • ✅ Implementar uma função exists_word, dentro do módulo word_search, que verifica a existência de uma palavra em todos os arquivos processados.
  • ❌ Implementar uma função search_by_word dentro do módulo word_search, que busca uma palavra em todos os arquivos processados.

OBS: Em alguns projetos alguns requisitos não foram feitos devido a dinâmica acelerada do curso e não por eu não saber como fazê-los. Na época eu apenas precisaria de um pouco mais de tempo.

Ainda não decidi se é melhor deixar desta forma para demonstrar o meu progresso durante meu aprendizado ou se seria melhor completar os requisitos que ficaram faltando nos projetos do curso.

Feedbacks são bem vindos.

Tecnologias Utilizadas

BackEnd

  • Python

Python Icon

Como rodar a aplicação?

  • Clone o repositório:
    git clone git@github.com:tryber/sd-019-c-project-ting.git
  • Acesse a pasta do projeto:
    cd project-ting
  • Crie e habilite o ambiente virtual:
    python3 -m venv .venv && source .venv/bin/activate
  • Instale as dependências:
    python3 -m pip install -r dev-requirements.txt
  • No terminal execute os comandos abaixo:
    python3 ting_word_searches/word_search.py
  • Após digitar a palavra ou letra que será buscada, coloque o caminho para onde está o arquivo.
    Abaixo os caminhos possíveis (escolha um de cada vez) considerando os arquivos que já existem, mas você pode adicionar seus próprios arquivos ou direcionar para outra pasta que desejar (fique atento ao formato do caminho):
    ./statics/arquivo_teste.txt
    ./statics/nome_pedro.txt
    ./statics/novo_paradigma_globalizado-min.txt
    ./statics/novo_paradigma_globalizado.txt

OBS: Se tiver alguma dificuldade com as instruções e quiser dar um feedback me mande uma mensagem

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages