{"id":27926055,"url":"https://github.com/yashagrahari07/notesync","last_synced_at":"2026-04-28T15:35:43.928Z","repository":{"id":291664427,"uuid":"976558418","full_name":"Yashagrahari07/NoteSync","owner":"Yashagrahari07","description":"NoteSync: Real-Time Collaborative Notes App","archived":false,"fork":false,"pushed_at":"2025-05-05T22:03:13.000Z","size":210,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-07T00:51:40.780Z","etag":null,"topics":["notes-app","realtime","socket-io","websockets"],"latest_commit_sha":null,"homepage":"https://note-sync24.vercel.app","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Yashagrahari07.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-05-02T10:25:16.000Z","updated_at":"2025-05-05T22:03:16.000Z","dependencies_parsed_at":"2025-05-05T23:20:18.159Z","dependency_job_id":"568affda-7648-48d8-9d23-51b8fa4dd42f","html_url":"https://github.com/Yashagrahari07/NoteSync","commit_stats":null,"previous_names":["yashagrahari07/notesync"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Yashagrahari07/NoteSync","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Yashagrahari07%2FNoteSync","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Yashagrahari07%2FNoteSync/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Yashagrahari07%2FNoteSync/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Yashagrahari07%2FNoteSync/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Yashagrahari07","download_url":"https://codeload.github.com/Yashagrahari07/NoteSync/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Yashagrahari07%2FNoteSync/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263066557,"owners_count":23408387,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["notes-app","realtime","socket-io","websockets"],"created_at":"2025-05-07T00:51:19.920Z","updated_at":"2026-04-28T15:35:38.889Z","avatar_url":"https://github.com/Yashagrahari07.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# NoteSync: Real-Time Collaborative Notes App\n\nNoteSync is a real-time collaborative notes application that allows multiple users to create, edit, and view shared notes in real-time. It is built using Node.js, Express.js, WebSockets, MongoDB, and React.\n\n## Features\n- **User Management**: Register and log in with JWT-based authentication.\n- **Notes Functionality**: Create, update, delete, and search notes.\n- **Real-Time Collaboration**: Edit notes collaboratively with instant updates using WebSockets.\n- **Third-Party API Integration**: Fetch and attach quotes to notes during creation.\n- **Containerization**: Dockerized for easy deployment.\n- **Search and Filter**: Search notes by title, content, or tags.\n\n---\n\n## Architecture Overview\n\nThe application is divided into two main components:\n1. **Backend**:\n   - Built with Node.js, Express.js, and MongoDB.\n   - Handles user authentication, note management, and WebSocket communication.\n   - Third-party API integration for fetching quotes.\n\n2. **Frontend**:\n   - Built with React and Vite.\n   - Provides a user-friendly interface for managing notes and collaborating in real-time.\n\n---\n\n## Setup Instructions\n\n### Prerequisites\n- Docker and Docker Compose installed.\n- Node.js and npm installed (for local development).\n\n### Local Setup\n1. Clone the repository:\n   ```bash\n   git clone https://github.com/Yashagrahari07/NoteSync.git\n   cd NoteSync\n   ```\n\n2. Set up environment variables:\n   - Create `.env` files in both `Backend` and `Frontend` directories.\n   - Backend `.env` example:\n     ```\n     DB_CONNECT=mongodb://localhost:27017/notesync\n     JWT_SECRET=your_jwt_secret\n     FRONTEND_URL=http://localhost:5173\n     ```\n   - Frontend `.env` example:\n     ```\n     VITE_API_BASE_URL=http://localhost:3000\n     ```\n\n3. Start the application using Docker Compose:\n   ```bash\n   docker-compose up --build\n   ```\n\n4. Access the application:\n   - Frontend: [http://localhost:5173](http://localhost:5173)\n   - Backend API: [http://localhost:3000](http://localhost:3000)\n\n---\n\n## Sample Users\n\nTo try the application, you can use the following sample users:\n\n1. **User 1**:\n   - Email: `raj@gmail.com`\n   - Password: `raj1234`\n\n2. **User 2**:\n   - Email: `yash@gmail.com`\n   - Password: `yash1234`\n\n---\n\n## API Endpoints\n\n### **User Management**\n- **POST** `/users/register`: Register a new user.\n- **POST** `/users/login`: Log in and receive a JWT token.\n- **GET** `/users/profile`: Get the logged-in user's profile (requires JWT).\n- **GET** `/users/logout`: Log out the user.\n\n### **Notes**\n- **POST** `/notes`: Create a new note.\n- **GET** `/notes`: Get all notes for the logged-in user.\n- **GET** `/notes/:id`: Get a specific note by ID.\n- **PUT** `/notes/:id`: Update a note by ID.\n- **DELETE** `/notes/:id`: Delete a note by ID.\n- **POST** `/notes/:id/collaborators`: Add a collaborator to a note.\n- **PATCH** `/notes/:id/pin`: Toggle pin status for a note.\n\n---\n\n## Deployment\n\nTo deploy the application:\n1. Build Docker images:\n   ```bash\n   docker-compose build\n   ```\n\n2. Push the images to a container registry (e.g., Docker Hub).\n\n3. Deploy the containers to a hosting service like Vercel, Render, AWS.\n\n---\n\n## Technologies Used\n- **Backend**: Node.js, Express.js, MongoDB, Socket.IO\n- **Frontend**: React, Redux, TailwindCSS\n- **Containerization**: Docker, Docker Compose\n- **Third-Party API**: ZenQuotes API\n\n---\n\n## License\nThis project is licensed under the MIT License. See the [LICENSE](./LICENSE) file for details.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyashagrahari07%2Fnotesync","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyashagrahari07%2Fnotesync","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyashagrahari07%2Fnotesync/lists"}