The Note Taking App is a web application that allows users to create, update, and delete notes. It consists of a frontend and backend implementation.
- User Authentication: Users can register, log in, and log out.
- Note Management: Users can create new notes, update existing notes, and delete notes.
- Markdown Support: Notes can be written in markdown format for easy formatting and styling.
- User Profile: Users can view their profile information.
The project uses the following technologies:
- Frontend:
- React: A JavaScript library for building user interfaces.
- Redux: A predictable state container for managing application state.
- Axios: A promise-based HTTP client for making API requests.
- React Router: A library for routing in React applications.
- Material-UI: A popular React UI framework for building responsive web applications.
- Backend:
- Node.js: A JavaScript runtime environment for running server-side applications.
- Express.js: A web application framework for building RESTful APIs.
- MongoDB: A NoSQL database for storing user and note data.
- Mongoose: An Object Data Modeling (ODM) library for MongoDB.
- Clone the repository:
git clone https://github.com/bereketsintayehu/note-app - Install the dependencies:
- For the backend, run
npm install - For the frontend, navigate to the
frontenddirectory and runnpm install
- For the backend, run
- Start the backend server:
- Run
npm start
- Run
- Start the frontend application:
- Navigate to the
frontenddirectory - Run
npm start
- Navigate to the
The following API endpoints are available:
- POST /api/users: Register a new user.
- POST /api/users/login: Authenticate a user and generate an access token.
- GET /api/users/me: Get the user's profile information.
- GET /api/notes: Get all notes for the authenticated user.
- POST /api/notes: Create a new note for the authenticated user.
- PUT /api/notes/:id: Update a note with the specified ID.
- DELETE /api/notes/:id: Delete a note with the specified ID.
This project is licensed under the MIT License.