A modern, full-stack notes application built with the MERN stack (MongoDB, Express.js, React.js, Node.js) that allows users to create, organize, and manage their notes with a beautiful and intuitive interface.
- User registration and login system
- JWT-based authentication
- Secure password handling
- Protected routes
- Create, edit, and delete notes
- Rich text content support
- Note pinning functionality
- Search and filter notes
- Tag-based organization
- Responsive note cards
- Modern, responsive design
- Beautiful gradient themes
- Smooth animations and transitions
- Mobile-first approach
- Intuitive navigation
- Real-time search functionality
- Clear search results
- Organized note display
- Pinned notes priority
- React.js - User interface library
- Vite - Build tool and dev server
- Tailwind CSS - Utility-first CSS framework
- React Router - Client-side routing
- Axios - HTTP client
- React Icons - Icon library
- React Modal - Modal components
- Node.js - JavaScript runtime
- Express.js - Web application framework
- MongoDB - NoSQL database
- Mongoose - MongoDB object modeling
- JWT - JSON Web Token authentication
- CORS - Cross-origin resource sharing
Notes App/
βββ frontend/ # React frontend application
β βββ src/
β β βββ components/ # Reusable UI components
β β βββ pages/ # Page components
β β βββ utils/ # Utility functions
β β βββ assets/ # Images and static files
β βββ package.json
β βββ vite.config.js
βββ backend/ # Node.js backend application
β βββ modals/ # Database models
β βββ index.js # Main server file
β βββ utilities.js # Helper functions
β βββ package.json
βββ README.md
- Node.js (v14 or higher)
- MongoDB (local or cloud instance)
- Git
-
Clone the repository
git clone https://github.com/Naveen0030/Notes_App.git cd Notes_App -
Install backend dependencies
cd backend npm install -
Environment Configuration Create a
.envfile in the backend directory:MONGODB_URI=your_mongodb_connection_string ACCESS_TOKEN_SECRET=your_jwt_secret_key PORT=8000
-
Start the backend server
npm start
The server will run on
http://localhost:8000
-
Install frontend dependencies
cd frontend npm install -
Environment Configuration Create a
.env.localfile in the frontend directory:VITE_BASE_URL=http://localhost:8000
-
Start the development server
npm run dev
The app will run on
http://localhost:5173
POST /create-account- User registrationPOST /login- User loginGET /get-user- Get user information
GET /get-all-notes- Fetch all user notesPOST /create-note- Create a new notePUT /update-note/:id- Update existing noteDELETE /delete-note/:id- Delete a notePUT /update-note-pinned/:id- Toggle note pin statusGET /search-notes- Search notes by query
- Logo Click Behavior:
- Authenticated users β Dashboard
- Non-authenticated users β Home page
- No Notes: Displays helpful empty state with action button
- Create First Note: Prominent button to start note creation
- Getting Started Tips: Helpful guidance for new users
- Mobile First: Optimized for mobile devices
- Grid Layout: Responsive note grid (1-4 columns based on screen size)
- Touch Friendly: Large touch targets and smooth interactions
Backend:
npm start- Start development server with nodemon
Frontend:
npm run dev- Start Vite development servernpm run build- Build for productionnpm run preview- Preview production buildnpm run lint- Run ESLint
- Components: Reusable UI components with props
- Pages: Main application views
- Utils: Helper functions and configurations
- Models: MongoDB schemas and models
- Set environment variables on your hosting platform
- Ensure MongoDB connection is accessible
- Deploy to platforms like Heroku, Railway, or Render
- Build the application:
npm run build - Deploy the
distfolder to platforms like Vercel, Netlify, or GitHub Pages - Update
VITE_BASE_URLto point to your deployed backend
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
- Chrome (latest)
- Firefox (latest)
- Safari (latest)
- Edge (latest)
- Built with modern web technologies
- Inspired by popular note-taking applications
- Designed for optimal user experience
Happy Note-Taking! πβ¨