ChronoNotesApp is a full-stack note-taking application that allows users to register, login, create, edit, and delete notes. The project consists of a Node.js/Express backend API and a React frontend built with Vite.
- User authentication (register, login)
- Create, read, update, and delete notes
- Responsive and user-friendly interface
- State management with Redux Toolkit
- Protected routes for authenticated users
- Node.js
- Express
- MongoDB with Mongoose
- JSON Web Tokens (JWT) for authentication
- bcryptjs for password hashing
- dotenv for environment variables
- cors and cookie-parser middleware
- React 18
- Vite build tool
- React Router DOM for routing
- Redux Toolkit for state management
- Axios for API requests
- Bootstrap for styling
- React Hot Toast for notifications
- React Icons
- Node.js (v16 or higher recommended)
- npm (comes with Node.js)
- MongoDB instance (local or cloud)
-
Navigate to the Backend directory:
cd Backend -
Install dependencies:
npm install
-
Create a
.envfile in the Backend directory and add your environment variables, for example:PORT=5000 MONGO_URI=your_mongodb_connection_string JWT_SECRET=your_jwt_secret
-
Navigate to the Frontend directory:
cd Frontend -
Install dependencies:
npm install
From the Backend directory, start the backend server:
npm run devThe backend server will start on the port specified in your .env file (default is 5000).
From the Frontend directory, start the frontend development server:
npm run devThe frontend will start and open in your default browser (usually at http://localhost:5173).
ChronoNotesApp/
├── Backend/
│ ├── controllers/
│ ├── middlewares/
│ ├── models/
│ ├── routes/
│ ├── config/
│ ├── index.js
│ ├── package.json
│ └── ...
├── Frontend/
│ ├── src/
│ │ ├── components/
│ │ ├── pages/
│ │ ├── Redux/
│ │ ├── routes/
│ │ ├── services/
│ │ ├── App.jsx
│ │ ├── main.jsx
│ │ └── ...
│ ├── package.json
│ ├── vite.config.js
│ └── ...
└── README.md
- Register a new user account.
- Login with your credentials.
- Create, edit, and delete notes.
- Enjoy a seamless note-taking experience.
This project is open source and available under the MIT License.