{"id":29107671,"url":"https://github.com/developersajadur/doctor-tech-job-task","last_synced_at":"2026-04-15T05:31:16.031Z","repository":{"id":301776581,"uuid":"1009787290","full_name":"developersajadur/Doctor-Tech-Job-Task","owner":"developersajadur","description":"Doctor Tech is a full-stack web application for managing doctor appointments, built with Node.js, Express, MongoDB, and TypeScript. It allows patients to book appointments, doctors to manage their schedules, and admins to oversee the entire platform.","archived":false,"fork":false,"pushed_at":"2025-06-29T19:58:23.000Z","size":142,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-11T02:09:39.179Z","etag":null,"topics":["expressjs","javascript","jwt","mongodb","mongoose","nodejs","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/developersajadur.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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-06-27T17:57:18.000Z","updated_at":"2025-06-29T19:58:26.000Z","dependencies_parsed_at":"2025-06-28T19:49:53.210Z","dependency_job_id":null,"html_url":"https://github.com/developersajadur/Doctor-Tech-Job-Task","commit_stats":null,"previous_names":["developersajadur/doctor-tech-job-task"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/developersajadur/Doctor-Tech-Job-Task","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/developersajadur%2FDoctor-Tech-Job-Task","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/developersajadur%2FDoctor-Tech-Job-Task/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/developersajadur%2FDoctor-Tech-Job-Task/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/developersajadur%2FDoctor-Tech-Job-Task/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/developersajadur","download_url":"https://codeload.github.com/developersajadur/Doctor-Tech-Job-Task/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/developersajadur%2FDoctor-Tech-Job-Task/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31828530,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-14T18:05:02.291Z","status":"online","status_checked_at":"2026-04-15T02:00:06.175Z","response_time":63,"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":["expressjs","javascript","jwt","mongodb","mongoose","nodejs","typescript"],"created_at":"2025-06-29T05:07:23.179Z","updated_at":"2026-04-15T05:31:16.006Z","avatar_url":"https://github.com/developersajadur.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🩺 Doctor Tech — Online Doctor Appointment Platform\r\n\r\nDoctor Tech is a full-stack web application for managing doctor appointments, built with Node.js, Express, MongoDB, and TypeScript. It allows patients to book appointments, doctors to manage their schedules, and admins to oversee the entire platform.\r\n\r\n## 🔗 Links\r\n- 🌐 Live Site: Sorry, I can't provide for security issues\r\n- 📂 GitHub Repository: [https://github.com/yourusername/doctor-tech]\r\n- 📬 Postman Collection: [https://github.com/developersajadur/Doctor-Tech-Job-Task/blob/main/doctor_tech_postman_collection]\r\n\r\n## 📦 Features\r\n- 👨‍⚕️ Doctor registration, services, and time-slot availability\r\n- 🧑‍🦱 Patient registration and appointment booking\r\n- 📅 Calendar-based availability filtering\r\n- 📧 Email notifications on appointment status change\r\n- 🛡️ Role-based access (Admin, Doctor, Patient)\r\n- 📊 Admin dashboard with stats\r\n- 🔒 Secure authentication \u0026 authorization\r\n- 🧪 Postman Collection for testing\r\n\r\n## 🚀 Tech Stack\r\n**Backend:** Node.js, Express, TypeScript  \r\n**Database:** MongoDB with Mongoose  \r\n**Authentication:** JWT  \r\n**Email:** Nodemailer + Handlebars Templates  \r\n**Tools:** ESLint, Prettier, dotenv, Husky  \r\n\r\n## 🛠️ Local Setup\r\n\r\n### 1. Clone the Repository\r\n```bash\r\nhttps://github.com/developersajadur/Doctor-Tech-Job-Task\r\ncd Doctor-Tech-Job-Task\r\n```\r\n\r\n### 2. Install Dependencies\r\n```bash\r\nnpm install\r\n```\r\n### 3. Configure Environment\r\n#### Create .env file:\r\n```bash\r\n# Environment\r\nNODE_ENV=development\r\nPORT=5000\r\n\r\n# MongoDB Connection\r\nDATABASE_URL=your_mongodb_connection_string\r\n\r\n# Bcrypt Salt\r\nSALT_ROUNDS=12\r\n\r\n# JWT Config\r\nJWT_TOKEN_SECRET=your_jwt_secret_key\r\nJWT_TOKEN_EXPIRES_IN=30d\r\n\r\n# Default Admin Credentials\r\nDEFAULT_ADMIN_EMAIL=admin@gmail.com\r\nDEFAULT_ADMIN_PASSWORD=Admin@123\r\nDEFAULT_ADMIN_PHONE=01000000000\r\n\r\n# Email SMTP Credentials (Gmail)\r\nEMAIL=your_email@gmail.com\r\nAPP_PASSWORD=your_app_specific_password\r\n\r\n```\r\n\r\n### 4. Start Development Server\r\n```bash\r\nnpm run dev\r\n```\r\n\r\n### 🧪 API Testing\r\nImport the Postman collection and set environment variables:\r\n#### BASE_URL:\r\n```bash\r\nhttp://localhost:5000/api/v1/\r\n```\r\n\r\n### 📝 Sample Requests\r\n\r\n### 🌱 Admin Setup\r\nSeed default admin:\r\nMethod: POST\r\n```bash\r\n/seed-admin?secret=your_seed_secret\r\n```\r\n\r\n#### Register Doctor\r\nContent-Type: application/json\r\nMethod: POST\r\n```bash\r\n/auth/register-doctor\r\n```\r\n\r\n```bash\r\n{\r\n  \"name\": \"Doctor pro\",\r\n  \"email\": \"doctorpro@gmail.com\",\r\n  \"phone\": \"01712345675\",\r\n  \"password\": \"DoctorPro@123\",\r\n  \"specialization\": \"Cardiology\",\r\n  \"hospitalName\": \"City Hospital\",\r\n  \"hospitalFloor\": \"3rd Floor\"\r\n}\r\n```\r\n\r\n#### Register Patient\r\nContent-Type: application/json\r\nMethod: POST\r\n```bash\r\n/auth/register-patient\r\n```\r\n\r\n```bash\r\n{\r\n  \"name\": \"Patient pro\",\r\n  \"email\": \"patientpro@gmail.com\",\r\n  \"phone\": \"01898765462\",\r\n  \"password\": \"PatientPro@123\",\r\n  \"age\": 18,\r\n  \"gender\": \"male\"\r\n}\r\n```\r\n\r\n#### Create Service\r\nContent-Type: application/json\r\nAuthorization: token (Doctor Token)\r\nMethod: POST\r\n```bash\r\n/doctor/services\r\n```\r\n\r\n```bash\r\n{\r\n  \"title\": \"Diabetes Consultation\",\r\n  \"description\": \"Consultation for diabetes treatment and management.\",\r\n  \"price\": 1500,\r\n  \"duration\": 30\r\n}\r\n```\r\n\r\n### Set Availability\r\nContent-Type: application/json\r\nAuthorization: token (Doctor Token)\r\nMethod: POST\r\n```bash\r\n/availability/create-availability\r\n```\r\n\r\n```bash\r\n{\r\n  \"serviceId\": \"685f1a9d3a56063a2f956f3a\",\r\n  \"day\": \"Wednesday\",\r\n  \"timeSlots\": [\r\n    { \"startTime\": \"10:00\", \"endTime\": \"12:00\" },\r\n    { \"startTime\": \"16:00\", \"endTime\": \"18:00\" }\r\n  ]\r\n}\r\n```\r\n\r\n### Book A Appointment\r\nContent-Type: application/json\r\nAuthorization: token (Patient Token)\r\nMethod: POST\r\n```bash\r\n/appointments\r\n```\r\n\r\n```bash\r\n{\r\n  \"doctorId\": \"685f0c018c5f018b440b1615\",\r\n  \"serviceId\": \"685f1a9d3a56063a2f956f3a\",\r\n  \"selectedDate\": \"2025-07-06\",\r\n  \"timeSlotId\": \"685fffddfc319a0f427f54ae\"\r\n}\r\n```\r\n\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevelopersajadur%2Fdoctor-tech-job-task","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdevelopersajadur%2Fdoctor-tech-job-task","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevelopersajadur%2Fdoctor-tech-job-task/lists"}