-
Notifications
You must be signed in to change notification settings - Fork 37
Home
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.
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.
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.
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:
* Please check the Volunteer Onboarding Checklist
- https://opensourcelk.slack.com/archives/C03Q5T39L4C
- #lsfmedicines-redcross
- Channel ID: C03Q5T39L4C
Leads:
- Dinuka (FE/Website)
- Anjula (FE/Donor Portal)
- Manu (BE)
Senior Resources
- Sherazad (onboarding)
- Arosha
- Samisa
- Srinath
- Sanjiva
The software platform code is organized into three repos listed below.
-
https://github.com/LSFLK/MedicinesforLK/
- Important Note: We log all front-end and back-end issues/bugs ONLY in this repo. This is done to help ensure smooth communication and collaboration within the team.
- This repo has the code for the front-end applications
- Both the Donor Portal and Admin Portal implementations reside here.
- Please have a look at the repo README for more details.
-
https://github.com/LSFLK/MedicinesforLK-DonorAPI/
- This repo consists of the code for the back-end Donor API
-
https://github.com/LSFLK/MedicinesforLK-AdminAPI/
- This repo consists of the code for the back-end Admin API
- 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/",
- Admin Portal: https://admin.elixir.redcross.lk/
- Donor Portal: https://elixir.redcross.lk/
- 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.
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.
- Donor Portal: https://donor-portal-git-development-medicinesfor-lk.vercel.app/
- Admin Portal: https://admin-portal-git-development-medicinesfor-lk.vercel.app/
- Username: nipunamarcus2@gmail.com
- Password: liveSession10
* For any issues, bugs, enhancements, or suggestions, please create new issues at https://github.com/LSFLK/MedicinesforLK/issues
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.
-
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.
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).
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
-
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
- API Documentatation
- Database Schema
- Initial Technical Diagrams > Project Shakthi (no longer updated, used).