{"id":23689796,"url":"https://github.com/sanjay-kumar-r-a/backendpingpal","last_synced_at":"2026-04-06T09:31:11.177Z","repository":{"id":270267862,"uuid":"909810776","full_name":"Sanjay-Kumar-R-A/BackendPingPal","owner":"Sanjay-Kumar-R-A","description":"PingPal Backened which is web-based chat application","archived":false,"fork":false,"pushed_at":"2025-01-12T17:19:59.000Z","size":40,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-19T23:41:40.348Z","etag":null,"topics":["api","cors","documentation","express","git","github-config","json","jsonwebtoken","mongodb","nodejs","npm","postman","render","server","vscode"],"latest_commit_sha":null,"homepage":"https://backendpingpal.onrender.com/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Sanjay-Kumar-R-A.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2024-12-29T20:57:11.000Z","updated_at":"2025-01-12T17:20:02.000Z","dependencies_parsed_at":"2024-12-30T01:12:55.834Z","dependency_job_id":null,"html_url":"https://github.com/Sanjay-Kumar-R-A/BackendPingPal","commit_stats":null,"previous_names":["sanjay-kumar-r-a/backendpingpal"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sanjay-Kumar-R-A%2FBackendPingPal","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sanjay-Kumar-R-A%2FBackendPingPal/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sanjay-Kumar-R-A%2FBackendPingPal/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sanjay-Kumar-R-A%2FBackendPingPal/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Sanjay-Kumar-R-A","download_url":"https://codeload.github.com/Sanjay-Kumar-R-A/BackendPingPal/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239753700,"owners_count":19691159,"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":["api","cors","documentation","express","git","github-config","json","jsonwebtoken","mongodb","nodejs","npm","postman","render","server","vscode"],"created_at":"2024-12-30T01:39:42.926Z","updated_at":"2025-12-30T19:03:23.859Z","avatar_url":"https://github.com/Sanjay-Kumar-R-A.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"#DOCUMENTATION OF THE PROJECT\n\nhttps://docs.google.com/document/d/1b3VrXoYMeWqCg23wZ5ZHlC1fPHO1rqfg52tRQCdZckM/edit?tab=t.0#heading=h.z6ne0og04bp5\n\nAPI DOCUMENTATION OF THE PINGPAL (POSTMAN)\n\nhttps://documenter.getpostman.com/view/39168811/2sAYJ6DfSc\n\n\n\n\n\n\n\n\n\n\n                                        PINGPAL INDEX\n\n\n1.Abstract\n2.Existing project drawbacks\n3.Overcome the problems\n4.Overview\n5. DB Design \n6. Tech Stack used \n7. API Documentation \n8. Walkthrough of the project - functionalities of your project from initial - final process ( screenshot - and functions ) \n-\u003e this documentation should be uploaded in the frontend github link in README or as doc link in README\n\nhttps://documenter.getpostman.com/view/39168811/2sAYJ6DfSc\n\nAPI documentation should be submitted in the backend github link\nDB design also can be added \n\n\n\n\n\n\nPingPal: Real-Time Chat Application\n\n 1. Abstract\nPingPal is a modern real-time chat application designed to facilitate seamless communication among users. It supports both individual and group chats, file sharing, notifications, and user profiles. With features like message search, chat history, and user status, PingPal aims to enhance user experience and functionality for both casual and professional use cases. The system is built using the MERN stack, ensuring scalability and reliability.\n\n2. Existing Project Drawbacks\nExisting chat applications face several limitations:\n- Lack of real-time responsiveness due to outdated technologies.\n- Poor scalability for large groups or high-traffic scenarios.\n- Limited file-sharing capabilities, often with size or format restrictions.\n- Absence of robust search functionalities, making it hard to locate past messages.\n- Inadequate content moderation and administrative tools.\n\n\n\n\n 3. Overcome the Problems\nPingPal addresses these drawbacks with:\n- Real-time communication powered by **Socket.io**, ensuring instant message delivery.\n- Scalable architecture using the **MERN stack**.\n- Comprehensive file-sharing capabilities with type and size restrictions.\n- Advanced message search with filters for efficient retrieval.\n- Administrative tools for user and group management, as well as content moderation.\n\n 4. Overview\nPingPal offers the following core functionalities:\n- **Real-Time Messaging**: Instant one-on-one and group chats.\n- **Group Chat Management**: Creation and membership controls for group chats.\n- **File Sharing**: Multimedia and document exchange with upload/download features.\n- **Notifications**: Real-time and push notifications for message updates.\n- **User Profiles**: Customizable user profiles with status updates.\n- **Message Search and Chat History**: Advanced search and filtering of past conversations.\n- **Admin Tools**: User management, group moderation, and analytics.\n\n\n\n\n\n5. Database Design\n MongoDB Schema\n1. **Users**:\n   - `_id`: ObjectId\n   - `username`: String (unique, required)\n   - `email`: String (unique, required)\n   - `password`: String (hashed, required)\n   - `status`: String (e.g., online, offline, away)\n   - `profilePicture`: String\n\n2. **Messages**:\n   - `_id`: ObjectId\n   - `sender`: ObjectId (ref: Users)\n   - `content`: String\n   - `room`: String\n   - `timestamp`: Date\n\n\n\n 6. Tech Stack Used\n- **Frontend**: ReactJS with TailwindCSS for responsive and modern UI design.\n- **Backend**: Node.js with Express.js for API development.\n- **Database**: MongoDB for scalable and flexible data storage.\n- **Real-Time Communication**: Socket.io for WebSocket-based instant messaging.\n- **Authentication**: JWT for secure user sessions.\n\n7. API Documentation\n### Authentication Routes\n1. `POST /api/auth/register`\n   - **Description**: Registers a new user.\n   - **Payload**:\n     ```json\n     {\n       \"username\": \"string\",\n       \"email\": \"string\",\n       \"password\": \"string\"\n     }\n     ```\n   - **Response**:\n     ```json\n     { \"message\": \"User registered successfully\" }\n     ```\n\n2. `POST /api/auth/login`\n   - **Description**: Logs in a user.\n   - **Payload**:\n     ```json\n     {\n       \"email\": \"string\",\n       \"password\": \"string\"\n     }\n     ```\n   - **Response**:\n     ```json\n     { \"token\": \"string\", \"user\": { \"username\": \"string\" } }\n     ```\n\n### Chat Routes\n1. `POST /api/chat/send`\n   - **Description**: Sends a message.\n   - **Payload**:\n     ```json\n     {\n       \"sender\": \"ObjectId\",\n       \"content\": \"string\",\n       \"room\": \"string\"\n     }\n     ```\n   - **Response**:\n     ```json\n     { \"message\": \"Message sent successfully\" }\n     ```\n\n2. `GET /api/chat/history/:room`\n   - **Description**: Retrieves chat history for a room.\n   - **Response**:\n     ```json\n     [\n       { \"sender\": \"ObjectId\", \"content\": \"string\", \"timestamp\": \"Date\" }\n     ]\n     ```\n\n\n\n\n8. Walkthrough of the Project\n Initial Setup\n- **Login/Register Page**: Secure user authentication with form validation.\n- **Dashboard**: Overview of available chats and user status.\n\nCore Functionalities\n1. Real-Time Messaging:\n   - Users can send and receive messages instantly.\n   - Typing indicators and read receipts included.\n\n2. Group Chats:\n   - Create groups, add members, and manage settings.\n\n3. **File Sharing**:\n   - Upload and download images, videos, and documents with preview support.\n\n4. **Notifications**:\n   - Real-time notifications for new messages and mentions.\n\n\n\n\nFUNCTIONS\n1. Login Page:\n   - Secure login form.\n   - ![Login Page Screenshot](path/to/login-screenshot.png)\n\n2. Chat Window:\n   - Real-time messaging interface.\n   - ![Chat Window Screenshot](path/to/chat-screenshot.png)\n\n3. Group Management:\n   - Group creation and member management UI.\n   - ![Group Management Screenshot](path/to/group-screenshot.png)\n\n4. Admin Dashboard:\n   - User activity and flagged content monitoring.\n   - ![Admin Dashboard Screenshot](path/to/admin-screenshot.png)\n Conclusion\nPingPal provides a robust and modern solution for real-time communication, addressing common drawbacks in existing applications. Its features ensure seamless user interaction, efficient management, and a superior chat experience.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsanjay-kumar-r-a%2Fbackendpingpal","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsanjay-kumar-r-a%2Fbackendpingpal","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsanjay-kumar-r-a%2Fbackendpingpal/lists"}