Giter Club home page Giter Club logo

boldo-web's Introduction

BOLDO - WEB

Boldo can be found in any Paraguayan household. It is a magic team that can calm all kind of stomache ache.

This is the browser based web application for Boldo - a telemedicine solution for doctors and patients. The browser application is specifically for doctors.

Getting Started

  1. This project has the following dependencies:

    • node.js (v12 or newer)
  2. Install dependencies: npm i

  3. Create a .env file in the project's root folder and add these contents:

    REACT_APP_SENTRY = PUBLIC SENTRY DSN
    
    # ###################### Local ######################
    REACT_APP_SOCKETS_ADDRESS = http://localhost:8000
    REACT_APP_SERVER_ADDRESS = http://localhost:8008
    
  4. npm start - to start the app on localhost:3000

Run with docker

To build the docker image use the following command:

docker build -t boldo-web --build-arg sockets_address=http://localhost:8000 --build-arg app_server=http://localhost:8008 --build-arg app_frontend=http://localhost:3000 .

After that you can test it running the following command:

docker run --rm -it -p 3000:3000 boldo-web

Run in production

To run this project in production, make sure to have the environment variable NODE_ENV set to production.

Contributing

The project is currently under heavy development but contributors are welcome. For bugs or feature requests or eventual contributions, just open an issue. Contribution guidelines will be available shortly.

Authors and License

This project was created as part of the iHub COVID-19 project in collaboration between Penguin Academy and PTI (Parque Tecnológico Itaipu Paraguay).

This project is licensed under AGPL v3

boldo-web's People

Contributors

davidcab avatar dependabot[bot] avatar elias7991 avatar everfgmolinas avatar gabrielmaldo25 avatar ginojunchaya avatar jemaromaster avatar joelepping avatar mrandvx avatar pa1nd avatar rbenitez94 avatar sebasrival avatar srpablino avatar tomasarmoa avatar zommerberg avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

boldo-web's Issues

Add Flash Messages

Add flash messages for success, error and info that can provide user feedback where no form is to validate.

The flash message should appear on the top right and disappear after a short time.

It should also be possible to show multiple messages, they should stack below each other.

This is particularly important for the Call. As there are various things that can go wrong and this is the only location which can show them nicely.

They should be rendered globally inside the App.tsx to keep flash messages appear across pages.

Appointment Room States

Every appointment has a room which handles the "Waiting Room UI" and the "Call".

This room has the following states:

  1. No permission - no appointment with given ID for this doctor
  2. Closed - Before and after the appointment
  3. Waiting Room Open - 15 minutes before appointment until appointment marked as finished
  4. Patient is connecting - Establishing Call
  5. Call - Call in Progress

fix openAppointments Endpoint

The endpoint is not implementing any logic right now.
Also it doesn't deserve to be it's own endpoint. Instead it should be a query param.

It should

  • Fetch data
  • Fetch events from DB
  • Calculate correct status
  • return only relevant ones

WebRTC not freeing resources

There is a number of issues related to the call feature. They are all based in missing cleanups of the WebRTC connection.

To fix this:

Handle page-reload

Problem:

  1. It is too easy to accidentally leave the page during the call as a doctor. Navigation events and page reloads should require a confirmation during the call.

  2. While in a call, on a page reload, the connection should reestablished.

To Implement 1:

We can make use of a confirm() pop-up on page navigation. This should be triggered for native browser navigation as well as the react-navigation plugin.

  1. This seems to be tricky. Might be fixed after the call is cleaned up.

Implement Mute and Turn off Video

Buttons are not implemented currently.

It is not clear how to tackle this issue. It might have todo with the MediaDevice. More research is needed.

Before we tackle this, it seems to be a good idea to cleanup the call.

Also: We should show a visible symbol of muted audio or video on the screen, as those buttons are hidden behind a menu button.

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.