Skip to content
nshamit edited this page Nov 2, 2022 · 40 revisions

Introduction

ELIXIR is a platform designed to address a shortage of medical supplies in hospitals in Sri Lanka caused by the 2022 economic crisis. The platform is operated by a network of volunteers and professionals supporting the Sri Lanka Red Cross to help improve the efficacy of donations. The software that enables this platform is designed and developed by a team of volunteers, managed with the help and guidance of the Lanka Software Foundation (LSF). The software is open source with an ASL 2.0 License. We invite all interested developers to join the community and contribute.

Technologies Used

The software system has an API-driven architecture. The back-end services are implemented using Ballerina open-source programming language.. The APIs are deployed and managed using the WSO2 Choreo platform. The platform security and authentication are based on WSO2 Asgardeo platform. Front-end applications are built using React. The database is MySQL. Vercel is used for hosting and deployment of front-end applications.

Architecture Overview

ELIXIR software platform uses a relational database for data persistence. The database is wrapped in a couple of Ballerina data services. These services are exposed as APIs to the front-end. There are two APIs

  • Admin API
  • Donor API The front-end also consists of two Web-based applications. For donors, there is a Donor Portal. And for the administration of the system, there is an Admin Portal. Both the systems are authenticated with WSO2 Asgardeo authentication. To access the portals, you must have user accounts in the Asgardeo user store. The system administrators need to add you to relevant user groups and authorize your Asgardeo account to access the portals.

The architecture is detailed on the architecture page.

Volunteer Onboarding

Are you a new volunteer? Here are some useful tips and links you can use to familiarize yourself with the project and start contributing right away:

Notes to volunteer team:

* Please check the Volunteer Onboarding Checklist

Communications

Slack channel

Mailing List (copy mailing list on all mails)

Volunteers

Leads:

  • Dinuka (FE/Website)
  • Anjula (FE/Donor Portal)
  • Manu (BE)

Senior Resources

  • Sherazad (onboarding)
  • Arosha
  • Samisa
  • Srinath
  • Sanjiva

List of Volunteers

Repos:

The software platform code is organized into three repos listed below.

Answers for FAQs

  • You don't need to set up the back-end for running and testing the front-end locally. The front-end implementations, by default, are using the cloud-hosted staging backend endpoints.
  • For frontends, You should change sign-in redirection URLs on src/config.json file on both react apps. Change lines 4 and 5 as follows:

"signInRedirectURL": "http://localhost:3000/", "signOutRedirectURL": "http://localhost:3000/",

Production Environment:

Issues:

  • Issues are logged only in the https://github.com/LSFLK/MedicinesforLK/ repo.
  • Newcomers : Please look for the 'good first issue' label, or find an unassigned issue. You will require repo access prior to this. Please reach out to one of the FE/BE leads or onboarding resources listed above in the Volunteers section via Slack to get access. We will need your Github profile name and the email address associated with your Git profile to get started.
  • Volunteers who have contributed for multiple cycles: Please self-assign the issues you wish to help resolve.

Testing Links

If you are new to the project, you may help test the application's portals to start with. This will help you get familiar with the business logic of the application. Following are the staging test links for the two front-end portals.

* For any issues, bugs, enhancements, or suggestions, please create new issues at https://github.com/LSFLK/MedicinesforLK/issues

Application Test Data

The hospital medical supplies needs are uploaded to the system in CSV format. Similarly, supplier quotations are also uploaded to the system in CSV format. The following spreadsheet contains the test data, and the steps below detail how to generate the CSV files.

Steps to obtain the Needs and Supplier Quotation CSV files for testing

  • Needs CSV
    • Enter data into the Raw Needs tab of Spreadsheet for Needs and Supplier Quotations, which automatically updates the Master Needs tab.
    • Download the Master Needs tab as a .csv file and use the upload function of the Needs tab of the admin portal
  • Supply Quotation CSV
    • Down the Quotation Request tab of Spreadsheet for Needs and Supplier Quotation as a .xls file (spreadsheet) and ask the Supplier to fill in the information as appropriate, and return it to the Red Cross team at elixir@redcross.lk.
    • Copy and Paste from the spreadsheet into the Supply Quotation tab of Spreadsheet for Needs and Supplier Quotation.
    • Download the Supply Quotation tab of Spreadsheet for Needs and Supplier Quotation as a .csv file, and use the upload function of the Quotations tab of the admin portal
  • Supplier CSV
    • Download the Supplier tab of Spreadsheet for Needs and Supplier Quotation as a .csv file, and use the upload function of the Suppliers tab of the admin portal.

Login Credentials

To be able to test the front-end portals, you need to be able to log in to the Web applications. For this, you need to have a user account with WSO2 Asgardeo, and the system administrator needs to add you to the application's user groups.

  • To get login credentials, please contact Sherazad Hamit or Manuranga Perera, on the project's Slack channel (see Communications section above).

Scrum Meeting

The team meets everyday at 6.00 pm SL time over Google Meet. Please contact Sherazad Hamit, who plays the Scrum Master/PM role for the project and she will add you to the meeting invite. All scrum meeting notes can be found in the following Google document

High-level internal timelines:

  • MVP release

    • Phase 1: MVP Launch - Oct 19, 2022
    • Support PR efforts of SLRCS & complete minor issues to enhance user experience: Oct 19 - Nov 21,2022
    • Phase 2 Commences: Nov 21, 2022

Documentation

Frontend (React.js)

Backend (Ballerina, WSO2 Choreo)