Skip to content

Latest commit

 

History

History
186 lines (144 loc) · 3.84 KB

README.md

File metadata and controls

186 lines (144 loc) · 3.84 KB

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