Secure Notebook is a full-stack web application designed for secure note-taking with advanced features to ensure user privacy and controlled access. This application emphasizes robust authentication, encryption, and seamless sharing of notes while maintaining security.
-
JWT Authentication
- Implemented secure login and signup functionality using JSON Web Tokens (JWT).
- Ensures safe and authenticated access for all users.
-
Password-Protected Note Locking
- Integrated bcrypt encryption to allow users to lock their notes with a password.
- Protects sensitive information with advanced cryptography.
-
Permission System
- Designed to let users share notes securely or keep them encrypted.
- Shared files automatically expire after 24 hours to enhance security.
-
Role-Based Access Control (RBAC)
- Implemented RBAC to manage user permissions effectively.
- Ensures controlled access to notes based on roles.
-
RESTful API Architecture
- Utilized RESTful API principles to enable seamless communication between the frontend and backend.
- Ensures scalability and flexibility for future enhancements.
- Frontend: React
- Backend: Node.js, Express
- Database: MongoDB
- Authentication: JWT, bcrypt
- Clone the repository:
git clone https://github.com/yourusername/secure-notebook.git cd secure-notebook
- Install dependencies:
npm install
- Set up environment variables:
Create a
.env
file in the root directory with the following variables:PORT=5000 MONGO_URI=your_mongodb_connection_string JWT_SECRET=your_jwt_secret
- Start the development server:
npm run dev
- Register or log in using your credentials.
- Create, lock, and share notes securely.
- View shared notes with automatic expiration after 24 hours.
- Two-factor authentication (2FA) for added security.
- Real-time collaboration on shared notes.
- Enhanced analytics for note-sharing activities.
Contributions are welcome! Please follow these steps:
- Fork the repository.
- Create a new branch:
git checkout -b feature-name
- Commit your changes:
git commit -m "Add feature-name"
- Push to the branch:
git push origin feature-name
- Create a pull request.