Quill is a sleek, user-friendly note-taking application built using the MERN (MongoDB, Express, React, Node.js) stack. It offers a fast, interactive interface for creating, managing, and organizing your personal notes.
Quill provides a full suite of features for an optimal note-taking experience:
- Create Notes: Easily add new notes with titles and content.
- Edit Notes: Modify existing notes seamlessly.
- Delete Notes: Remove notes instantly.
- Save Notes: Persistent data storage using MongoDB.
- User-Friendly UI: An intuitive and interactive interface built with React, styled using Tailwind CSS and the DaisyUI component library (using the "Forest" theme).
- Robust Backend: Powered by Node.js and Express.
- Rate Limiting: Protects the API from abuse using Upstash.
- Toast Notifications: Provides real-time feedback for user actions using React Hot Toast.
Quill is built upon a modern and robust set of technologies:
| Category | Technology | Purpose |
|---|---|---|
| Frontend | React, Vite | Fast, modern frontend library for building the UI. |
| Styling | Tailwind CSS, DaisyUI | Utility-first CSS framework and component library for a polished design. |
| Backend | Node.js, Express | Server environment and web application framework. |
| Database | MongoDB, Mongoose | NoSQL database and an ODM for data modeling. |
| Utilities | Upstash, dotenv, cors, react-hot-toast |
Rate limiting, environment variable management, cross-origin resource sharing, and user feedback. |
| Development | nodemon |
Automatically restarts the server during development. |
Follow these instructions to get a copy of the project up and running on your local machine for development and testing purposes.
You will need the following software installed on your machine:
- Node.js (v14+)
- npm or yarn
- A MongoDB database (local or cloud-hosted via MongoDB Atlas)
-
Clone the repository:
git clone [Your Repository URL] cd quill -
Install dependencies for the backend (root directory):
npm install # or yarn install -
Install dependencies for the frontend (client directory):
cd client npm install # or yarn install cd ..
-
Create a
.envfile in the root directory and add your environment variables.# --- MongoDB Configuration --- MONGO_URI="[Your MongoDB Connection String]" # --- Server Configuration --- PORT=3000 # --- Upstash Rate Limiting Configuration --- UPSTASH_REDIS_REST_URL="[Your Upstash Redis URL]" UPSTASH_REDIS_REST_TOKEN="[Your Upstash Redis Token]"
The following are the main CRUD API endpoints for managing notes:
| Method | Endpoint | Description |
|---|---|---|
GET |
/api/notes |
Retrieves all notes. |
POST |
/api/notes |
Creates a new note. |
PUT |
/api/notes/:id |
Updates an existing note. |
DELETE |
/api/notes/:id |
Deletes a note by ID. |
Project Link: https://github.com/ahmad12583719/Quill Your Name: Muhammad Ahmad raza