Git Product home page Git Product logo

covid-19-jurnal-medical's Introduction

Jurnal Medical

GitHub contributors GitHub last commit License: MPL 2.0

This repo holds the frontend app and the API for Jurnal Medical

Objective: Reduction in the over overloading of emergency phone numbers, quick and easy collection of information from a very large population, constant evaluation of a large population, the offer of support in the management of cases for authorities.

How: Centralization and monitoring of the state of people under auto-isolation with standardized questionnaires completed daily directly in the users’ web application, for their families.

Live:

Production not released

jurnalmedical.ro

Development in progress

frontend - start here ;)

identity server

api


Contributing | Built with | Repos and projects | Deployment | Feedback | License | About Code4Ro

Contributing

This project is built by amazing volunteers and you can be one of them! Here's a list of ways in which you can contribute to this project.

Built With

Programming languages

  • C#
  • Javascript

Platforms

.NET Core 3.1

Frontend framework

Package managers

npm

Database technology & provider

PostgreSQL

Repos and projects

Deployment

Backend

  1. Install Docker for your platform https://docs.docker.com/

  2. Run project

cd backend/src
docker-compose up

Alternatively:

cd backend/src
docker-compose -f docker-compose-dep.yml up
docker-compose -f docker-compose-services.yml -f docker-compose.override.yml up

Is also starting the frontend on port 5002

Frontend

  1. Install dependencies
npm install
  1. Run project
npm start

Feedback

  • Request a new feature on GitHub.
  • Vote for popular feature requests.
  • File a bug in GitHub Issues.
  • Email us with other feedback [email protected]

License

This project is licensed under the MPL 2.0 License - see the LICENSE file for details

About Code4Ro

Started in 2016, Code for Romania is a civic tech NGO, official member of the Code for All network. We have a community of over 500 volunteers (developers, ux/ui, communications, data scientists, graphic designers, devops, it security and more) who work pro-bono for developing digital solutions to solve social problems. #techforsocialgood. If you want to learn more details about our projects visit our site or if you want to talk to one of our staff members, please e-mail us at [email protected].

Last, but not least, we rely on donations to ensure the infrastructure, logistics and management of our community that is widely spread across 11 timezones, coding for social change to make Romania and the world a better place. If you want to support us, you can do it here.

covid-19-jurnal-medical's People

Contributors

abalaci avatar acraileanu avatar adascaliteiradu avatar adrianiftode avatar andorremus avatar andreea-anastasescu avatar aniri avatar bogdanbujdea avatar bvizureanu avatar catileptic avatar ccartas avatar chalx avatar cipick avatar cristihabliuc avatar danielmiu avatar dima000 avatar dragosrobertn avatar idormenco avatar irinel-nistor avatar maloun96 avatar mihaipopescu avatar mmircea16 avatar moonflare avatar paul-ghiran avatar puiu avatar raducstefanescu avatar surdu avatar teodoradima avatar trupci avatar utwo avatar

Stargazers

 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

covid-19-jurnal-medical's Issues

Create different environment for dev vs. prod

We need to be able to configure two separate environments: one for development and one for production. This way we can configure the URL for the back-end differently in-between these two deployments.

[Frontend] Add linting checks

To ensure code quality and consistency, we should add eslint/prettier to the project. At the same time, we could add a Github Action for branch/PRs status checks.

Create Scheduling service

As part of the platform we need to send emails on a daily basis.
We need a scheduling service that will invoke the notification service for sending these emails.

The scheduler needs to send:

  • daily emails to users for assessments in the morning
  • daily emails to a predefined set of email addresses

Create Excel document service

Daily we need to send a document that contains all the flagged cases that were discovered during the day to a set of predefined email addresses.

We need to create an excel document service, that receives a list of answers, in JSON format and generates an excel file.

[Backend] User confirmation email

When a new user is created in the platform the user needs to receive an email with a confirmation link.
The User service needs to

  • generate a unique hash for the newly created user
  • issue a request to the Email service via RabbitMQ that contains the hash, the email of the user

Add family member improvements

As a user I want to be able to add a family member to my account:

  • enhance legatura familiala with all the possbile values - including persoana in grija
  • enhance Varsta to be text entry only accepting numbers as input
  • enhance conditii de sanatate preexistente with a multiple select list (we will provide the elements)
  • Da/Nu in Are anumite dizabilitati should be single select only
  • when choosing Da a text entry should be made visible to insert values
  • reduce the spacing between the question and the possible answers
  • change the button color and size to match the UX

User creates account

The first page that a user navigates to in the website is the Create account page.

Group 416

The user will insert all the information required for creating an account, the form needs to send the data to the backend API. The endpoints will be delivered soon.

Enhance registration process to use the email queue

As part of the solution, we will have an email service that will consume email requests of a queue and send emails.
We need to enhance the registration process to use the RabbitMQ interface (#105 ) to send requests to the email service via the email queue.

Create notification service

Each user needs to receive a daily email that prompts him to login and fill in an assessment for himself and the people in his care.

We need to write a service that daily will pick up the list of users in the platform and generate requests to the Email service for sending the assessment email.

The requests will be sent via RabbitMQ.

Fix docker image for API

on runtime you get this:

{
"StatusCode": 500,
"Message": "Internal Server Error. Could not find file '/app/StamAcasa.Api.XML'."
}

[Frontend] Setup footer

Use the footer component from https://github.com/code4romania/taskforce-fe-components

Use the logo from https://github.com/code4romania/covid-assets

The links should be:

Wireframes: https://www.figma.com/file/rdg8gZtSWNYaVtupMtdhST/CoVid---Stam-Acasa?node-id=4%3A0

Assessment answers service

When a user completes an assessment for himself or his family members, a JSON is sent from the frontend to the backend. The assessment must expose an endpoint where this information is received.
The service will write this JSON to disk so that it can be indexed by Elasticsearch.
The service will also write the data redundantly in an SQL database in order to be able to serve the history of assessments per user.

Login is not working correctly

Login placeholder on frontpage is not working as expected - not redirecting to the login form.
This issue replicates both locally and on remote environment.

Fix Docker build for frontend

Currently the FE CI is failing with the following error:

 invalid argument "/stamacasa:1c4d3971fff8332e95d214edb0826c7ad03c245a" for "-t, --tag" flag: invalid reference format
See 'docker build --help'.
##[error]Process completed with exit code 125.

Create homepage for the website

When a user is not logged in the platform, they will visit the homepage of the website.
We will provide information about the content.

RabbitMQ interface

As part of the processing, services will interact with the RabbitMQ queue:

  • the user service will produce email requests to the email service via RabbitMQ queue
  • the notification service will produce email requests to the email service via RabbitMQ queue
  • the email service will consume requests off the queue and send emails

We need a wrapper object over the RabbitMQ client that will

  • read the config for the hostname and all the other parameters required to get a connection to the queue
  • will keep a connection pool
  • will provide interface for consuming from/producing to a queue

Enhance GHA pipelines to update ECS environments

Currently, the GHA pipelines publish a new image on Dockerhub.
We have defined ECS services in AWS that use these images.
We need to enhance GHA pipelines so that when we publish a new image, the ECS environments are updated with the new images.

Personal assesment form improvements

The following improvements are needed for assessment form:

  • Get form data from API
  • Create authenticated routes (the user can see data only if it is logged in)

This is a continuation of #18

Create homepage after user login

After a user logs in the platform, he will have access to the homepage of his account.
The page will look like in the UX:
Group 416 copy 2

Until the user fills in his account details, the contents of the page will be:

  • Contul meu - will contain the component for creating the user profile, contained in issue #17
  • Adauga familia in cont - the form in issue #19
  • Completeaza formular - the form in issue #20
    To determine if the user has filled in his details, we query for /api/Profile. If we receive 204 No Content then the user has not completed it's profile.

After the user has filled in his profile and his initial assessment, for himself and family members, the contents of the page will be:

  • Contul meu - the historic restults component #54
  • Adauga familia in cont - same as above
  • Completeaza formular - same as above

Create email service

Part of the platform, we need to send emails in 2 situations:

  • when an user creates an account
  • when a daily notification needs to be sent to the user to complete his assessment
  • when sending the daily notification to institutions

We need to have an email service that will use a SMTP server, that will be part of the deployment.
The email service needs to be configurable (details need to be in appsettings.json)
The email service will have to use 2 templates, for the 2 situations detailed earlier.

The email service consumes requests via rabbitMQ.
A request will contain the following information:

  • the email address where we will be sending the email
  • a key-value list with the tokens that need to be merged with the email template
  • a document that will be sent as attachment in the email, if this is the case

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.