{"id":29027011,"url":"https://github.com/ranjeetraj444/job-interview","last_synced_at":"2026-04-07T08:31:47.922Z","repository":{"id":298663651,"uuid":"999960332","full_name":"RanjeetRaj444/Job-interview","owner":"RanjeetRaj444","description":"A modern job platform with real-time interview request features for both applicants and recruiters. Built with React, Vite, Node.js, Express, MongoDB, and Socket.IO.","archived":false,"fork":false,"pushed_at":"2025-06-12T07:13:47.000Z","size":57,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-12T08:27:07.555Z","etag":null,"topics":["express","jsonwebtoken","mongodb","nodejs","react-router-dom","socket-io","vitejs"],"latest_commit_sha":null,"homepage":"","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/RanjeetRaj444.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,"zenodo":null}},"created_at":"2025-06-11T04:08:03.000Z","updated_at":"2025-06-12T07:15:32.000Z","dependencies_parsed_at":"2025-06-12T08:28:08.751Z","dependency_job_id":"2200b110-39ef-41f8-a1cb-4d8270700c00","html_url":"https://github.com/RanjeetRaj444/Job-interview","commit_stats":null,"previous_names":["ranjeetraj444/job-interview"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/RanjeetRaj444/Job-interview","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RanjeetRaj444%2FJob-interview","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RanjeetRaj444%2FJob-interview/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RanjeetRaj444%2FJob-interview/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RanjeetRaj444%2FJob-interview/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RanjeetRaj444","download_url":"https://codeload.github.com/RanjeetRaj444/Job-interview/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RanjeetRaj444%2FJob-interview/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262010798,"owners_count":23244409,"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":["express","jsonwebtoken","mongodb","nodejs","react-router-dom","socket-io","vitejs"],"created_at":"2025-06-26T06:01:53.002Z","updated_at":"2026-04-07T08:31:47.870Z","avatar_url":"https://github.com/RanjeetRaj444.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 💼 Job Platform - Real-time Interview Request System\n\nA modern job platform with real-time interview request features for both applicants and recruiters. Built with **React, Vite, Node.js, Express, MongoDB**, and **Socket.IO**.\n\n---\n\n## Frontend Deployed Link :-https://jobapplyplateform.netlify.app/\n\n- User : can create a account for himself\n- Admin / Recruiter : email: admin@gmail.com password: admin\n\n## Backend Deployed Link :- https://job-interview-sm41.onrender.com\n\n## 🚀 Features\n\n### Applicant Features\n\n- Submit interview requests with live feedback\n- Choose from job titles or enter custom ones\n- Form validation with error messages\n- Responsive and mobile-friendly UI\n\n### Recruiter Features\n\n- Real-time dashboard updates (no refresh needed)\n- Accept interview requests in one click\n- Visual connection status indicators\n\n### Technical Highlights\n\n- WebSocket-powered updates using **Socket.IO**\n- RESTful API built with **Express.js**\n- Database with **MongoDB + Mongoose**\n- Clean and professional UI using plain CSS\n- Responsive breakpoints and animations\n\n---\n\n## 🛠️ Tech Stack\n\n### Frontend\n\n- **React 18** + **Vite**\n- **React Router DOM**\n- **Socket.IO Client**\n- **Plain CSS**\n- **Fetch API**\n- **Lucide React** (optional icons)\n\n### Backend\n\n- **Node.js** + **Express.js**\n- **MongoDB** + **Mongoose**\n- **Socket.IO Server**\n- **CORS \u0026 Dotenv**\n\n---\n\n## 📁 Project Structure\n\n### Frontend (`job-platform-frontend`)\n\n```\nsrc/\n├── components/\n├── pages/\n├── services/\n├── App.jsx\n├── App.css\n└── main.jsx\n```\n\n### Backend (`job-platform-backend`)\n\n```\n.\n├── controllers/\n├── models/\n├── routes/\n├── server.js\n└── .env\n```\n\n---\n\n## ⚙️ Setup Instructions\n\n### 🔹 Prerequisites\n\n- Node.js v16+\n- MongoDB (local or Atlas)\n- npm or yarn\n\n### 🔹 Frontend Setup\n\n```bash\ngit clone \u003cfrontend-repo-url\u003e\ncd job-platform-frontend\nnpm install\nnpm run dev\n```\n\nFrontend runs at: `http://localhost:3000`\n\n### 🔹 Backend Setup\n\n```bash\ngit clone \u003cbackend-repo-url\u003e\ncd job-platform-backend\nnpm install\ncp .env.example .env\n# Edit .env with Mongo URI and Frontend URL\nnpm run dev\n```\n\nBackend runs at: `http://localhost:5000`\n\n---\n\n## 🔌 API \u0026 Socket.IO Integration\n\n### REST API Endpoints\n\n| Method | Endpoint                             | Description                                   |\n| ------ | ------------------------------------ | --------------------------------------------- |\n| `GET`  | `/api/interview-requests`            | Fetch all requests (supports ?status=pending) |\n| `POST` | `/api/interview-requests`            | Submit new interview request                  |\n| `PUT`  | `/api/interview-requests/:id/accept` | Accept an interview request                   |\n| `GET`  | `/api/health`                        | Health check                                  |\n\n### Data Schema\n\n```json\n{\n  \"_id\": \"string\",\n  \"name\": \"string\",\n  \"email\": \"string\",\n  \"jobTitle\": \"string\",\n  \"status\": \"pending | accepted\",\n  \"createdAt\": \"date\"\n}\n```\n\n### Socket.IO Events\n\n| Event                    | Description               |\n| ------------------------ | ------------------------- |\n| `newInterviewRequest`    | Emitted on new submission |\n| `requestAccepted`        | Emitted when accepted     |\n| `connect` / `disconnect` | Socket connection status  |\n\n---\n\n## 🌐 Environment Variables\n\n### Frontend (`.env`)\n\n```env\nVITE_API_BASE_URL=http://localhost:5000\nVITE_SOCKET_URL=http://localhost:5000\n```\n\n### Backend (`.env`)\n\n```env\nMONGODB_URI=mongodb://localhost:27017/job-platform\nPORT=5000\nFRONTEND_URL=http://localhost:3000\n```\n\n---\n\n## 🧪 Testing \u0026 Deployment\n\n### Scripts\n\nFrontend:\n\n```bash\nnpm run dev       # Development server\nnpm run build     # Production build\nnpm run preview   # Preview build\n```\n\nBackend:\n\n```bash\nnpm run dev       # Development server with nodemon\nnpm start         # Production server\n```\n\n### Deployment Options\n\n#### Frontend\n\n- **Vercel**: `vercel`\n- **Netlify**: Drag and drop `dist`\n\n#### Backend\n\n- **Render / Railway / Heroku**\n- Use MongoDB Atlas for cloud DB\n\n---\n\n## 🧰 Troubleshooting\n\n- **CORS or 404 Errors**: Check backend URL \u0026 CORS config\n- **Socket.IO Not Working**: Ensure server emits correct events\n- **Build Errors**: Clear cache and reinstall\n\n---\n\n## 🤝 Contributing\n\n1. Fork the repo\n2. Create a branch: `git checkout -b feature-name`\n3. Commit \u0026 push: `git commit -m \"Add feature\"`\n4. Open a Pull Request\n\n---\n\n## 📄 License\n\nMIT License. See `LICENSE` file.\n\n---\n\n**Built with ❤️ using React, Vite, Express, MongoDB \u0026 Socket.IO**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Franjeetraj444%2Fjob-interview","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Franjeetraj444%2Fjob-interview","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Franjeetraj444%2Fjob-interview/lists"}