A full-stack notes application built with the MERN stack (MongoDB, Express.js, React, Node.js).
- β¨ Create, Read, Update, and Delete notes
- π·οΈ Categorize notes (General, Work, Personal, Ideas, Todo)
- π± Responsive design
- π¨ Beautiful gradient UI
- β‘ Real-time updates
- ποΈ Sort notes by last updated
Frontend:
- React 18
- Axios for API calls
- CSS3 with modern styling
Backend:
- Node.js
- Express.js
- MongoDB with Mongoose
- CORS enabled
Before running this application, make sure you have the following installed:
- Node.js (v14 or higher)
- MongoDB (running locally or MongoDB Atlas URI)
- npm or yarn
cd notes-appcd backend
npm installCreate a .env file in the backend directory (already created with default values):
PORT=5000
MONGODB_URI=mongodb://localhost:27017/notesapp
Note: If you're using MongoDB Atlas, replace the MONGODB_URI with your Atlas connection string.
cd ../frontend
npm installMake sure MongoDB is running on your system:
# If using local MongoDB
mongodOr ensure your MongoDB Atlas cluster is accessible.
cd backend
npm start
# Or for development with auto-restart:
npm run devThe backend server will run on http://localhost:5000
Open a new terminal window:
cd frontend
npm startThe React app will run on http://localhost:3000 and automatically open in your browser.
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/notes | Get all notes |
| GET | /api/notes/:id | Get a single note |
| POST | /api/notes | Create a new note |
| PUT | /api/notes/:id | Update a note |
| DELETE | /api/notes/:id | Delete a note |
NoteMaker/
βββ backend/
β βββ models/
β β βββ Note.js # Mongoose Note model
β βββ routes/
β β βββ notes.js # API routes
β βββ .env # Environment variables
β βββ server.js # Express server setup
β βββ package.json
βββ frontend/
β βββ public/
β β βββ index.html
β βββ src/
β β βββ components/
β β β βββ NoteForm.js
β β β βββ NoteForm.css
β β β βββ NoteList.js
β β β βββ NoteList.css
β β β βββ NoteItem.js
β β β βββ NoteItem.css
β β βββ App.js
β β βββ App.css
β β βββ index.js
β β βββ index.css
β βββ package.json
βββ README.md
- Create a Note: Fill in the title, select a category, write your content, and click "Add Note"
- Edit a Note: Click the "Edit" button on any note card, modify the content, and click "Update Note"
- Delete a Note: Click the "Delete" button on any note card and confirm the deletion
- View Notes: All notes are displayed in a grid layout, sorted by last updated time
- π Search functionality
- π·οΈ Tags support
- π File attachments
- π€ User authentication
- π Dark mode
- π€ Export notes
- βοΈ Cloud sync