{"id":18580356,"url":"https://github.com/pradeepsingroul/thelatticeassignment","last_synced_at":"2026-04-07T22:32:17.456Z","repository":{"id":196756106,"uuid":"696868354","full_name":"pradeepsingroul/TheLatticeAssignment","owner":"pradeepsingroul","description":"This is a platform where we can mange the doctors and the patients. features: create doctor | login doctor | Get Doctor by email | Delete doctor by Email | Get all Doctors || create Patient | Login Patient | Get By Email | Delete by Email | Get all Patients | Get the suggestions for patient","archived":false,"fork":false,"pushed_at":"2023-09-27T11:39:47.000Z","size":109,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-16T03:36:28.043Z","etag":null,"topics":["github","hibernate","java","mysql-database","postman","spring-boot","spring-mvc","sql"],"latest_commit_sha":null,"homepage":"","language":"Java","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/pradeepsingroul.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":"2023-09-26T15:27:09.000Z","updated_at":"2023-09-27T11:30:59.000Z","dependencies_parsed_at":"2024-11-06T23:45:14.689Z","dependency_job_id":"d991e7a1-ad51-45e1-95d9-dc9a4f95b652","html_url":"https://github.com/pradeepsingroul/TheLatticeAssignment","commit_stats":null,"previous_names":["pradeepsingroul/thelatticeassignment"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/pradeepsingroul/TheLatticeAssignment","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pradeepsingroul%2FTheLatticeAssignment","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pradeepsingroul%2FTheLatticeAssignment/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pradeepsingroul%2FTheLatticeAssignment/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pradeepsingroul%2FTheLatticeAssignment/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pradeepsingroul","download_url":"https://codeload.github.com/pradeepsingroul/TheLatticeAssignment/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pradeepsingroul%2FTheLatticeAssignment/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31532291,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T16:28:08.000Z","status":"ssl_error","status_checked_at":"2026-04-07T16:28:06.951Z","response_time":105,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["github","hibernate","java","mysql-database","postman","spring-boot","spring-mvc","sql"],"created_at":"2024-11-06T23:45:03.125Z","updated_at":"2026-04-07T22:32:17.439Z","avatar_url":"https://github.com/pradeepsingroul.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Task\n```\nThe Task\n\nWe have a platform where doctors can register their patients through a mobile or web portal. For this to work we need to build backend APIs to achieve task like:\n\nAdding a doctor \u0026 their speciality\nAdding a patient \u0026 it’s symptom\nSuggesting the doctor based on patient’s symptom\n\n# Doctor’s entity\n\nIn our database we will have the doctor's name, city, email, phone number, and speciality.\n\nCity can have 3 values only i.e. Delhi, Noida, Faridabad\nSpeciality can have 4 values i.e. Orthopedic, Gynecology, Dermatology, ENT specialist\nA doctor can be added or removed from the platform.\n\n\n# Patient’s entity\n\nIn our database we will have the patient's name, city, email, phone number, and symptom.\n\nCity can have any value\nSymptom can have the following values only\nArthritis, Back Pain, Tissue injuries (comes under Orthopedic speciality)\nDysmenorrhea (comes under Gynecology speciality)\nSkin infection, skin burn (comes under Dermatology speciality)\nEar pain (comes under ENT speciality)\nA patient can be added or removed from the platform.\n\n\nFollowing fields should have the mentioned validations at the backend:\n\nName (should be at least 3 characters)\nCity (should be at max 20 characters)\nEmail (should be a valid email address)\nPhone number (should be at least 10 number)\n\n# Suggesting Doctors\n\nThere will be another API that will accept patient ID, and suggest the doctors based on the patient location and the symptom.\n\nE.g. 1: If the patient ID that we received as request param in this API, that patient has Arthritis as a symptom then all the doctors of that location who is an Orthopedic will be sent as the response, since Arthritis comes under Orthopedic speciality.\n\n\nImportant Note: This suggesting doctor API  is the evaluating API where the logic needs to be working. The suggested doctor in the API should be based on the symptom of the patient that links to the doctor's speciality. E.g. 2: If a patient has Eye pain then only an ENT specialist doctor should be suggested.\n\nEdge-Case 1: If there isn’t any doctor on that location (i.e. outside Delhi, Noida, Faridabad), the response should be “We are still waiting to expand to your location”\n\nEdge-Case 2: If there isn’t any doctor for that symptom on that location, the response should be “There isn’t any doctor present at your location for your symptom”\n```\n\n# TheLatticeAssignment\nThis is a platform where we can mange the doctors and the patients. features: create doctor | login doctor | Get Doctor by email | Delete doctor by Email | Get all Doctors || create Patient | Login Patient | Get By Email | Delete by Email | Get all Patients | Get the suggestions for patient\n![doctor entity](https://github.com/pradeepsingroul/TheLatticeAssignment/assets/104360276/66a63259-73fe-4936-aa86-c18b030d7704)\n![Patient Entity](https://github.com/pradeepsingroul/TheLatticeAssignment/assets/104360276/94976d1e-0b63-4d23-a2b0-cbf58a8696e3)\n![loginDto](https://github.com/pradeepsingroul/TheLatticeAssignment/assets/104360276/a5f34aa6-b811-4727-ab38-e57d30dc3f5c)\n![DoctorManagement](https://github.com/pradeepsingroul/TheLatticeAssignment/assets/104360276/ba4dd39c-6bcd-4f27-b035-2a1bccfa81fb)\n\n## Features\n- Register Doctor\n- Login Doctor\n- Get Doctor by Email\n- Get All Doctors\n- Delete Doctors By Email\n- Register Patient\n- Login Patient\n- Get Patient by Email\n- Get All Patient\n- Delete Patient By Email\n- Get Suggessions for specific location and symtoms\n\n## Tech Stack\n- Core Java\n- Spring Boot\n- Hibernate\n- MySQL (RDBMS)\n- Sql\n- Maven\n- Swagger UI\n- postman\n- Intellij Idea\n- Giuhub\n## Deployment\n\nTo deploy this project on localhost paste this below code in application.properties file in the \nresources and update according to your database name, username and password of your MySQL database.\n\n```properties\n #changing the server port\nserver.port=8080\n\n#db specific properties\nspring.datasource.url=jdbc:mysql://localhost:3306/database\nspring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver\nspring.datasource.username=username\nspring.datasource.password=password\n\n\n\n#ORM s/w specific properties\nspring.jpa.hibernate.ddl-auto=update\nspring.jpa.show-sql=true\n\nspring.mvc.throw-exception-if-no-handler-found=true\nspring.web.resources.add-mappings=false\n\nspring.mvc.pathmatch.matching-strategy = ANT_PATH_MATCHER\n```\n\n### Swagger UI - Link\n\nUse this link to run it on browser.\n```swagger\nhttp://localhost:8080/swagger-ui/index.html\n```\n\n## Authors\n\n- [Pradeep Singroul (@pradeepsingroul) ](https://github.com/pradeepsingroul)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpradeepsingroul%2Fthelatticeassignment","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpradeepsingroul%2Fthelatticeassignment","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpradeepsingroul%2Fthelatticeassignment/lists"}