COVID - 19 Mobile App Programming Test

COVID-19 is spreading like a wild fire in the world. And the InfoWarrior is deeply concerned to know the statistics of all the patients that have contacted with COVID-19. He commands his administrator to develop a software which can capture all the COVID-19 patient data. He wants this to be developed very quickly so that he can keep track of all the covid patients by himself.

He wants the following to be captured as a part of patient data

Following is expected:

  1. Splash Screen - Animate a logo in the center of the screen. The screen to remain for 3 seconds. Kindly mention your name, email id and phone number at the bottom of splash screen in readable font size.
  2. Dashboard - The dashboard should display
  3. Listing of all patients (sortable from "oldest to latest" and from "latest to oldest") records.
  4. Filterable by
  5. It must display total number of patients when the filter/sort is applied/not-applied.
  6. Upon clicking of each record, the user should be able to edit the record and save it in the database. (While editing the roll number should not get edited)
  7. The data should be created, fetched, updated using the API provided below.

Evaluation Criteria

  1. Project structure
  2. Programming Logic
  3. Components used to design the solution
  4. Ease of use
  5. Intuitiveness , Interactivity & User Navigation
  6. Security
  7. Modularity
  8. Conciseness and coding standards
  9. Comments will be good to have
  10. All responses from the API are delayed by few seconds to emulate slow network.

Deliverables: Source code & compiled APK for Android. Kindly share the same through a link via Dropbox / Google Cloud / etc...

API INFORMATION

basepath - https://jaicrm.orderbookings.com/patients

  1. To Get all the records for given unique_id
  2. GET /{unique_id}

    (use unique_id as your phone number)
    Response Body:
    {data: [
    {"_id":"5eebb56fe96953137432a70e", "name":"David", "city":"Delhi", "age":9, "status":"A", "phone":"5", "__v":0},
    {"_id":"5eebb56fe96953137432a70f", "name":"Alan", "city":"Delhi", "age":19, "status":"A", "phone":"5", "__v":0}
    ]} // Contains Array of patient Objects

  3. To add a new patient record
  4. POST /{unique_id}/add

    (use unique_id as your phone number)
    Request Body:
    {
    "name": "David",
    "city": "Delhi",
    "age": 9,
    "status": "A"
    }

    Response Body:
    {"data":{
    "_id":"5eebb56fe96953137432a70e",
    "name":"Janak",
    "city":"Delhi",
    "age":9,
    "status":"R",
    "phone":"5",
    "__v":0
    }}

  5. To update an existing record with record_id (it is the _id field present in records that are created)
  6. PUT /{unique_id}/edit/{record_id}

    (use unique_id as your phone number)
    Request Body:
    {
    "name": "David",
    "city": "Delhi",
    "age": 9,
    "status": "A"
    }

    Response Body:
    {"data":{
    "_id":"5eebb56fe96953137432a70e",
    "name":"Janak",
    "city":"Delhi",
    "age":9,
    "status":"R",
    "phone":"5",
    "__v":0
    }}

  7. To remove all the records, used for clearing the data in order to reset the database
  8. DELETE /{unique_id}

    (use unique_id as your phone number)
    Response Body:
    {"data": "done"}