A full-stack web application for managing personal notes with search functionality.
- User authentication
- Create, read, update, and delete notes
- Search notes
- Responsive design for mobile and desktop
- Pin important notes
- Tag system for organization
Before you begin, ensure you have the following installed:
- Node.js (v14.0.0 or higher)
- npm (v6.0.0 or higher)
- MongoDB (v4.0.0 or higher)
git clone <repository-url>
cd notes-app
Navigate to the server directory:
cd server
Install dependencies:
npm update
Create a .env
file in the server directory with the following variables:
ACCESS_TOKEN_SECRET=<token>
Create a config.json
file in the server directory with the following variables:
{
"connectionString":"<MongoDB string>"
}
Start the server:
npm run start
Open a new terminal and navigate to the client directory:
cd client
Install dependencies:
npm update
Start the client application:
npm run dev
client/
├── public/
├── src/
│ ├── components/
│ │ ├── card/
│ │ ├── profile/
│ │ └── searchBar/
│ ├── pages/
│ │ └── home/
│ ├── utils/
│ └── App.js
└── package.json
server/
├── controllers/
├── middleware/
├── models/
├── routes/
├── config/
└── server.js
In the client directory:
npm run dev
- Runs the app in development modenpm run build
- Builds the app for production
In the server directory:
npm run start
- Starts the server with nodemonnpm start
- Starts the server in production mode
POST /api/register
- Register new userPOST /api/login
- User loginGET /api/get-user
- Get user information
GET /api/get-all-notes
- Get all notesPOST /api/add-note
- Create new notePUT /api/update-note/:id
- Update noteDELETE /api/delete-note/:id
- Delete noteGET /api/search-note
- Search notes
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
For support, email [email protected] or create an issue in the repository.