The inspiration for UAWelcome came as a response to learning about what was happening in the Ukraine in February 2022. Early February, I had another idea for the TigerGraph hackathon, but when the news hit, I was absolutely heartbroken. I knew I had to do something to help. Desperately searching for organizations to donate for and monitoring social media posts asking for help, I felt unable to make a significant impact.
That’s when I met Kateryna, who was helping refugees through her personal connections and just started to put together a website UAWelcome.org. She already had all the expertise in community management, so I joined her on the IT side. We decided to focus on helping refugees entering the US to start a new life - find a place to live, help with paperwork, school for kids, etc. From the beginning, it was obvious that many people want to help but don't even know where to start. Also, they have other obligations and limitations, so we had to come up with a framework to carefully consolidate and coordinate available resources.
The whole operation could essentially be described as a human-in-the-loop ETL process. Initially, refugees and volunteers fill in online forms and the data is exported into csv format. Then, the team members get in touch with participants to verify the information, get more details, and try to match people in need with those who can help. The tasks and forms were constantly changing as we learned how to do things better. It’s amazing how messy the google sheets became in no time. Having a decent amount of experience with knowledge graphs in NLP applications, I realized that might be exactly what we needed.
What it does
Graph allowed us to build a crowdsourcing platform that is simple to use and maintain despite the ever-changing requirements. On the frontend, participants fill out simple forms to specify what their needs are or what they can offer. This data is exported into csv, parsed and stored into Tigergraph. Then, volunteers can access the data via task-specific apps, so that they only see and edit relevant slots, reducing cognitive overload and risk of accidental changes. The current tasks include refugee and host verification, arranging plane tickets, and matching refugees with host families.
If someone is looking for shelter, we can match them with those who offer a home in an intelligent way, aiming to maximize individual experience as well as optimizing overall efficiency. People who need help with paperwork or school enrollment are connected to those who already succeeded with the task and opted to help others.
Volunteers supporting the backend operations can access the apps on their own schedule and do one task at a time. The simplicity of the apps - both from UI and business logic perspective allows us to quickly onboard new volunteers with various levels of technical skill.
How we built it
Having data in csv format, the original idea was to use graphs only for modeling the data and keeping it organized. It quickly became apparent that we need a better way to interact with data as we were juggling csv files with python scripts and google sheets.
The solution is built around Flask apps. Each app is basically a task-specific view generated by a pre-installed GSQL query in Tigergraph. The pre-installed query feature allows us to reduce the amount of boiler-plate code. Additionally, Tigergraph helps us to synchronize the queries with the schema changes.
The query result is rendered as an interactive html table. We can control how different columns behave, whether they are editable, allow drop-down menus, etc. Once a field is edited by the user, the update is reflected in the graph and can be picked up by another app for a downstream task.
Challenges we ran into
Helping a single family involves an overwhelming amount of different tasks that require different kinds of expertise, connections, and skills. This means each volunteer has to perform a small specific task, and the overall process needs to be thought of, monitored, and coordinated efficiently. Volunteers have different schedules and can allocate only limited time for UAWelcome, so coordination should happen asynchronously and automatically to seamlessly pass the baton from initial verification to content writers, then to fundraising management, and so on. The data is fundamentally not perfect. The forms are created and updated on the fly, allowing ambiguity and misunderstanding. People fill in the wrong forms by mistake and provide incomplete data. This means that some amount of manual review and revision must be factored into support. Mixed levels of technical skills among participants limits interaction scenarios to the most basic ones - simple forms, emails, phone calls and excel-like views. Creating a specific mobile app is not an option.
Accomplishments that we're proud of
We are very proud of the fact that we were able to set up a platform where a new business process can be onboarded in just a couple of hours. Graph-based architecture reduces the amount of code involved. This allows us to keep up with new ideas as well as makes the system easy to learn and applicable for similar causes. Our architecture has a chance to become something like wikipedia for volunteer organizations.
What we learned
Errare humanum est. The amount of mistakes made by participants, as well as volunteers makes it clear that data needs to be carefully governed. Using the graph approach can turn an overwhelming problem into a manageable task, helping to organize the chaos and keep up with changes. The amount of people offering help is breath-taking, restoring faith in humanity and giving hope that with better collaboration and coordination tools, more world problems can be solved.
What's next for UAwelcome Graph
Over 1000 individuals have already participated. Our goal is to further scale the system for more volunteers and open it as an open-source solution for other organizations around the globe. In the next few months, the plan for UAWelcome is to integrate more applications that accomplish other functions, add NLP capabilities, and visualizations that help us to understand needs and evaluate progress made. With the help of all those involved, we hope to reach over a thousand refugees very soon and help them to adjust to a new life in the US.
Log in or sign up for Devpost to join the conversation.