Repositório para os projetos da disciplina SEL0456 - Técnicas em Desenvolvimento de Software Livre
-
Teste
Diretório criado para testes realizados em aula.
-
Trabalho1
Diretório referente à entrega do Trabalho 1.
-
Trabalho2
Diretório referente à entrega do Trabalho 2.
-
Trabalho3
Diretório referente à entrega do Trabalho 3.
-
Trabalho4
Diretório referente à entrega do Trabalho 4.
Este projeto consiste de um arquivo principal (main.c) localizado na pasta /src, o qual irá executar 3 funções distintas localizadas em arquivos .c distintos. Para isso, é utilizado um arquivo Makefile para a compilação e controle do projeto. As funções implementadas foram:
make
: Responsável pela compilação do projeto e criação do programa main.make run
: Responsável por executar o programa main.make clean
: Responsável por excluir os arquivos binários criados durante a compilação.make distclean
: Responsável por excluir o programa main.
Este projeto consiste em uma implementação de uma classe em pyhton para controle de usuários (users.py) e de um arquivo exemplificando sua utilização (app.py). Os atributos e métodos desta classe são:
- Atributos:
User.username
: Nome do usuário;User.role
: Cargo do usuário (superadmin, admin ou user). Não pode ser alterado;User.password_hash
: Hash da senha do usuário. Não pode ser diretamente alterado.
- Métodos:
User.verify_password(password)
: Verifica se a senha enviada equivale à senha do usuário;User.change_password(old_password, new_password)
: Muda a senha do usuário caso senha atual do usuário informada esteja correta.
Para visualizar o caso teste basta executar o arquivo app.py com um interpretador python.
Este projeto conciste na aplicação do GitHub Actions, utilizando o python application para realizar testes do arquivo main.py. Para melhor entendimento, observar as seguintes branches:
- project3-branch1: Nesta branch é utilizado o comando python para executar o arquivo main.py, o qual retorna a senha contida no arquivo password_entry.txt e compara a mesma com a senha presente no arquivo password_hash.txt. O resultado da comparação também é retornado;
- project3-branch2:
Nesta branch é utilizado o pytest para o teste do arquivo main.py. Para isso, é realizado um teste comparando a senha presente no arquivo password_entry.txt com a senha do arquivo password_hash.txt, por meio da função
verify_password()
.
As funções presentes no arquivo function são:
hash_password()
: responsável por criptografar a senha utilizando sha256;verify_password()
: responśavel por comparar as senhas, retornando True ou False.
Este projeto consiste na criação de uma API responsável por retornar o valor do fatorial de um número e o valor do enésimo elemento da sequência de Fibonacci. A estrutura de dados recebida pela API é um arquivo JSON, o qual pode ser composto pelos seguintes objetos:
"fib": "val1",
"fact": "val2"
Recebida uma sintaxe válida, a API retornará o valor de interesse em seus respectivos objetos, sendo eles: o fatorial em "fact"
e o elemento da Fibonacci em "fib"
.
Para a execução da API, deve-se executar o código abaixo em seu terminal:
python3 run.py
Vale ressaltar que as bibliotecas necessárias estão localizadas no arquivo requirements.txt, podendo serem instaladas pelo seguinte comando:
pip install -r requirements.txt
A API desenvolvida possui um tratamento de erro que é baseado nos seguintes tópicos:
- JSON com mais de 2 objetos: Será retornado o erro
400
junto à mensagem "Json too long"; - Valor diferente de int: Será retornado o erro
400
junto à mensagem "Invalid type"; - Valor fora do range de 0 à 1001: Será retornado o erro
400
junto à mensagem "Invalid range (0 < value < 1001)".
Vale notar que, caso seja enviado um arquivo JSON com menos de 2 objetos porém com objetos diferentes de "fib"
e "fact"
, a API retornará o arquivo JSON sem realizar modificações nos objetos desconhecidos.
As configurações de hospedagem e debugging podem ser modificadas no arquivo config.py. As funções utilizadas podem ser encontradas no arquivo functions.py.