Skip to content

AshwinJharia/PassOP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

4 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

PassOp - Secure Credentials Manager

πŸ” Your Personal Credentials Vault

A production-ready credentials manager built with React and Node.js featuring enterprise-level security

✨ Features

  • πŸ” Secure Storage - AES encryption for all credentials
  • πŸ”‘ JWT Authentication - Secure user sessions with 24h expiration
  • πŸ›‘οΈ Password Hashing - bcrypt with 12 rounds for user passwords
  • ⚑ Rate Limiting - Protection against brute force attacks
  • πŸ“± Responsive Design - Works on desktop and mobile
  • 🎯 Modern UI - Clean interface with Tailwind CSS
  • πŸ”„ Real-time Updates - Instant credential management

πŸ—οΈ Architecture

Backend (Node.js + Express)

backend/src/
β”œβ”€β”€ config/         # Database configuration
β”œβ”€β”€ controllers/    # Request handlers
β”œβ”€β”€ middleware/     # Auth & validation
β”œβ”€β”€ models/         # Data models
β”œβ”€β”€ routes/         # API endpoints
β”œβ”€β”€ services/       # Business logic
β”œβ”€β”€ utils/          # Utility functions
└── server.js       # Entry point

Frontend (React 18)

frontend/src/
β”œβ”€β”€ components/     # UI components
β”œβ”€β”€ context/        # State management
β”œβ”€β”€ hooks/          # Custom hooks
β”œβ”€β”€ pages/          # Route components
β”œβ”€β”€ services/       # API layer
β”œβ”€β”€ utils/          # Helper functions
└── App.jsx         # Main component

πŸš€ Quick Start

Prerequisites

  • Node.js 16+
  • MongoDB (local or Atlas)
  • Git

Installation

  1. Clone the repository
git clone https://github.com/yourusername/passop.git
cd passop
  1. Backend Setup
cd backend
npm install
cp .env.example .env
# Edit .env with your configuration
npm start
  1. Frontend Setup
cd frontend
npm install
npm run dev
  1. Access the application

βš™οΈ Environment Configuration

Create backend/.env file:

MONGO_URI=mongodb://localhost:27017
DB_NAME=passop
JWT_SECRET=your-super-secret-jwt-key-change-this
ENCRYPTION_KEY=your-32-character-encryption-key-here
PORT=3000

πŸ“‘ API Documentation

Authentication

Method Endpoint Description
POST /api/auth/register User registration
POST /api/auth/login User login

Credentials (Protected)

Method Endpoint Description
GET /api/passwords Get user credentials
POST /api/passwords Save credential
DELETE /api/passwords Delete credential

πŸ›‘οΈ Security Features

  • πŸ” End-to-End Encryption - AES encryption for stored credentials
  • πŸ”‘ Secure Authentication - JWT tokens with expiration
  • πŸ›‘οΈ Password Hashing - bcrypt with salt rounds
  • ⚑ Rate Limiting - 100 requests per 15 minutes
  • βœ… Input Validation - Joi schema validation
  • πŸ”’ CORS Protection - Configured security headers
  • πŸ‘€ User Isolation - Each user can only access their own data

πŸ› οΈ Tech Stack

Backend:

  • Node.js & Express.js
  • MongoDB with native driver
  • JWT for authentication
  • bcrypt for password hashing
  • Joi for validation
  • ES6 modules

Frontend:

  • React 18 with Hooks
  • Context API for state management
  • Tailwind CSS for styling
  • React Toastify for notifications
  • Vite for build tooling

πŸ”§ Development

# Backend with auto-reload
cd backend && npm run dev

# Frontend with hot reload
cd frontend && npm run dev

πŸ“¦ Production Deployment

  1. Environment Setup

    • Use strong JWT secrets and encryption keys
    • Configure MongoDB Atlas or secure MongoDB instance
    • Enable HTTPS
    • Set proper CORS origins
  2. Backend Deployment

    • Use PM2 or similar process manager
    • Set NODE_ENV=production
    • Configure reverse proxy (nginx)
  3. Frontend Deployment

    • Build: npm run build
    • Deploy to CDN or static hosting
    • Update API endpoints for production

🀝 Contributing

  1. Fork the repository
  2. Create your feature 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

  • Built with modern web technologies
  • Inspired by security-first design principles
  • Community feedback and contributions

Made with ❀️ for secure credential management

About

πŸ” Secure credentials manager with AES encryption, JWT authentication, and modern React UI

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors