A simple note-taking web application that allows users to create, save, and manage their notes securely in the cloud. The app features login and signup functionality, with user data stored securely in a cloud database. It uses Express, JWT, bcrypt, and MongoDB on the backend, and Bootstrap for the frontend.
-
User Authentication:
- Signup and login functionality with JWT (JSON Web Tokens) for secure session management.
- Password hashing using bcrypt for secure password storage.
-
Note Management:
- Create, read, update, and delete (CRUD) notes.
- Notes are stored in a MongoDB database and are associated with individual users.
-
Frontend:
- Built with Bootstrap for a responsive, mobile-first user interface.
- Node.js: JavaScript runtime environment.
- Express.js: Web framework for building APIs and handling HTTP requests.
- MongoDB: NoSQL database for storing user data and notes.
- Mongoose: ODM (Object Data Modeling) library for MongoDB, used to define and interact with data models.
- bcrypt.js: Library for hashing passwords securely.
- jsonwebtoken (JWT): Used for creating and verifying authentication tokens.
- Bootstrap: CSS framework for responsive, mobile-first design.
Make sure you have the following installed on your machine:
- Node.js (>= 14.x)
- Git (optional, for version control)
git clone https://github.com/HarshYadav152/notebook-frontend.gitNavigate to the project directory and install the required dependencies:
cd notebook-frontend
npm install# Copy code
npm run dev for vite app
This will start the backend server on port 5000 (or the port specified in your .env file).
- Navigate to the signup page and create a new account with a username, email, and password.
- The password is hashed using bcrypt before being stored in the database.
- After signing up, you can log in using your credentials.
- If the login is successful, you will receive a JWT token that can be used to authenticate further requests.
- Once logged in, you can create, edit, and delete notes.
- All notes are stored in MongoDB and are associated with the authenticated user.
Notes can be retrieved and updated only by the user who created them.
- Display a list of notes, and options to add, edit, and delete notes.
- The frontend is built using Bootstrap for responsive design, so the app will be mobile-friendly.
If you would like to contribute to the development of this app, please fork the repository, create a new branch, and submit a pull request with your changes.
Clone your fork:
git clone https://github.com/HarshYadav152/notebook-frontend.gitCreate a new branch:
git checkout -b feature-branchMake your changes and commit them.
Push to your fork:
git push origin feature-branchSubmit a pull request.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgements
- ReactJS React is a JavaScript library.
- Express.js for building the API server.
- MongoDB for the database.
- bcrypt for password hashing.
- jsonwebtoken (JWT) for user authentication.
- Bootstrap for frontend styling.