Project Info
This project did not submit a demo video on Devpost.
Inspiration
The need for fast, reliable financial aid during natural disasters or wars inspired us to build a platform that eliminates the delay of traditional overseas transfers, using XRP for instant donations.
What it does
Our platform allows users to donate to relief organizations across the globe using XRP, ensuring near-instantaneous cross-border transfers, and overcoming the usual delays in emergency financial support.
How we built it
We developed the platform using Reflex for the frontend, integrating XRP wallets for transactions. The backend leverages Python for managing organization data and real-time donation history tracking.
Challenges we ran into
The biggest challenge was ensuring the seamless integration of XRP transactions while maintaining a user-friendly interface and handling real-time updates of donation data for transparency.
Accomplishments we're proud of
We are proud of implementing a solution that provides real-time donation tracking and eliminates days of waiting for transfers to process during crucial disaster relief situations.
What we learned
We learned the importance of efficient financial infrastructure in crisis management and how decentralized solutions like XRP can significantly reduce bottlenecks in donation systems.
What's next
Next, we plan to expand the platform’s capabilities by adding multi-currency support and working on deeper integration with AI-driven analytics to optimize fund allocation for disaster relief.
Welcome to Reflex!
This is the base Reflex template - installed when you run reflex init.
If you want to use a different template, pass the --template flag to reflex init.
For example, if you want a more basic starting point, you can run:
reflex init --template blank
About this Template
This template has the following directory structure:
├── README.md
├── assets
├── rxconfig.py
└── {your_app}
├── __init__.py
├── components
│ ├── __init__.py
│ ├── navbar.py
│ └── sidebar.py
├── pages
│ ├── __init__.py
│ ├── about.py
│ ├── index.py
│ ├── profile.py
│ ├── settings.py
│ └── table.py
├── styles.py
├── templates
│ ├── __init__.py
│ └── template.py
└── {your_app}.py
See the Project Structure docs for more information on general Reflex project structure.
Adding Pages
In this template, the pages in your app are defined in {your_app}/pages/.
Each page is a function that returns a Reflex component.
For example, to edit this page you can modify {your_app}/pages/index.py.
See the pages docs for more information on pages.
In this template, instead of using rx.add_page or the @rx.page decorator,
we use the @template decorator from {your_app}/templates/template.py.
To add a new page:
- Add a new file in
{your_app}/pages/. We recommend using one file per page, but you can also group pages in a single file. - Add a new function with the
@templatedecorator, which takes the same arguments as@rx.page. - Import the page in your
{your_app}/pages/__init__.pyfile and it will automatically be added to the app. - Order the pages in
{your_app}/components/sidebar.pyand{your_app}/components/navbar.py.
Adding Components
In order to keep your code organized, we recommend putting components that are
used across multiple pages in the {your_app}/components/ directory.
In this template, we have a sidebar component in {your_app}/components/sidebar.py.
Adding State
As your app grows, we recommend using substates to organize your state.
You can either define substates in their own files, or if the state is specific to a page, you can define it in the page file itself.
Analysis
View
Metric
- 18
- 8
Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.
Technology
- CSSIn code
- PythonIn code
- SQLIn code
3 of 3 appear in the indexed code.
AI coding agents
No AI coding agent signals were found in this repository.
Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.
Codebase size
Source size
75 KB
Source files
38
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
nkim33937/disasterResAlloc
50 files · 685 KB · @ 6fe1c40
Structure
Interface
23 files · 46%Screens, components and styles rendered to the user.
Application logic
15 files · 30%Domain rules, services and shared utilities.
Data & schema
1 file · 2%Schema definitions, migrations and data access.
Supporting
Layers are inferred from where files sit in the tree, not from reading the code. A project that names its directories unconventionally will read oddly here — open the file browser to check anything the diagram implies.
Languages
- Python96%
- Markdown3%
- CSS0%
- SQL0%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
requirements.txt
pypi · 1- reflex
Declared in the repository’s manifests at the indexed commit. A declared package is not proof it is used, and runtime dependencies are listed first.
Feature verification
Organisation searchVerified
Platform allows discovering relief organizations across the globe
Claimed on readmemedium confidencedisasterResAlloc/backend/table_state.py:126— search_organisation queries the Organisation table by name using ILIKE and stores results in statedisasterResAlloc/pages/index.py:88— Search input on the index page is wired to TableState.set_search_query and results are rendered via rx.foreach
Organization data management (Python/FastAPI backend)Verified
Backend leverages Python for managing organization data
Claimed on Devposthigh confidencedisasterResAlloc/backend/routes.py:73— Organisation_router defines full CRUD API routes (add/list/get/update/delete) backed by a SQL modeldisasterResAlloc/backend/table_state.py:17— Organisation is defined as an rx.Model table with name, location, email, wallet fields
Reflex-based frontendVerified
Developed the platform using Reflex for the frontend
Claimed on Devposthigh confidencedisasterResAlloc/pages/index.py:3— Uses reflex (rx) components throughout to build the UI, e.g. rx.vstack, rx.card, templatesrequirements.txt:1— reflex>=0.5.5 declared as the project's core dependency
Donate button / donation form UICode-supported
Platform allows users to donate to relief organizations
Claimed on readmehigh confidencedisasterResAlloc/pages/organisation.py:37— donate(self, amount: float) handler exists and is wired to a form's on_submit, but the method body is just `pass`, so no transaction logic executesdisasterResAlloc/pages/organisation.py:69— Dialog UI literally says 'Donate XRP: Current Balance: {}' with an unformatted placeholder, showing this is a static mockup
Donation total / balance stats displayCode-supported
Real-time donation tracking (stats display)
Claimed on Devpostmedium confidencedisasterResAlloc/views/stats_cards.py:80— stats_cards() renders 'Balance' and 'Donation Total' cards, but values (69, 31) are hardcoded literals, not derived from any live donation datadisasterResAlloc/views/charts.py:18— donation_data in StatsState is a hardcoded static list, not fetched or updated in real time
XRP wallet integration for organisationsCode-supported
Integrating XRP wallets for transactions
Claimed on Devpostmedium confidencedisasterResAlloc/backend/table_state.py:22— Organisation model has an encoded_wallet string field, and backend/routes.py CRUD stores it, but there is no XRP SDK usage, wallet generation, or transaction signing anywhere in the repodisasterResAlloc/backend/organisations.py:5— Seed data uses a fake placeholder wallet value '0x1234567890', which is not even a valid XRP address format
Real-time donation history trackingClaimed only
Real-time updates of donation data for transparency, real-time donation history tracking
Claimed on Devposthigh confidenceXRP-based cross-border donation paymentsClaimed only
Users donate to relief organizations using XRP with near-instant cross-border transfers
Claimed on Devposthigh confidence
An AI agent derived these features from the project’s Devpost page and readme, then searched the code for each one. Verified features are backed by cited code; claimed-only features had no supporting code, which is not by itself proof a feature is missing.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.