{"id":29132099,"url":"https://github.com/annigandlakameshwararao/zcoder","last_synced_at":"2026-01-20T16:32:29.886Z","repository":{"id":301307033,"uuid":"1005954110","full_name":"AnnigandlaKameshwaraRao/Zcoder","owner":"AnnigandlaKameshwaraRao","description":"ZCoder is a full-stack web application that allows users to practice coding problems, post and view solutions, bookmark problems, track their progress, and collaborate in real-time rooms using Socket.IO. It supports authentication, user profiles, solution sharing, and live messaging features.","archived":false,"fork":false,"pushed_at":"2025-06-26T06:50:16.000Z","size":1671,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-26T07:37:46.907Z","etag":null,"topics":["css","expressjs","jwt-authentication","mogodb","node-js","reactjs","socket-io"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AnnigandlaKameshwaraRao.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-06-21T06:51:04.000Z","updated_at":"2025-06-26T06:50:19.000Z","dependencies_parsed_at":"2025-06-26T07:48:27.017Z","dependency_job_id":null,"html_url":"https://github.com/AnnigandlaKameshwaraRao/Zcoder","commit_stats":null,"previous_names":["annigandlakameshwararao/zcoder"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/AnnigandlaKameshwaraRao/Zcoder","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AnnigandlaKameshwaraRao%2FZcoder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AnnigandlaKameshwaraRao%2FZcoder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AnnigandlaKameshwaraRao%2FZcoder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AnnigandlaKameshwaraRao%2FZcoder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AnnigandlaKameshwaraRao","download_url":"https://codeload.github.com/AnnigandlaKameshwaraRao/Zcoder/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AnnigandlaKameshwaraRao%2FZcoder/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272971409,"owners_count":25024093,"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","status":"online","status_checked_at":"2025-08-31T02:00:09.071Z","response_time":79,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["css","expressjs","jwt-authentication","mogodb","node-js","reactjs","socket-io"],"created_at":"2025-06-30T06:12:20.241Z","updated_at":"2026-01-20T16:32:29.857Z","avatar_url":"https://github.com/AnnigandlaKameshwaraRao.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# ZCoder - Collaborative Coding \u0026 Problem-Solving Platform\n\nZCoder is a full-stack web application that allows users to practice coding problems, post and view solutions, bookmark problems, track their progress, and collaborate in real-time rooms using Socket.IO. It supports authentication, user profiles, solution sharing, and live messaging features.\n\n## Live Demo\n\n**Zcoder:** [https://zcoder-tau.vercel.app/](https://zcoder-tau.vercel.app/)  \n\n## Project Previews\n\n### Home Page\n\n![Home Page 1](./previewshots/Home1.png)\n\n\n![Home Page 2](./previewshots/Home2.png)\n\n\n![Home Page 3](./previewshots/Home3.png)\n\n\n\n## Singup and Login\n\n![Signup](./previewshots/Auth1.png)\n\n\n![OTP verify](./previewshots/Auth2.png)\n\n\n![OTP email](./previewshots/OTP1.jpg)\n\n\n![Login](./previewshots/Auth3.png)\n\n\n![Welcome email](./previewshots/OTP2.jpg)\n\n\n### Profile Dashboard\n\n![Dashboard1](./previewshots/Profile1.png)\n\n\n![Dashboard2](./previewshots/Profile2.png)\n\n\n### Contest Page\n\n![Contest Page](./previewshots/Contests.png)\n\n\n### Rooms Page\n\n![Rooms Page1](./previewshots/Rooms1.png)\n\n\n![Rooms Page2](./previewshots/Rooms2.png)\n\n\n### Problems Page\n\n![Problems Page 1](./previewshots/Problems1.png)\n\n\n![Problems Page 2](./previewshots/Problems2.png)\n\n\n![Problems Page 3](./previewshots/Problems3.png)\n\n\n### Solutions\n\n![Solutions 1](./previewshots/Solutions1.png)\n\n\n![Solutions 2](./previewshots/Solutions2.png)\n\n\n![Solutions 3](./previewshots/Solutions3.png)\n\n\n## Tech Stack\n\n### Frontend\n- React.js (Vite)\n- React Router\n- Socket.IO Client\n- CSS\n- React-Toastify\n\n### Backend\n- Node.js + Express.js\n- MongoDB (Atlas) + Mongoose\n- Socket.IO Server\n- Nodemailer to send emails\n- JWT Authentication\n- Cloudinary API to store profile pics of users\n- Clist API to get data of upcomming contests\n\n## Features\n\n### User System\n- Signup/Login with JWT auth\n- Email verification using OTP\n- Profile page with avatar, bio, and stats\n- View other users’ profiles\n\n### Problems\n- View problem list with filters (difficulty, topic, solved/unsolved)\n- Track solved problems via local storage\n- Bookmark problems\n\n### Solutions\n- Post solution with code editor (supports C++, Java, Python, JS)\n- Display solutions by language and approach\n- Edit/Delete own solutions\n\n### Rooms (Real-time Chat)\n- Create/join rooms based on room IDs\n- Real-time messaging via Socket.IO\n- Store recent 24 hour messages in MongoDB\n\n## Folder Structure\n\n```\nZCoder/\n├── backend/\n│   ├── config/\n│   ├── controllers/\n│   ├── middleware/\n│   ├── models/\n│   ├── routes/\n│   ├── utils/\n│   ├── .env\n│   └── server.js\n├── frontend/\n│   ├── public/\n│   ├── src/\n│   |   ├──assests/\n│   |   ├──components/\n│   |   ├──pages/\n│   |   ├──styles/\n│   |   ├──AppRouter.jsx\n│   ├── util.js\n│   └── index.html\n```\n\n## Getting Started Locally\n\n### Prerequisites\n- Node.js\n- MongoDB Atlas account\n- Cloudinary API credentials\n- Clist API credentials\n- Gmail App pass key\n\n### Backend Setup\n\n```bash\ncd backend\nnpm install\n```\n\nCreate a `.env` file with:\n\n```\nCLIST_USERNAME= your_clist_username\nCLIST_API_KEY= your_clist_apikey\nPORT = sample_port_of_your_backend \nMONGO_USER = your_mongodb_username\nMONGO_PASSWORD = your_mogodb_password\nMONGO_URL = your_mongodb_connection_url_you_can_get_it_from_mongodb_atlas\nJWT_SECRET= your_server_side_secret_key_for_jwt\nGMAIL_USER= your_gmail_to_send_otps\nGMAIL_PASS= your_gmail_app_passkey\nCLOUDINARY_CLOUD_NAME= your_coludinary_cloud_name_to_store_dp_of_users\nCLOUDINARY_API_KEY= your_cloudinary_api_key\nCLOUDINARY_API_SECRET= your_cloudinary_api_secret\nFRONTEND_URL = your_frontend_base_url \n\n```\n\nRun backend:\n\n```bash\nnode server.js\n```\n\n### Frontend Setup\n\n```bash\ncd frontend\nnpm install\nnpm run dev\n```\n\n## To-Do / Future Improvements\n- Authentication via Google OAuth\n- Forgot password or password change feature using verification email\n- Add friend feature for users\n- Delete user account feature\n- Compile and run code in real-time\n- Leaderboards \u0026 user analytics\n\n\n\n## License\n\nAll rights reserved.  \n\nThis project and its source code are protected. You may not use, copy, modify, distribute, or reproduce any part of this project without explicit written permissions from the author.\n\n© 2025 Annigandla Kameshwara Rao\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fannigandlakameshwararao%2Fzcoder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fannigandlakameshwararao%2Fzcoder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fannigandlakameshwararao%2Fzcoder/lists"}