# Allergies Management System (LP-1004)
## General Requirements
<p>
In this assignment, you are to create a simple Allergies 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 allergies once logged in.</li>
<li>The main allergy page should only be accessible once authenticated.</li>
<li>Allow user to add new allergy.</li>
<li>Allow user to edit existing allergy detail.</li>
<li>Allow user to delete a allergy.</li>
<li>Allow user to mark a allergy a High-Risk.</li>
<li>High-Risk allergies 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 /allergy endpoint to fetch all allergies.
</li>
<li>Create POST /allergy endpoint to add a new allergy.
</li>
<li>Create PUT /allergy/{allergy_id} to update a allergy.
</li>
<li>Create DELETE /allergy/{allergy_id} to delete a allergy.
</li>
<li>All endpoints need to be accessible only to authenticated users.
</li>
<li>You will have to create a user and allergy table for storing details.
</li>
<li>The mandatory fields for allergies are Name, symptoms, and severity. You can choose all extra fields. (e.g., treatments, notes,…)</li>
<li>Resize the allergy image/photograph to a desirable size for a allergy 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

#### Allergies List

#### Allergy Detail

###### tags: `FullStack` `Challenge1`