A full-stack note management application for creating, organizing, editing, and managing personal notes with support for text, code blocks, images, folders, search, and tags.
- 📝 Create, edit, and delete notes
- 📄 Support for regular text notes
- 💻 Formatted code blocks
- 🖼️ Image upload and preview
- 📁 Organize notes into folders
- 🏷️ Add tags to notes
- 🔍 Search notes
- 📅 Associate notes with dates
- 💾 Persistent data storage with MongoDB
- 🎨 Clean dark/navy themed interface
- Next.js
- React
- JavaScript
- Tailwind CSS
- Node.js
- Express.js
- MongoDB
- Mongoose
- Multer
- Git & GitHub
- VS Code
- Postman
Notes-Heaven/
│
├── app/
│ ├── dashboard/
│ ├── notes/
│ │ ├── new/
│ │ └── [id]/
│ │ └── edit/
│ └── folders/
│
├── backend/
│ ├── controllers/
│ ├── models/
│ ├── routes/
│ ├── uploads/
│ ├── server.js
│ └── package.json
│
├── public/
├── .gitignore
├── package.json
└── README.md
git clone https://github.com/aakashtripathi011/Notes-Heaven.gitFrom the project root:
npm installcd backend
npm installCreate a .env file inside the backend folder:
PORT=5000
MONGO_URI=mongodb://127.0.0.1:27017/notes-heavenKeep your
.envfile private and do not commit it to GitHub.
Inside the backend folder:
npm run devThe backend will run on:
http://localhost:5000
Open another terminal in the project root:
npm run devThe frontend will run on:
http://localhost:3000
| Page | Route |
|---|---|
| Dashboard | /dashboard |
| Create Note | /notes/new |
| View Note | /notes/:id |
| Edit Note | /notes/:id/edit |
| Folder | /folders/:name |
| Method | Endpoint | Purpose |
|---|---|---|
| POST | /api/notes |
Create a note |
| GET | /api/notes |
Get all notes |
| GET | /api/notes/:id |
Get a specific note |
| PUT | /api/notes/:id |
Update a note |
| DELETE | /api/notes/:id |
Delete a note |
| Method | Endpoint | Purpose |
|---|---|---|
| POST | /api/upload |
Upload an image |
Uploaded images are served through:
/uploads/<filename>
Notes Heaven uses MongoDB for persistent storage.
Each note can contain:
- Title
- Content
- Content type
- Folder
- Image
- Date
- Tags
- Created and updated timestamps
Notes can be organized using folders and tags.
The dashboard also provides search functionality to quickly find notes.
Images are uploaded through the backend using Multer.
The uploaded files are stored in the backend's uploads directory, while the image path is associated with the corresponding note in MongoDB.
Backend APIs were tested using Postman to verify:
- Note creation
- Fetching all notes
- Fetching individual notes
- Updating notes
- Deleting notes
- Image uploads
The goal of Notes Heaven is to provide a simple and organized space for managing different types of notes while demonstrating full-stack development concepts including:
- Frontend development
- REST API development
- Database integration
- File uploads
- CRUD operations
- Search functionality
- Client-server communication
Aakash Tripathi
Built as a Full Stack project for the GGSIPU USICT ACM Student Chapter Web Team 2026–27.
⭐ If you find the project interesting, feel free to explore the repository.