Notebook App is a web-based application built using React that allows users to create, read, update, and delete (CRUD) notes securely. It features authentication using JWT tokens and encrypts passwords with bcrypt for enhanced security.
-
User Authentication
- Secure login and registration system
- JWT-based authentication for session management
- Password hashing with bcrypt
-
Notes Management
- Create, read, update, and delete notes
- User-specific notes with authentication checks
- Rich text formatting support (if implemented)
-
Security
- JWT token validation for protected routes
- Secure password storage using bcrypt
- Authentication middleware to prevent unauthorized access
- Frontend: React, React Router
- Backend: Node.js, Express.js
- Database: MongoDB
- Authentication: JWT, bcrypt js
Make sure you have Node.js and npm/yarn installed on your system.
-
Clone the Repository
git clone https://github.com/Ritesh-Thorve/Notebook.git cd notebook-app -
Install Dependencies
npm install
-
Set Up Environment Variables Create a
.envfile in the root directory and configure the following:PORT=5000 MONGO_URI=your_mongodb_connection_string JWT_SECRET=your_secret_key
-
Start the Backend Server
npm start
-
Start the Frontend
npm run dev
POST /api/auth/createuser- Register a new userPOST /api/auth/login- Login user and receive JWT token
GET /api/notes- Get all notes (authenticated)POST /api/notes- Create a new notePUT /api/notes/:id- Update a noteDELETE /api/notes/:id- Delete a note
Feel free to contribute by submitting issues or pull requests. Make sure to follow the best coding practices and update documentation when necessary.
This project is licensed under the MIT License.