This repository contains a Notes Manager application built using the MERN stack (MongoDB, Express.js, React, Node.js). The application allows users to create, read, update, and delete notes efficiently. It features user authentication and a clean, intuitive interface for managing notes.
- Create, read, update, and delete notes
- Responsive design for mobile and desktop
- User-specific notes management
- MongoDB: NoSQL database for storing notes and user data.
- Express.js: Web framework for building the server-side application.
- React: Frontend library for creating a dynamic user interface.
- Node.js: JavaScript runtime for executing server-side code.
- Mongoose: ODM library for MongoDB and Node.js.
- Axios: Promise-based HTTP client for making requests from React to the API.
- JWT (JSON Web Tokens): For secure user authentication.
To set up the Notes Manager application locally, follow these steps:
-
Clone the repository:
git clone https://github.com/HimalayaSingh3/Full-Stack-Notes-Manager.git cd Full-Stack-Notes-Manager
-
Install server dependencies:
cd server npm install
-
Install client dependencies:
cd ../client npm install
-
Set up environment variables: Create a
.env
file in theserver
directory and add your MongoDB connection string:MONGODB_URI=your_mongodb_connection_string
-
Start the Backend:
cd Backend node server.js
-
Start the Frontend: Open a new terminal window and run:
cd Frontend npm run dev
Your application should now be running on http://localhost:3000
.
Once the application is running:
- Navigate to
http://localhost:3000
in your web browser. - # for a new account or log in with an existing account.
- Start creating, editing, and managing your notes!
mern-notes-manager/
├── client/ # React frontend code
│ ├── src/
│ │ ├── components/ # React components (e.g., NoteList, NoteForm)
│ │ ├── pages/ # Page components (e.g., HomePage)
│ │ ├── App.js # Main app component
│ │ └── index.js # Entry point for React app
├── server/ # Node.js backend code
│ ├── models/ # Mongoose models (e.g., User, Note)
│ ├── routes/ # Express routes (e.g., authRoutes, noteRoutes)
│ ├── controllers/ # Controller functions for handling requests
│ ├── middleware/ # Middleware for authentication and error handling
│ ├── config/ # Configuration files (e.g., database connection)
│ └── server.js # Entry point for Node.js server
└── README.md # This README file
Here are some of the key API endpoints available in this application:
Method | Endpoint | Description |
---|---|---|
POST | /api/auth/# |
Register a new user |
POST | /api/auth/# |
Log in an existing user |
GET | /api/notes |
Get all notes for logged-in user |
GET | /api/notes/:id |
Get note by ID |
POST | /api/notes |
Create a new note |
PUT | /api/notes/:id |
Update note by ID |
DELETE | /api/notes/:id |
Delete note by ID |
Contributions are welcome! If you have suggestions or improvements, please create a pull request or open an issue.
- Fork the repository.
- Create your feature branch (
git checkout -b feature/AmazingFeature
). - Commit your changes (
git commit -m 'Add some AmazingFeature'
). - Push to the branch (
git push origin feature/AmazingFeature
). - Open a pull request.
This project is licensed under the MIT License - see the LICENSE file for details.
Feel free to customize this README according to your specific project needs!