Skip to content

azzolinovarella/password-management-system

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Password Management System

Esse projeto foi desenvolvido durante o curso "Software Engineering" (Engenharia de Software) ministrado pelo Prof. Dr. Andreas Schaad da Hochschule Offenburg (Universidade de Ciências Applicadas de Offenburg), no primeiro semestre de 2020, período em que estudei na Alemanha.

Considerações Iniciais

  1. Esse projeto foi desenvolvido em Python utilizando a versão 3.8.3. Desta forma, recomenda-se fortemente o uso dessa versão.

  2. Todas as bibliotecas externas com suas respectivas versões podem ser encontradas no arquivo "requirements.txt". Para instalá-las, insira em seu terminal:

pip install -r requirements.txt

Explicação Geral do Projeto

Esse projeto tem como objetivo ser um gerenciador de senhas, i.e., um sistema capaz de armazenar com segurança senhas de diversas aplicações para diversos usuários, indicando a cada um se sua senha já foi vazado e, em caso positivo, quantas vezes. Além do usuário comum, nosso sitema possui um usuário administrador, capaz de executar algumas tarefas a mais que o usuário comum.
Todas as ações neste sistema são feitas por meio de requests, com a passagem de dados em formato JSON. Desta forma, nosso sistema é capaz de executar as seguintes tarefas:

Adicionar Usuário

Feito a partir de um POST Request passando um JSON contendo o email do usuário ("user_email") e a senha do usuário ("user_password"), como exemplificado abaixo:

{
    "user_email": "[email protected]",
    "user_password": "Senha1234!"
}

Editar Senha do Sistema do Usuário

Feito a partir de um PUT Request passando um JSON contendo o email do usuário ("user_email"), a senha antiga do usuário ("user_password") e a nova senha do usuário ("user_new_password"), como exemplificado abaixo:

{
    "user_email": "[email protected]",
    "user_password": "Senha1234!",
    "user_new_password": "SenhaNova1234!"
}

Adicionar Serviços a um Usuário

Feito a partir de um PUT Request passando um JSON contendo o email do usuário ("user_email"), a senha do usuário ("user_password"), o nome da aplicação do usuário ("service_name") e a senha da aplicação do usuário ("service_password"), como exemplificado abaixo:

{
    "user_email": "[email protected]",
    "user_password": "SenhaNova1234!",
    "service_name": "Facebook",
    "service_password": "SenhaDoFacebook"
}

Editar a Senha de um Serviço

Feito a partir de um PUT Request passando um JSON contendo o email do usuário ("user_email"), a senha do usuário ("user_password"), o nome da aplicação do usuário ("service_name") e a nova senha da aplicação do usuário ("service_new_password"), como exemplificado abaixo:

{
    "user_email": "[email protected]",
    "user_password": "SenhaNova1234!",
    "service_name": "Facebook",
    "service_new_password": "NovaSenhaDoFacebook"
}

Deletar um Serviço

Feito a partir de um DELETE Request passando um JSON contendo o email do usuário ("user_email"), a senha do usuário ("user_password") e o nome da aplicação do usuário ("service_name"), como exemplificado abaixo:

{
    "user_email": "[email protected]",
    "user_password": "SenhaNova1234!",
    "service_name": "Facebook"
}

Verificar os Dados um Usuário

Feito a partir de um GET Request passando um JSON contendo o email do usuário ("user_email") e a senha do usuário ("user_password"), como exemplificado abaixo:

{
    "user_email": "[email protected]",
    "user_password": "SenhaNova1234!"
}

Nos retornando:

{
    "Process": "Valid",
    "Process_Message": {
        "_active": true,
        "_creationdate": "2021-05-06 03:03:53.617954",
        "_email": "[email protected]",
        "_hibp": [
            false,
            "Pwned 0 time(s)"
        ],
        "_hspassword": "$2b$12$uwyqtYyhFqCe7Vnad40Kz.0G4mMFHe1FfzHrCK3EyRpwUqUBxUB92",
        "_lastmodified": null,
        "_service_list": [],
        "_warning": [
            false,
            "Never",
            0
        ]
    }
}

Deletar um Usuário

Feito a partir de um DELETE Request passando um JSON contendo o email do usuário ("user_email") e a senha do usuário ("user_password"), como exemplificado abaixo:

{
    "user_email": "[email protected]",
    "user_password": "SenhaNova1234!"
}

Modificar Dados de um Usuário (por meio do Administrador)

Feito a partir de um PUT Request passando um JSON contendo o login do administrador ("admin_login"), a primeira senha de administrador ("admin_pw1"), a segunda senha de administrador ("admin_pw2"), a opção de administrador ("admin_opt") e o email do usuário ("user_email"), como exemplificado abaixo:

{
    "admin_login": "admin@admin",
    "admin_pw1": "PrimeiraSenhaDeAdm",
    "admin_pw2": "SegundaSenhaDeAdm",
    "admin_opt": OPCAO_DO_ADM,
    "user_email": "[email protected]"
}

Onde OPCAO_DO_ADM pode assumir:

  • "ACT": Ativa um usuário.
  • "DEACT": Desativa um usuário.
  • "DEL": Deleta um usuário.
  • "RANPAS": Gera uma senha aleatória para um usuário.

Editar as Informações de Administrador

Feito a partir de um PUT Request passando um JSON contendo o login do administrador ("admin_login"), a primeira senha de administrador ("admin_pw1"), a segunda senha de administrador ("admin_pw2"), o novo login do administrador ("admin_new_login"), a nova primeira senha de administrador ("admin_new_pw1") e a nova segunda senha de administrador ("admin_new_pw2"), como exemplificado abaixo:

{
    "admin_login": "admin@admin",
    "admin_pw1": "PrimeiraSenhaDeAdm",
    "admin_pw2": "SegundaSenhaDeAdm",
    "admin_new_login": "new_admin@admin",
    "admin_new_pw1": "NovaPrimeiraSenhaDeAdm",
    "admin_new_pw2": "NovaSegundaSenhaDeAdm"
}

Instruções de Execução

  1. Para iniciarmos nossa aplicação, basta inserirmos em nosso terminal:
python -m pms.app
  1. Com nossa aplicação já inicializada, podemos executar as ações como descrito acima. Note que, isso pode ser feito, por exemplo, por meio de Softwares externos como o Postman.

Informações extras

Para mais informações, abaixo encontra-se o relatório escrito por mim a respeito deste projeto.

Clique aqui para acessar o relatório

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages