Conteúdo da Disciplina: Trabalho final
Tema: Compressão de dados & Diff
Matrícula | Aluno | GitHub |
---|---|---|
15/0009011 | Elias Bernardo | @ebmm01 |
17/0141161 | Erick Giffoni | @ErickGiffoni |
Coé faz compressão e descompressão de arquivos txt além de adicionar uma nova funcionalidade ao Greed Compressor. A ideia é ver qual é (Coé) a diferença entre 2 arquivos, se houver. Os arquivos são comparados por meio de um algoritmo de diff, sendo que ambos podem estar no formato txt ou comprimidos no formato greed_compressed (e combinações desses formatos entre os arquivos são aceitas, ou seja, é possível comparar um arquivo txt com um greed_compressed e vice-versa, por exemplo).
Nesse sentido, Coé utiliza: grafos, algoritmo ambicioso de Huffman e programação dinâmica com algoritmo de diff, o qual baseia-se no problema da Longest common subsequence.
Linguagem: Python 3.8
Biblioteca(s): bitstring
- conexão de internet;
- terminal/console/shell no computador;
- pip & venv
- Python 3.8+ (necessariamente)
- clonar o projeto;
Para clonar o projeto digite:
git clone /~https://github.com/projeto-de-algoritmos/Final_Coe
- Tela inicial
- Tela inicial ao escolher a opção de diff
- Tela de sucesso ao realizar o diff entre dois arquivos
- Tela de erro ao tentar fazer o diff entre arquivos de conteúdos idênticos
- Tela de sucesso ao descomprimir um arquivo
- Tela de sucesso ao comprimir um arquivo
- Tela de seleção de arquivo
Após fazer o clone do projeto, siga os passos abaixo :
- entre na raiz do projeto
$ cd Final_Coe/
- (Opcional) Caso não possua uma venv, gere uma:
$ python -m venv <nome da venv>
- (Opcional) Ative a venv caso não esteja:
Note que o comando abaixo pode variar de acordo com o sistema operacional. Em caso de dúvidas veja a documentação
$ source venv/bin/activate
- instale as dependências
$ python -m pip install -r requirements.txt
- execute o projeto
$ python -m view.gui.main
O uso da interface é auto explicativo.
- Vídeo de apresentação:
- YouTube: clique aqui
- mp4: pasta images
Caso você tenha alguma dificuldade, sugestão ou algum problema com o projeto,
por favor entre em contato conosco:
- Elias Bernardo - ebmm01@gmail.com - telegram @ebmm01
- Erick Giffoni - giffoni.erick@gmail.com - telegram @ErickGiffoni