# Practitioner Profile Management (LP-1001) ## General Requirements <p> In this assignment, you are to create a simple Practitioner Profile Management application. You can make use of Bootstrap if you want quick ready-made templates. You are free to make any UI/UX decision. </p> <ul> <li>The application should have a login/signup page.</li> <li>Show list of practitioners once logged in.</li> <li>The main practitioner page should only be accessible once authenticated.</li> <li>Allow user to add new practitioner.</li> <li>Allow user to edit existing practitioner detail.</li> <li>Allow user to delete a practitioner.</li> <li>Allow user to mark a practitioner as ICU Specialist.</li> <li>ICU Specialist practitioners should always be listed at the top in alphabetical order.</li> </ul> ## Application Requirements <ol> <li>Create a suitable schema with the database of your choice.</li> <li>Be RESTful.</li> <li>Have proper access control.</li> <li>Write Unit tests.</li> <li>Do your best to implement and follow best practices, conventions, and standards under all aspects.</li> </ol> ## API Requirements <ol> <li>Create POST /signup endpoint for user signup. The endpoint should take email and password as payload.</li> <li>Create POST /signin endpoint for user signin. The endpoint should take the same payload as /signup. </li> <li>Create a token-based authentication mechanism.</li> <li>Create GET /practitioner endpoint to fetch all practitioners. </li> <li>Create POST /practitioner endpoint to add a new practitioner. </li> <li>Create PUT /practitioner/{practitioner_id} to update a practitioner. </li> <li>Create DELETE /practitioner/{practitioner_id} to delete a practitioner. </li> <li>All endpoints need to be accessible only to authenticated users. </li> <li>You will have to create a user and practitioner table for storing details. </li> <li>The mandatory fields for a practitioner are Full Name, Email, Contact, DOB, Working Days, Start Time and End Time. You can choose all extra fields. (e.g., address, gender, notes…)</li> <li>Resize the practitioner image/photograph to a desirable size for a practitioner and upload the photographs to any free cloud storage service of your choice. </li> </ol> ## Your submission must include <ol> <li>Application should be properly documented. Make sure to add all the information necesary to run the project. <ul> <li>Short Description of project.</li> <li>Frontend application screenshots.</li> <li>Techstack used in application</li> <li>Setup process.</li> </ul> </li> <li>Unit tests and test coverage report</li> <li>API Documentation (add to readMe.md)</li> <li>Postman Collection (add the public link to readMe.md)</li> </ol> <hr /> ## Good to have <ol> <li>Capability to add allergies.</li> <li>Time-bound token authentication. The access token must expire after a few minutes, regenerated using a refresh token.</li> <li>Database connection abstraction to support more than one database connections.</li> </ol> <hr /> ### References For reference you can use following these images. But use your own judgement for the UI/UX and showcase your creativity. Our expectation is a proper UI/UX for Login, Registration, List and Form. #### Login / Registeration Page ![](https://i.imgur.com/Woic9aJ.jpg) #### Practitioners List ![](https://i.imgur.com/A8s4i3n.png) #### Practitioner Detail ![](https://i.imgur.com/ej5pbpv.png) ###### tags: `FullStack` `Challenge1`