Skip to content

Latest commit

 

History

History
173 lines (131 loc) · 5.34 KB

File metadata and controls

173 lines (131 loc) · 5.34 KB

🔐 Password Manager API

(English version below / versão em português abaixo)


🇧🇷 Português

Um gerenciador de senhas seguro com API em Python + FastAPI, utilizando hash Argon2 com salt aleatório e autenticação via JWT.
Este projeto é focado em estudo e demonstração de boas práticas de backend seguro.


🚀 Tecnologias

Python FastAPI SQLAlchemy SQLite Passlib Argon2 PyJWT Docker


📂 Estrutura do Projeto (Português)

password-manager-api/
│── app/
│   ├── app.py          # ponto de entrada da aplicação
│   ├── core/            # configs, segurança, dependências
│   ├── models/          # modelos ORM (SQLAlchemy)
│   ├── domain/          # camada de dominio, usecase etc
│   ├── routes/          # rotas (auth, users, passwords)
│   ├── utils/           # helpers (logger, gerador de salt)
│   └── db/              # conexão e migrations
│
├── tests/               # testes unitários
├── .env.example         # exemplo de variáveis de ambiente
├── requirements.txt     # dependências
├── docker-compose.yml   # (opcional) subir via docker
└── README.md            # documentação

⚙️ Como Rodar

# Clone o repositório
git clone https://github.com/seuusuario/password-manager-api.git
cd password-manager-api

# Crie e ative o ambiente virtual
python -m venv venv
source venv/bin/activate   # Linux/Mac
venv\Scripts\activate      # Windows

# Instale as dependências
pip install -r requirements.txt

# Configure o arquivo .env
cp .env.example .env

# Execute a aplicação
uvicorn app.main:app --reload

Acesse a documentação interativa:
👉 http://localhost:8000/docs


🇬🇧 English

A secure password manager with Python + FastAPI backend, using Argon2 hashing with random salt and JWT authentication.

This project is focused on learning and demonstrating secure backend best practices.

🚀 Stack

Python FastAPI SQLAlchemy SQLite Passlib Argon2 PyJWT Docker

📂 Project

password-manager-api/
│── app/
│   ├── main.py          # application entry point
│   ├── core/            # configs, security, dependencies
│   ├── models/          # ORM models (SQLAlchemy)
│   ├── domain/          #
│   ├── routes/          # routes (auth, users, passwords)
│   ├── services/        # business logic (hash, jwt, auth)
│   ├── utils/           # helpers (logger, salt generator)
│   └── db/              # database connection and migrations
│
├── tests/               # unit tests
├── .env.example         # environment variables example
├── requirements.txt     # dependencies
├── docker-compose.yml   # (optional)
└── README.md            # documentation

⚙️ How to Run

# Clone repository
git clone https://github.com/youruser/password-manager-api.git
cd password-manager-api

# Create and activate virtual environment
python -m venv venv
source venv/bin/activate   # Linux/Mac
venv\Scripts\activate      # Windows

# Install dependencies
pip install -r requirements.txt

# Configure environment variables
cp .env.example .env

# Run the application
uvicorn app.main:app --reload

Access interactive documentation:
👉 http://localhost:8000/docs

🛡️ Segurança / Security

Senhas armazenadas com Argon2 + salt aleatório. Autenticação via JWT. Variáveis sensíveis isoladas em .env.

📌 Roadmap

API base with authentication Argon2 + salt password hashing User vault management Automated tests Docker deploy Mobile app integration

📜 Licença / License

Este projeto é de uso livre para fins educacionais. This project is free to use for educational purposes.