Skip to content

Shivansu77/modern-note-taking-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

1 Commit
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“ Modern Note-Taking App

A beautiful, modern MERN stack note-taking application with glassmorphism design, dark/light mode toggle, and advanced features for organizing your thoughts.

Modern Note App React Node.js MongoDB Tailwind

✨ Features

🎨 Modern UI/UX

  • Glassmorphism Design - Beautiful transparent cards with backdrop blur effects
  • Dark/Light Mode Toggle - Smooth theme transitions with system preference detection
  • Animated Components - Framer Motion animations throughout the app
  • Responsive Design - Works perfectly on all screen sizes
  • Interactive Elements - Hover effects, smooth transitions, and micro-interactions

πŸ“± Note Management

  • Create & Edit Notes - Rich text support with modern editor
  • Pin Important Notes - Keep important notes at the top
  • Search & Filter - Find notes quickly with advanced filtering
  • Tags System - Organize notes with colorful tags
  • Grid/List View - Toggle between different viewing modes
  • Note Statistics - Dashboard with note counts and insights

πŸ” Authentication

  • Secure JWT Authentication - Login/signup with encrypted passwords
  • Session Persistence - Stay logged in across browser sessions
  • Route Protection - Secure pages that require authentication

πŸš€ Advanced Features

  • Context Menus - Right-click actions for notes
  • Copy to Clipboard - Quick content copying
  • Like System - Mark favorite notes
  • Empty States - Beautiful placeholders when no notes exist
  • Toast Notifications - User-friendly feedback messages

πŸ› οΈ Tech Stack

Frontend

  • React 18 - Modern React with hooks
  • Vite - Fast build tool and dev server
  • Tailwind CSS - Utility-first CSS framework
  • Framer Motion - Animation library
  • Redux Toolkit - State management
  • React Router - Client-side routing
  • Lucide React - Beautiful icons
  • React Toastify - Toast notifications

Backend

  • Node.js - JavaScript runtime
  • Express.js - Web framework
  • MongoDB - NoSQL database
  • Mongoose - MongoDB object modeling
  • JWT - JSON Web Tokens for authentication
  • bcryptjs - Password hashing
  • CORS - Cross-origin resource sharing

πŸš€ Quick Start

Prerequisites

  • Node.js (v16 or higher)
  • MongoDB Atlas account or local MongoDB
  • Git

Installation

  1. Clone the repository

    git clone <your-repo-url>
    cd Note-App-Using-MERN-Stack--main
  2. Install Backend Dependencies

    cd backend
    npm install
  3. Install Frontend Dependencies

    cd ../frontend
    npm install
  4. Environment Setup

    Create a .env file in the backend directory:

    MONGO_URI=your_mongodb_connection_string
    JWT_SECRET=your_jwt_secret_key
    PORT=3000

    MongoDB Atlas Setup:

    • Create a free account at MongoDB Atlas
    • Create a new cluster
    • Create a database user with read/write permissions
    • Whitelist your IP address (or use 0.0.0.0/0 for development)
    • Get your connection string and replace <password> with your actual password
    • Important: URL-encode special characters in your password
  5. Start the Application

    Backend (Terminal 1):

    cd backend
    npm run dev

    Frontend (Terminal 2):

    cd frontend
    npm run dev
  6. Access the App

πŸ“ Project Structure

Note-App-Using-MERN-Stack--main/
β”œβ”€β”€ backend/
β”‚   β”œβ”€β”€ controller/          # Route controllers
β”‚   β”œβ”€β”€ models/             # Database models
β”‚   β”œβ”€β”€ routes/             # API routes
β”‚   β”œβ”€β”€ utils/              # Utility functions
β”‚   β”œβ”€β”€ .env                # Environment variables
β”‚   └── index.js            # Server entry point
β”œβ”€β”€ frontend/
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ components/     # Reusable components
β”‚   β”‚   β”œβ”€β”€ contexts/       # React contexts
β”‚   β”‚   β”œβ”€β”€ pages/          # Page components
β”‚   β”‚   β”œβ”€β”€ redux/          # Redux store and slices
β”‚   β”‚   └── utils/          # Utility functions
β”‚   β”œβ”€β”€ public/             # Static assets
β”‚   └── index.html          # HTML template
β”œβ”€β”€ .gitignore              # Git ignore rules
└── README.md               # Project documentation

🎯 API Endpoints

Authentication

  • POST /api/auth/signup - Create new user account
  • POST /api/auth/signin - User login
  • GET /api/auth/signout - User logout

Notes

  • GET /api/note/all - Get all user notes
  • POST /api/note/add - Create new note
  • PUT /api/note/edit/:id - Update existing note
  • DELETE /api/note/delete/:id - Delete note
  • PUT /api/note/update-pinned/:id - Toggle note pin status
  • GET /api/note/search - Search notes

🎨 Design Features

Glassmorphism Effects

  • Transparent backgrounds with backdrop blur
  • Subtle borders and shadows
  • Layered visual hierarchy

Animations

  • Smooth page transitions
  • Hover effects on interactive elements
  • Loading states and micro-interactions
  • Staggered animations for lists

Theme System

  • Automatic dark/light mode detection
  • Manual theme toggle
  • Persistent theme preferences
  • Smooth color transitions

πŸ”§ Development

Available Scripts

Backend:

  • npm start - Start production server
  • npm run dev - Start development server with nodemon

Frontend:

  • npm run dev - Start development server
  • npm run build - Build for production
  • npm run preview - Preview production build

Environment Variables

Backend (.env):

MONGO_URI=mongodb+srv://username:password@cluster.mongodb.net/notes-app
JWT_SECRET=your-super-secret-jwt-key
PORT=3000

πŸš€ Deployment

Frontend (Netlify/Vercel)

  1. Build the frontend: npm run build
  2. Deploy the dist folder to your hosting service

Backend (Railway/Render/Heroku)

  1. Set environment variables in your hosting service
  2. Deploy the backend folder
  3. Update frontend API URLs to point to your deployed backend

🀝 Contributing

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/amazing-feature
  3. Commit your changes: git commit -m 'Add amazing feature'
  4. Push to the branch: git push origin feature/amazing-feature
  5. Open a Pull Request

πŸ“ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Acknowledgments

  • Framer Motion for beautiful animations
  • Tailwind CSS for rapid styling
  • Lucide React for clean icons
  • MongoDB Atlas for cloud database hosting

πŸ“§ Contact

For questions or support, please open an issue in the GitHub repository.


Made with ❀️ using the MERN Stack

About

Online Note Taking App A minimal note-taking app where users can create, edit, and delete personal notes. *Frontend* : Simple text editor (Markdown or plain text) Notes list with search & filter Responsive design Light/dark mode toggle Auth (signup/login) *Backend* : CRUD APIs for notes JWT-based authentication

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages