A full-stack secure application to manage personal notes. Built with MongoDB, Express, React, and Node.js.
This project is a Full Stack MVP (Minimum Viable Product) designed to demonstrate:
- Authentication: Secure Login and Signup using JWT (JSON Web Tokens).
- Database Management: NoSQL schema modeling with MongoDB & Mongoose.
- REST API: Custom backend endpoints for CRUD operations.
- Frontend State: React Hooks (
useState,useEffect) and Context.
- Frontend: React (Vite), Axios, CSS modules.
- Backend: Node.js, Express.js.
- Database: MongoDB Atlas (Cloud).
- Authentication: JWT, BcryptJS.
- ✅ User Authentication (Sign Up & Login with secure password hashing).
- ✅ Create Notes (Add titles and content).
- ✅ Read Notes (View all notes specific to the logged-in user).
- ✅ Update Notes (Edit existing notes).
- ✅ Delete Notes (Remove unwanted notes).
- ✅ Session Persistence (Users stay logged in on refresh).
Follow these steps to run the project locally.
git clone https://github.com/your-username/notes-manager.git
cd notes-managerNavigate to the server folder and install dependencies:
cd server
npm installCreate a .env file in the server folder and add your credentials:
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_super_secret_keyStart the Server:
node index.js(You should see "MongoDB Connected" in the terminal)
Open a new terminal, navigate to the client folder, and install dependencies:
cd ../client
npm installStart the React App:
npm run devVisit http://localhost:5173 in your browser.
| Method | Endpoint | Description | Auth Required |
|---|---|---|---|
POST |
/register |
Create a new user | No |
POST |
/login |
Login and get Token | No |
GET |
/notes |
Get all notes for user | Yes (Header) |
POST |
/notes |
Create a new note | Yes (Header) |
PUT |
/notes/:id |
Update a specific note | Yes (Header) |
DELETE |
/notes/:id |
Delete a specific note | Yes (Header) |
- Fork the repository.
- Create a new branch (
git checkout -b feature-branch). - Commit your changes (
git commit -m 'Add new feature'). - Push to the branch (
git push origin feature-branch). - Open a Pull Request.

