Giter Site home page Giter Site logo

coronasafe / care_fe Goto Github PK

View Code? Open in Web Editor NEW
191.0 16.0 352.0 37.24 MB

Care is a Digital Public Good enabling TeleICU & Decentralised Administration of Healthcare Capacity across States.

Home Page: https://care.ohc.network

License: MIT License

HTML 0.08% TypeScript 88.70% JavaScript 0.63% CSS 1.08% Dockerfile 0.02% ReScript 9.30% Shell 0.02% MDX 0.17%
covid-19 public-goods digital-public-goods sustainable-development-goals

care_fe's Introduction

CARE Logo

Our goal is to continuously improve the quality and accessibility of public healthcare services using digital tools.

Auto deployed to care.ohc.network for develop branch. All pull requests have preview builds powered by Netlify.

Storybook Quality Gate Status Code scanning - action OSSAR Cypress Tests Staging Release Production Release Codacy Badge CircleCI Maintainability

Getting started

  • ๐Ÿ’ฌ Comment on the issue if you are willing to take it up, and link the pull request with the issue.
  • ๐Ÿท๏ธ Tag @coronasafe/code-reviewers for faster resolution.
  • ๐Ÿ“ธ Attach screenshots in the pull requests showing the changes made in the UI.

Install the required dependencies

npm install

๐Ÿƒ Run the app in development mode

npm run dev

Once the development server has started, open localhost:4000 in your browser. The page will be automatically reloaded when you make edits and save. You will also see any lint errors in the console.

๐Ÿ”‘ Staging API Credentials

Authenticate to staging API with any of the following credentials

- username: dev-districtadmin
  password: Coronasafe@123
  role: District Admin

- username: staffdev
  password: Coronasafe@123
  role: Nurse

- username: doctordev
  password: Coronasafe@123
  role: Doctor

Contributing to CARE

  • Create a branch with branch name of the format issues/{issue#}/{short-name} (example issues/7001/edit-prescriptions) from the latest develop branch when starting to work on an issue.
  • Once the changes are pushed to the branch, make a pull request with a meaningful title (example: "๐Ÿ’Š Adds support for editing prescriptions" #6369)
  • Ensure the issue number is mentioned in the PR with a closing tag by following the PR body template. (Refer: Linking a pull request to an issue)
  • Once the code review is done, the PR will be marked with a "Needs Testing" label where it'll be queued for QA testing.
  • Once tested, the PR would be marked with a "Tested" label and would be queued for merge.

Testing

To ensure the quality of our pull requests, we use a variety of tools:

  • Automated E2E Testing: We use Cypress for end-to-end testing to automatically verify the functionality and performance of our code.
  • Manual Real Device Testing: We use BrowserStack to manually test our code on real devices, ensuring compatibility and functionality across different platforms and browsers.

๐Ÿงช Run cypress tests

To run cypress tests locally, you'll need to setup the backend to run locally and load dummy data required for cypress to the database. See docs.

Once backend is running locally, you'll have to ensure your local front-end is connected to local backend, by setting the CARE_API env.

#.env
CARE_API=http://127.0.0.1:9000

Once done, start the development server by running

npm run dev

Once development server is running, then run the cypress tests in either of the ways described below.

npm run cypress:run        # To run all tests in headless mode.
npm run cypress:run:gui    # To run all tests in headed mode.
npm run cypress:open       # To debug and run tests individually.
  • Failed test screenshots are saved in cypress/screenshots
  • All test videos are saved in cypress/videos

๐Ÿ“– Documentations

๐Ÿš€ Production

Build the app for production

npm run build

Builds the app for production to the build folder. It correctly bundles React in production mode and optimizes the build for the best performance.

Start a production http-server

npm run preview

Starts a production http-server in local to run the project with Service worker. The build is minified and the filenames include the hashes.

๐Ÿš€ Your app is ready to be deployed!

care_fe's People

Contributors

aeswibon avatar apurva-nagar avatar arpancodes avatar ashesh3 avatar ashrafmd-1 avatar bodhish avatar bodhisha avatar dependabot[bot] avatar developedbysj avatar divyagar avatar gigincg avatar gokulramghv avatar khavinshankar avatar mathew-alex avatar mrrobz avatar nihal467 avatar patelaryan7751 avatar peeyush14goyal avatar pranshu1902 avatar puvikaran avatar rithviknishad avatar sainak avatar sam9111 avatar sandeepthomas avatar sandra3657 avatar shaileshaanand avatar shrihari689 avatar skks1212 avatar smartclash avatar tomahawk-pilot avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

care_fe's Issues

Patient Data Entry

backend issue coronasafe/care#80
in frontend, the patient name field should be read-only. and must populate a unique uid like smart-puppy or similar

Deadline is tonight in staging and production by tommorow morning.

Hospital Admin View

  • Dashboard to see there own added hospitals

  • ability to add new hospitals

  • add and edit bed capacity

  • add and edit doctor capacity

Hospital Admin should only have access to the Hospitals he/she create.
Some of the sub forms are already created but need to integrated based on the per user scheme.
Apis are avaliable at https://dev.coronasafe.in/swagger

dashboard

create a dashboard with the patient count, people in observation,
positive cases, negative cases, number of tests done, etc

Show error messages in the notfication.

Parse and show error messages from the notification response.

  1. 400ย Bad Request - show fields
  2. Other 4xx errors - Show the message from response (detail key in response)
  3. 5xx errors - Show static error message

400 Bad Request format

{
  field1: [
      "error msg 1",
      "error msg 2"
   ],
  field2: [
    "error 3"
   ]
}

Other 4xx error response format

{
    "detail": "Given token not valid for any token type",
    "code": "token_not_valid",
    "messages": [{
        "token_class": "AccessToken",
        "token_type": "access",
        "message": "Token is invalid or expired"
    }]
}

Add Pnotiy to manage notification and replace all usages of AppMessage with pnotify.
https://sciactive.com/pnotify/

Handle all errors in fireRequest.tsx

Add logo on loading screen

The current loading spinner looks so plain.
It will be great if we can add a logo on top of it with minimum styling so that it looks good.

Refresh token every 5 minutes

We've planned the below auth changes:

  • JWT timeout -> 10 minutes
  • Refresh token -> 30 mins

So make sure the the token is refreshed well ahead, say, in every 5 minutes

@vigneshhari

Add a form to onboard ambulance

Vehicle Details

  • Vehicle Registration Number: string (validation: A-Z and 0-9 (Alpha numeric only))
  • Insurance Valid till: date (validation- year should one of 2020 / 2021 / 2022)
  • Name of Owner: string
  • Cell Number of Owner: number (10 digit mobile number)
  • Smart Phone: bool
  • Primary District Served: District.id
  • Secondary District Served: District.id
  • Third District Served: District.id
  • Oxygen Yes / No
  • Ventilator Yes / No
  • Suction Machine Yes / No
  • Defibrillator Yes / No

Driver Details

Name of Driver 1
Cell Number of Driver 1
Smart Phone Yes / No

Driver Details

Name of Driver 2
Cell Number of Driver 2
Smart Phone Yes / No

Related Backend Issue coronasafe/care#63

Error in sample creation form

Status: 400

{consultation: ["Invalid pk "2" - object does not exist."]}

I was trying to add a sample to a patient.

When you are fixing it.
Default status to Request submitted (a sample creation will always start with a request submission)

Hide result it doesn't make sense to ask result before taking a sample.

remove/fix sample_number it looks like that field is looking for a consultation_id (This is where the API is erroring out)

Update ambulance form

GoK wants to capture two More information:

Add a question in ambulance field which can

  1. I / we will provide services free of any charge.

  2. I / we will require fees for providing service @ Rs. x.xx / KM

(Kindly note CCC / GoK / CCC is not committing any fee payment at this time; this is only for information collection at this time)

fixes for hospital view

Bugs in create facility

  • add hospital should not clear local state. (if i hit cancel, i should not go to loading)
  • Current utilization should not exceed Total capacity
  • Add bed type should go on loops. / show a form to all 4 bed types and send request.
  • Add doctor types should also should show a list / do loops
  • Latitude and lang should have a picker / instruction to add latitude and lang
  • Should not allow adding same bed type again (its safer to show all 4 bed types and ask for capacity and utilisation) (edited)

Add a confirmation message in Ambulance Enrollment Page

โ€œI / We confirm and agree that the Ambulances enrolled in the Private Voluntary Online Ambulance Network by filling this online form will work under instruction and direction of the State Mission Director, National Health Mission, Kerala or officers / teams duly authorised by the State Mission Director, National Health Mission, Kerala."

Avoid full page reload for LSG data

Currently we are switching to fulll page reload for loading district and other data.
Lets have loading icon on the picker with a save disabled insted of a full page reload

Also need to correctly set the state / district / local body on patient edit.

Patient Form

Generate a unique id label instead of a text field for the patient name ..
also after submit a dialogue box showing the id and asking them to note it down as hard copy.
Cyber security feature

Create a sigin up for corona care centers

route /join

This should be a copy of our facility onboard form with few changes.

  • Type - [educational institution, hotel, hostel, lodge]

The join page should have details on Guidelines for bed spacing, etc.

Ambulance Data View

  • district wise count as cards

  • view to select an ambulance from a list filtered district wise.
    - [ ] pagination and search

  • ambulance detail view with details

Create dashboard for facility admin

The facility admin should be able to see their capacity, list capacity and update capacity.

The UI should also add an option to capture the geo coordinates for a hospital.

(port the existing and update design)

Low priority

No build folder

I've successfully built the development environment , however 'npm run build' is not generating any build folder

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.