Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

8 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, & 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

  • Add dockerfile
  • Make desktop app
  • 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

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages