A full-stack note-taking application built with a focus on robust backend architecture and clean API design. This project demonstrates modern backend development practices including RESTful APIs, JWT authentication, and database management.
NotesApp is a simple yet powerful note-taking application that allows users to create, read, update, and delete notes securely. The project emphasizes backend development with proper authentication, authorization, and database management while maintaining a clean and functional frontend.
- Node.js - Runtime environment
- Express.js - Web application framework
- MongoDB - NoSQL database
- Mongoose - MongoDB object modeling
- JWT (jsonwebtoken) - Token-based authentication
- bcrypt - Password hashing
- dotenv - Environment variable management
- cors - Cross-Origin Resource Sharing
- React - UI library
- JavaScript - Programming language
- CSS - Styling
- User registration and authentication
- Secure password hashing with bcrypt
- JWT-based authentication and authorization
- RESTful API design
- CRUD operations for notes
- Input validation and error handling
- Protected routes middleware
- MongoDB database integration
- User-friendly interface
- Login and registration forms
- Create, edit, and delete notes
- View all user notes
- Responsive design
- Node.js (v14 or higher)
- MongoDB (local or Atlas)
- npm or yarn
-
Clone the repository
git clone https://github.com/sammy200-ui/NotesApp.git cd NotesApp -
Setup Backend
cd backend npm install -
Configure Environment Variables
Create a
.envfile in the backend directory:PORT=5000 MONGO_URI=your_mongodb_connection_string JWT_SECRET=your_jwt_secret_key
-
Setup Frontend
cd ../frontend npm install
-
Start Backend Server
cd backend npm startBackend will run on
http://localhost:5000 -
Start Frontend Development Server
cd frontend npm startFrontend will run on
http://localhost:3000
POST /api/auth/register- Register a new userPOST /api/auth/login- Login user
GET /api/notes- Get all notes (Protected)GET /api/notes/:id- Get single note (Protected)POST /api/notes- Create new note (Protected)PUT /api/notes/:id- Update note (Protected)DELETE /api/notes/:id- Delete note (Protected)
- Password hashing using bcrypt
- JWT token-based authentication
- Protected API routes
- Environment variables for sensitive data
- Input validation and sanitization
This is a personal project, but suggestions and feedback are welcome!
This project is open source and available under the MIT License.
Sameer Pawar
- GitHub: @sammy200-ui