Deployed link :https://notes-app-03.netlify.app/
A modern Note-Taking Application built with the MERN stack (MongoDB, Express, React, Node.js) featuring JWT authentication, image upload, rich text editing, and tag/category filtering.
- β JWT-Based Secure Authentication (Login/Register)
- β Create, Edit, Delete Notes
- β Rich Text Editor (Tiptap)
- β Add Tags / Categories to Notes
- β Upload Image Attachments (Cloudinary)
- β Filter Notes by Tags & Search Keywords
- β Real-time Search by Title or Content
- β Pagination (6 Notes per Page)
- β Responsive & Dark Mode Support
- β Toast Notifications (react-hot-toast)
- β Protected Routes for Authenticated Users Only
- β Clean Codebase & Folder Structure
notes-app/ βββ client/ # React Frontend β βββ components/ # Reusable UI components (NoteCard, Navbar, SearchBar, etc.) β βββ pages/ # Page components (Login, Register, Dashboard, etc.) β βββ App.jsx # Routing setup β βββ main.jsx # React entry point β βββ server/ # Node.js Backend β βββ config/ # DB & Cloudinary config β βββ controllers/# Logic for auth & notes β βββ middleware/ # JWT auth, error handlers β βββ models/ # Mongoose schemas (User, Note) β βββ routes/ # API routes β βββ server.js # Main Express server
yaml Copy Edit
- React
- React Router DOM
- Tailwind CSS
- Tiptap (Text Editor)
- React Hot Toast
- React Icons
- Axios
- Node.js
- Express.js
- MongoDB & Mongoose
- JSON Web Token (JWT)
- bcryptjs
- Cloudinary (Image Upload)
- dotenv
Feature | Description |
---|---|
π·οΈ Tag Support | Add tags to notes and filter notes by tags using UI buttons or dropdown. |
πΌοΈ Image Upload | Upload images (base64 or Cloudinary), display them inside notes. |
π Search Filter | Instant search by title or content in dashboard. |
π Private Routes | Only logged-in users can access protected pages. |
- Displays 6 notes per page.
- Includes "Previous / Next" pagination controls.
- Tailwind CSS-styled pagination buttons are aligned bottom-right.
- Auto-disabled when no more pages.
git clone https://github.com/your-username/notes-app.git
cd notes-app
# 2. Backend Setup (Server)
``` cd server
npm install
Create .env file in server/
PORT=8080
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret_key
CLOUDINARY_CLOUD_NAME=your_cloud_name
CLOUDINARY_API_KEY=your_api_key
CLOUDINARY_API_SECRET=your_api_secret
run dev
npm run dev
Authentication Flow Users register and login securely using hashed passwords.
JWT tokens are stored in localStorage.
Protected routes redirect unauthenticated users to the login page.
π§ͺ To Do / Enhancements Export notes to PDF
Shareable public link to a note
Collaborator support (via Socket.io)
Offline mode with local storage fallback
πΌοΈ Image Uploads β Why Useful? Helps users attach visual content (e.g., diagrams, screenshots).
Stored securely using Cloudinary.
Preview shown inside each note.
Makes the app more flexible for students, developers, designers.
π¨βπ» Author Made with π by Your Name