Skip to content

devsiffy/SmartNotes-App

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 

Repository files navigation

SmartNotes App - A MERN Project

A full-stack notes application built with the MERN stack, featuring secure authentication, clean architecture, and a modern UI.


🚀 Features

  • User authentication (JWT)
  • Create, read, update, delete notes
  • Protected routes
  • Clean and scalable project structure
  • Centralized error handling
  • Input validation
  • Rate limiting for API security
  • Responsive UI with Tailwind CSS + shadcn/ui
  • Light/Dark mode support

🏗️ Tech Stack

Frontend

  • React (Vite)
  • Tailwind CSS
  • shadcn/ui
  • Context API

Backend

  • Node.js
  • Express.js
  • MongoDB (Mongoose)
  • JWT Authentication

📁 Project Structure

root
├── backend
│   ├── .env
│   ├── .gitignore
│   ├── package-lock.json
│   ├── package.json
│   │
│   └── src
│       ├── server.js
│       │
│       ├── config
│       │   ├── db.js
│       │   └── env.js
│       │
│       ├── controllers
│       │   ├── authController.js
│       │   └── noteController.js
│       │
│       ├── middlewares
│       │   ├── authMiddleware.js
│       │   ├── errorHandler.js
│       │   └── rateLimiter.js
│       │
│       ├── models
│       │   ├── Note.js
│       │   └── User.js
│       │
│       ├── routes
│       │   ├── authRoutes.js
│       │   └── noteRoutes.js
│       │
│       ├── utils
│       │   ├── ApiError.js
│       │   ├── ApiResponse.js
│       │   ├── tokenService.js
│       │   └── wrapAsync.js
│       │
│       └── validators
│           ├── validationSchema.js
│           └── validator.js
│
└── frontend
    ├── .env
    ├── .gitignore
    ├── components.json
    ├── eslint.config.js
    ├── index.html
    ├── jsconfig.json
    ├── package-lock.json
    ├── package.json
    ├── README.md
    ├── vite.config.js
    │
    └── src
        ├── App.jsx
        ├── index.css
        ├── main.jsx
        │
        ├── components
        │   ├── DeleteConfirmDialog.jsx
        │   ├── Navbar.jsx
        │   ├── NoteModal.jsx
        │   │
        │   └── ui
        │       ├── alert-dialog.jsx
        │       ├── alert.jsx
        │       ├── button.jsx
        │       ├── card.jsx
        │       ├── dialog.jsx
        │       ├── input.jsx
        │       ├── label.jsx
        │       └── textarea.jsx
        │
        ├── context
        │   ├── AuthContext.jsx
        │   └── ThemeContext.jsx
        │
        ├── hooks
        │   └── useNotes.js
        │
        ├── lib
        │   └── utils.js
        │
        ├── pages
        │   ├── Dashboard.jsx
        │   ├── Login.jsx
        │   ├── NoteDetail.jsx
        │   ├── NotFound.jsx
        │   ├── Profile.jsx
        │   └── Register.jsx
        │
        └── services
            ├── api.js
            ├── noteService.js
            └── tokenService.js

⚙️ Environment Variables

Backend (.env)

PORT=8080
MONGO_URI=your-mongodb-uri

ACCESS_TOKEN_SECRET=your-access-secret
REFRESH_TOKEN_SECRET=your-refresh-secret

ACCESS_TOKEN_EXPIRY=time
REFRESH_TOKEN_EXPIRY=time

NODE_ENV=production-development
FRONTEND_URL=your-frontend-url

Frontend (.env)

VITE_API_BASE_URL=your-backend-url/api/v1

📜 License

MIT License

About

A full-stack MERN notes application built with React, Node.js, Express, and MongoDB, featuring JWT-based authentication, scalable architecture, and a modern UI. Designed using industry best practices such as clean folder structure, reusable components, middleware-based backend, and maintainable code patterns.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors