https://github.com/sam4web/project-docket
A simple, intuitive note-taking app built using MERN Stack
https://github.com/sam4web/project-docket
express jwt-authentication mern-stack mongodb nodejs notes-app react-router-dom reactjs redux tailwindcss
Last synced: 12 days ago
JSON representation
A simple, intuitive note-taking app built using MERN Stack
- Host: GitHub
- URL: https://github.com/sam4web/project-docket
- Owner: sam4web
- Created: 2025-04-01T15:04:08.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2025-04-07T13:15:33.000Z (9 months ago)
- Last Synced: 2025-04-07T14:26:51.723Z (9 months ago)
- Topics: express, jwt-authentication, mern-stack, mongodb, nodejs, notes-app, react-router-dom, reactjs, redux, tailwindcss
- Language: JavaScript
- Homepage: https://project-docket.netlify.app/
- Size: 267 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Project Docket
Docket is a responsive and user-friendly notes management application that allows users to create, read, update, and delete notes securely. The application features both a **frontend** built with **React.js**, **Redux**, and **TailwindCSS**, and a **backend** powered by **Node.js**, **Express.js**, and **MongoDB**.
## Table of Contents
- [Project Docket](#project-docket)
- [Table of Contents](#table-of-contents)
- [Features](#features)
- [Frontend](#frontend)
- [Backend](#backend)
- [Technologies Used](#technologies-used)
- [Frontend](#frontend-1)
- [Backend](#backend-1)
- [Frontend Screenshots](#frontend-screenshots)
- [Backend API Endpoints](#backend-api-endpoints)
- [Authentication](#authentication)
- [Users](#users)
- [Notes](#notes)
- [Project Links](#project-links)
## Features
### Frontend
- **User Authentication**: Secure sign-up, login, and logout functionalities with session handling.
- **Responsive Design**: Optimized for both desktop and mobile devices.
- **Create Notes**: Add notes with a title and content, stored securely in the backend.
- **Read Notes**: View a list of all notes and read individual notes.
- **Update Notes**: Edit titles and content with instant feedback.
- **Delete Notes**: Remove notes from your account with confirmation to prevent accidental deletion.
### Backend
- **User Authentication**: JWT-based secure sign-up, login, and logout with token refresh.
- **Create Notes**: Allows users to add new notes securely stored in MongoDB.
- **Read Notes**: Retrieve all notes or specific notes by ID.
- **Update Notes**: Edit titles and content of existing notes.
- **Delete Notes**: Remove notes from the database with confirmation.
## Technologies Used
### Frontend
- **[React.js](https://reactjs.org/)**: A JavaScript library for building dynamic user interfaces.
- **[TailwindCSS](https://tailwindcss.com/)**: A utility-first CSS framework for custom styling.
- **[Redux](https://redux.js.org/)**: Global state management for consistent data flow.
- **[React Router DOM](https://reactrouter.com/)**: Routing for enhanced navigation.
### Backend
- **[Node.js](https://nodejs.org/)**: JavaScript runtime for server-side code.
- **[Express.js](https://expressjs.com/)**: Web framework for API routing and HTTP requests.
- **[MongoDB](https://www.mongodb.com/)**: NoSQL database for flexible data storage.
- **[Mongoose](https://mongoosejs.com/)**: ODM for schema-based MongoDB interaction.
- **[JWT (JSON Web Tokens)](https://jwt.io/)**: Secure token-based authentication.
## Frontend Screenshots

_Dashboard showing a list of notes with options to view & edit notes_

_Login screen with a simple form_
## Backend API Endpoints
### Authentication
- **`POST /auth/register`**: Register a new user.
- **`POST /auth/login`**: Log in an existing user.
- **`POST /auth/logout`**: Log out the current user.
- **`POST /auth/refresh`**: Refresh the JWT token.
### Users
- **`POST /auth/delete-user`**: Delete the current user account.
### Notes
- **`GET /notes`**: Retrieve all notes.
- **`GET /notes/:id`**: Retrieve a specific note by ID.
- **`POST /notes`**: Create a new note.
- **`PUT /notes/:id`**: Update an existing note by ID.
- **`DELETE /notes/:id`**: Delete a specific note by ID.
## Project Links
- **Frontend Code**: [Frontend Repository](https://github.com/sam4web/project-docket/tree/main/frontend)
- **Backend Code**: [Backend Repository](https://github.com/sam4web/project-docket/tree/main/backend)
- **Live Frontend**: [Docket Live](https://project-docket.netlify.app/)
- **Live API**: [Docket API](https://docket-dxyp.onrender.com/)