{"id":29826659,"url":"https://github.com/rupeshrb/entnt-dental-center","last_synced_at":"2025-07-29T05:11:35.982Z","repository":{"id":302513019,"uuid":"1012729081","full_name":"rupeshrb/Entnt-Dental-Center","owner":"rupeshrb","description":"Frontend Developer (React) - Dental Center Management, This assignment is frontend-only and must simulate all data using localStorage, No backend services or external APIs are allowed.","archived":false,"fork":false,"pushed_at":"2025-07-02T20:07:27.000Z","size":0,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-02T20:19:58.338Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://entnt-dental-center-alpha.vercel.app","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/rupeshrb.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-07-02T19:37:42.000Z","updated_at":"2025-07-02T20:07:31.000Z","dependencies_parsed_at":"2025-07-02T20:20:00.571Z","dependency_job_id":"92bd1c56-1ae4-4ad6-a230-784e565345af","html_url":"https://github.com/rupeshrb/Entnt-Dental-Center","commit_stats":null,"previous_names":["rupeshrb/entnt-dental-center"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/rupeshrb/Entnt-Dental-Center","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rupeshrb%2FEntnt-Dental-Center","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rupeshrb%2FEntnt-Dental-Center/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rupeshrb%2FEntnt-Dental-Center/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rupeshrb%2FEntnt-Dental-Center/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rupeshrb","download_url":"https://codeload.github.com/rupeshrb/Entnt-Dental-Center/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rupeshrb%2FEntnt-Dental-Center/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267633359,"owners_count":24118756,"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-07-29T02:00:12.549Z","response_time":2574,"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":[],"created_at":"2025-07-29T05:11:32.260Z","updated_at":"2025-07-29T05:11:35.974Z","avatar_url":"https://github.com/rupeshrb.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# 🦷 ENTNT Dental Center - Frontend Assignment\n\nA responsive, frontend-only Dental Center Management System built with React. This project fulfills the requirements of the ENTNT Technical Assignment and includes Admin and Patient portals with full functionality and modern UI/UX.\n\n\u003e ✅ **Live on Vercel:** [https://entnt-dental-center-eta.vercel.app](https://entnt-dental-center-eta.vercel.app)\n\n---\n\n## 🚀 Quick Start\n\n### 📋 Prerequisites\n\n- Node.js (v14 or higher)\n- npm or yarn\n\n### ⚙️ Installation\n\n```bash\n# 1. Clone the repository\ngit clone https://github.com/rupeshrb/Entnt-Dental-Center.git\n\n# 2. Navigate into the project directory\ncd Entnt-Dental-Center\n\n# 3. Install dependencies\nnpm install\n# or\nyarn install\n\n# 4. Start the development server\nnpm start\n# or\nyarn start\n```\n🔐 Demo Credentials\n👨‍⚕️ Admin Login\nEmail: admin@entnt.in\n\nPassword: admin123\n\n👤 Patient Login\nEmail: john@entnt.in\n\nPassword: patient123\n\n🧠 Features\n🔒 Authentication \u0026 Access Control\n-Role-based (Admin \u0026 Patient)\n-Simulated login using localStorage\n-Protected routes with context-based auth\n\n\n\n👥 Admin Portal\n-Patient CRUD (Add/Edit/Delete)\n-Appointment lifecycle management\n-Calendar integration\n-Revenue \u0026 KPI dashboard\n-File uploads (base64) with preview\n\n\n\n🧾 Patient Portal\n-View personal profile\n-See upcoming \u0026 past appointments\n-Download attached files\n-Fully responsive UI\n\n\n\n🛠 Architecture\n📦 Tech Stack\n-Tool\tPurpose\n-React 18\tFrontend Framework\n-React Router\tNavigation\n-Context API\tGlobal state management\n-Tailwind CSS\tResponsive utility-first styling\n-Lucide React\tIcon library\n-localStorage\tData persistence (no backend)\n\n\n❗ Known Issues\n-No actual backend or API (by design of assignment)\n-Authentication is simulated (no real user verification)\n-No form-level validation libraries used\n-Large component files could be refactored into smaller ones\n\n\n\n💡 Technical Decisions\n-Context API was used over Redux for simpler state sharing between auth and UI\n-localStorage was used for persisting patient/appointment/file data\n-Base64 encoding was chosen for handling file uploads in a frontend-only environment\n-Calendar view was built using native JS Date instead of external libraries\n-Tailwind CSS helped achieve fast, responsive, and mobile-first UI development\n\n\u003cbr\u003e\nOutput :-\n\u003cbr\u003e\n\u003cdiv\u003e\n  \u003cimg src=\"images/1.png\" alt=\"1\" width=\"200\"/\u003e\n  \u003cimg src=\"images/2.png\" alt=\"2\" width=\"200\"/\u003e\n  \u003cimg src=\"images/3.png\" alt=\"3\" width=\"200\"/\u003e\n  \n  \u003cimg src=\"images/4.png\" alt=\"4\" width=\"200\"/\u003e\n  \u003cimg src=\"images/5.png\" alt=\"5\" width=\"200\"/\u003e\n  \u003cimg src=\"images/6.png\" alt=\"6\" width=\"200\"/\u003e\n\n  \u003cimg src=\"images/7.png\" alt=\"7\" width=\"200\"/\u003e\n  \u003cimg src=\"images/8.png\" alt=\"8\" width=\"200\"/\u003e\n  \u003cimg src=\"images/9.png\" alt=\"9\" width=\"200\"/\u003e\n\n  \u003cimg src=\"images/10.png\" alt=\"10\" width=\"200\"/\u003e\n  \u003cimg src=\"images/11.png\" alt=\"11\" width=\"200\"/\u003e\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frupeshrb%2Fentnt-dental-center","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frupeshrb%2Fentnt-dental-center","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frupeshrb%2Fentnt-dental-center/lists"}