Skip to content

A secure password manager application built with FastAPI (Python) and React.js. This application allows users to safely store and manage their passwords.

License

Notifications You must be signed in to change notification settings

iniakunhuda/pass-manager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Password Manager

A secure password manager application built with FastAPI (Python) and React.js. This application allows users to safely store and manage their passwords with features like category organization, password generation, and secure master password authentication.

Features

  • 🔐 Master password authentication
  • 📂 Password categorization
  • 🔄 Password generation
  • 🔍 Search and filter capabilities
  • 📱 Responsive design
  • 💾 Local session storage
  • 🔒 Secure password storage

Tech Stack

Backend

  • FastAPI (Python 3.8+)
  • SQLite database
  • uvicorn ASGI server
  • Python packages:
    • fastapi
    • uvicorn
    • sqlite3 (built-in)
    • python-multipart
    • python-jose[cryptography]
    • passlib[bcrypt]

Frontend

  • React.js
  • Tailwind CSS
  • shadcn/ui components
  • Radix UI primitives
  • Local/Session Storage for auth persistence

Getting Started

Prerequisites

  • Python 3.8 or higher
  • Node.js 14 or higher
  • npm or yarn

Backend Setup

  1. Navigate to the server directory:
cd server
  1. Create and activate a virtual environment:
python -m venv venv

# On Windows
venv\Scripts\activate

# On macOS/Linux
source venv/bin/activate
  1. Install dependencies:
pip install -r requirements.txt
  1. Run the server:
python main.py

The server will start at http://localhost:8000

Frontend Setup

  1. Navigate to the client directory:
cd client
  1. Install dependencies:
npm install
  1. Run the development server:
npm run dev

The client will start at http://localhost:5173

Project Structure

password-manager/
├── server/
│   ├── main.py
│   ├── requirements.txt
│   └── passwords.db
└── client/
    ├── src/
    │   ├── components/
    │   │   └── ui/
    │   ├── pages/
    │   │   └── PasswordManager.jsx
    │   ├── utils/
    │   │   └── authStorage.js
    │   ├── lib/
    │   │   └── utils.js
    │   ├── App.jsx
    │   └── main.jsx
    ├── public/
    ├── index.html
    ├── package.json
    ├── tailwind.config.js
    └── vite.config.js

API Endpoints

Authentication

  • POST /auth/login - Login with master password
  • POST /auth/change-master-password - Change master password

Categories

  • GET /categories - Get all categories
  • POST /categories - Create new category

Passwords

  • GET /passwords - Get all passwords
  • POST /passwords - Create new password
  • DELETE /passwords/{password_id} - Delete password
  • GET /generate-password - Generate random password

Security Features

  • Password hashing using SHA-256
  • Session-based authentication
  • Secure password storage
  • CORS protection
  • Input validation
  • Optional "Remember Me" functionality

Default Credentials

Master Password: admin123

Contributing

  1. Fork the repository
  2. Create a new branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

Screenshots

Login

Password Manager

Future Enhancements

  • Export to Desktop apps
  • Password strength meter
  • Export/Import functionality
  • Password sharing capabilities
  • Two-factor authentication
  • Password expiry notifications
  • Automatic password rotation
  • Audit logs
  • Browser extension

About

A secure password manager application built with FastAPI (Python) and React.js. This application allows users to safely store and manage their passwords.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published