Inspiration

Our inspiration came directly from the sponsors, Mphasis Foundation and MoneyGram F1.
We saw two powerful, connected stories in the problem statement:

The Mphasis Mission

The "mobile clinics" and "rural labs" spoke to us.
We imagined a doctor trying to send a large MRI scan to a specialist over a spotty 4G connection.
If that transfer fails at 99%, it's not an IT problem—it could delay critical care.

The MoneyGram F1 Mission

The "racetrack <=> factory" application put the problem into a high-stakes, high-speed context.
We pictured the F1 team, where gigabytes of real-time telemetry must be sent from the trackside during a race.
A dropped packet isn't just an error; it's a lost competitive advantage.

This "last-mile" data problem—whether on a rural road or a high-speed racetrack—became our obsession.
We named our solution Momentum, capturing both the speed of F1 and the forward progress of social impact.


What it does

Momentum is a fully-functional MVP that solves the core problem of unreliable file transfers.
Our system:

  1. Resumes Broken Transfers – It intelligently "chunks" large files, sends them individually, and resumes a transfer from the exact chunk that failed — never re-sending data.
  2. Guarantees 100% Data Integrity – It calculates a SHA-256 hash for every chunk before transfer and verifies it on the receiving end. This mathematically guarantees the final reassembled file is bit-for-bit perfect.
  3. Prioritizes Critical Data – It features a dynamic priority queue. A "Critical" file (like F1 telemetry or a patient's medical scan) will automatically pause any "Low" priority transfers to take all available bandwidth.
  4. Provides Real-Time Status – A clean, responsive dashboard shows the live status of all transfers, powered by WebSockets for zero-delay updates.

How we built it

We built a robust client-server architecture designed for resilience.

Backend (Python & FastAPI):
We chose FastAPI for its asynchronous performance.
The server manages all transfer jobs, handles the file "chunking" logic, generates SHA-256 hashes, and uses a simple JSON-based "manifest" file to track the pending, sent, and verified state of every single chunk.

Frontend (React):
We built a responsive dashboard in React. It uses react-dropzone for easy drag-and-drop file uploads (with priority settings) and connects to the backend via a native WebSocket API for high-frequency, real-time status updates.

Resilience Protocol:
We designed a custom, application-layer acknowledgment protocol (ACK/NACK).
This allows our application to manage retries and resumption logic itself, rather than relying on the underlying network, which we assume to be unreliable.


Challenges we ran into

Challenge 1: Testing an Unstable Link

Our biggest challenge was simple: How do you test an "unstable link" on a stable hackathon network?
We couldn't just say it was resilient; we had to prove it.

Solution: The Chaos Monkey.
We built a "Chaos Monkey" middleware in our test environment.
This tool intentionally dropped random packets, injected high latency, and even simulated total connection loss for several seconds at a time.

Challenge 2: Robust State Management

If a client disconnects and reconnects, how does the server know exactly which chunks were successfully verified?

Solution: The Transfer Manifest.
The server-side manifest file is the "single source of truth."
When a client reconnects, it "handshakes" with the server, they compare manifests, and the server queues up only the chunks that were marked as pending or sent but never verified.


Accomplishments that we're proud of

  • It Actually Works.
    Our proudest moment was watching our MVP successfully transfer a 500MB test file while our 'Chaos Monkey' was actively dropping 30% of the packets.
    The system paused, retried, and resumed flawlessly, reassembling a file with a perfect SHA-256 hash match.

  • The Priority Queue in Action.
    We successfully demonstrated a low-priority transfer (e.g., "archive data") automatically pausing to make bandwidth for a new "critical" transfer (e.g., "live telemetry").

  • Building our Own Application-Layer Protocol.
    We developed a protocol that handles packet verification and resumption, proving our core concept is sound.

  • Prototyping 'Adaptive Transfer Logic'.
    We demonstrated an "adaptive" transfer mode that understands the data itself — treating an F1 telemetry stream (where the newest packet is most important) differently from an MRI scan (where 100% integrity is non-negotiable).


What we learned

This project was a deep dive into data resilience.
We learned that "resilient transfer" is far more complex than just a "retry" button.
The true, robust solution lies in atomic chunking and independent chunk verification.

We also learned that for real-time applications like F1 or telemedicine, a dynamic, pre-emptive priority queue isn't a 'nice-to-have' — it's the single most critical feature.
The data's context (telemetry vs. medical scan) is just as important as the connection quality.

Share this project:

Updates

Submission history