Team DiJITZ · CS 410 · Alabama A&M University

About this prototype

Wi-Fight checks whether you get the internet speed you pay for, and gives you proof you can use.

This is the project's one-page brief. It describes the code as it runs today.

Jordan BarnesTeam Lead
Thabo Ibrahim TraoreCo-Lead
Zizwe MtongaFeature Analyst
Daniel LamboResearcher
Tapiwa MusingaTeam Member
1

What Wi-Fight is, and the vision

Households pay for an internet speed, but they have no easy way to tell whether they get it, and no way to prove it when they do not.

Wi-Fight runs speed tests for two weeks, compares each day with the speed on your plan's label, and gives you a plain verdict and a report you can send to your provider. It is built for students, renters, and families in Huntsville, Alabama.

The vision

Any household should be able to check for itself, in two weeks and without special equipment, whether its internet is worth what it costs.

68%

of U.S. households had home Wi-Fi problems in the past year.

TechSee, 2025
21%

of U.S. broadband subscribers are neutral or dissatisfied.

S&P Global
$81 to $98

The average internet bill rose from $81 at sign-up to $98.

U.S. News survey of 2,500 adults, 2024
2

The link to UN Goal 9

9
Industry, innovation and infrastructure

Goal 9 asks for internet that everyone can afford and rely on. A plan is only affordable if you actually get what you pay for.

Target 9.c: internet access that people can affordA household that pays for 500 Mbps and gets less is paying more for each unit of speed than the label says. Wi-Fight measures that gap and puts a dollar figure on it, so "affordable" can be checked instead of assumed.
Target 9.1: reliable infrastructure with fair access for allA dated record of real speeds shows when a connection is unreliable, and it gives the household evidence to hold a provider to what it advertises.
What it could save: up to about $260 a year per household
Estimate
One junk fee removed. Consumer Reports found fees of $2.49 to $9.95 a month.$30 to $120 a year
An example plan switch that saves $12 a month.$144 a year
Both together, at the high endabout $260 a year

This is an estimate and not a measured result. Many households will save less, and some will save nothing.

3

What works today

Each of the five requirements, FR1 to FR5, maps to pages you can open now.

Req.What it asks forWhere to see itStatus today
FR1Consent first, then a secure sign-in.ConsentSign inWorking, with a limitConsent is enforced in code before any test. Sign-in uses a one-time code or a passkey.
FR2Add your provider and plan from its label.Your planWorking, with a limitYou upload a bill photo for Proof AI to read, or pick a plan from a list.
FR3Run M-Lab speed tests.Live testWorking, with a limitThe real M-Lab test is an opt-in on the test page.
FR4Compare results with the label and flag repeated shortfalls.DashboardHistoryDiagnosisWorkingEvery number is computed from the stored tests.
FR5A plain verdict and a report you can share.VerdictReportWorking, with a limitThe report opens in your own email app after you approve it. Wi-Fight itself does not send anything.

These pages need consent, sign-in, and a plan, so a link takes you to the first missing step if you have not set those up. The guided walkthrough starts from the small link in the footer of the home page.

4

How AI is used

PROOF AI

Proof AI has two layers. The app's own code does the math on your device, and a language model turns the results into plain words.

The AI models behind Proof AI

Checking Proof AI status.

The app's own code does the math. Medians, the fair line, and the diagnosis are computed on your device, so a model never decides a number.
Every number is checked against the data. A short answer with a number that is not in your data is thrown away, and a chat answer gets a visible warning.
Each answer names its model. The line under an answer says which model wrote it, or says that the built-in writer did.
One switch turns it off. With Proof AI off in Privacy, nothing is sent to any model.
How the math works, on your device in js/engine.js
Daily median. Each day is scored by the middle value of its tests, so one odd test cannot swing the day. median
The fair line. It is 80% of the download speed on the plan's label, and a day under it counts as a low day. FAIR
3 days in a row. A shortfall is flagged only when the daily median stays under the fair line for 3 days running. STREAK
One-off dips. A single test far below the tests around it is set aside, using a robust z-score. A slow stretch is not ignored. flagOutliers
Wi-Fi or provider. An evidence score starts at 50/50 and moves with the router check, the time of day, and how long the problem has lasted. diagnose
Plan pick. The app estimates what a household needs and picks the cheapest plan that fits over 24 months. recommend
Try it: is this test a one-off dip?
This runs flagOutliers from the real engine, in this page, each time you move the slider.
Sample data

Mbps
Result
Robust z-score
Local median
That day's median
Computed on this device by the engine. No AI service is called for this.
5

How cybersecurity is built in

Real, and you can test it
Checking encryption status.
Bill photos are never stored. Only the numbers you confirm are kept.
You can download or delete everything. Deleting also destroys the encryption key. See Privacy.
The limit: there is no account server, so your data lives only in this browser.
6

How it was built, and how it was tested

Built
A plain web app. It is written in HTML, CSS, and JavaScript modules with no framework, so it runs in any modern browser on a laptop or a phone.
A small Node.js server on Vercel. It serves the pages and passes requests to the AI model, which keeps the AI key off the browser.
The M-Lab open speed test. The real test uses Measurement Lab's ndt7 client, the same open test that researchers use.
Short sprints. The team built it in five steps.
  1. Design
  2. Core flow
  3. AI
  4. Security
  5. Demo polish
Tested
Unit tests of the statistics. A script checks the median, the fair line, the streak rule, the dip detector, the diagnosis, and the plan pick against known sample data.
A 45 check automated browser run. A script drives a real browser through sign-up, a simulated test, every page at desktop and phone width, the send lock on the report, and "Delete everything".
Screens reviewed at three sizes. Each page was checked in screenshots at projector, laptop, and phone widths before the demo.
Not tested yet. No real household has used it, and the pilot is still planned.

Credits: speed tests by Measurement Lab (ndt7, Apache-2.0 license). Design references studied from Mobbin. Fonts are Bricolage Grotesque and Inter.

7

Limitations

What is simulated in this prototype

  • The two weeks of results are sample data.
  • The default speed test is simulated, and the real M-Lab test is an opt-in.
  • Sign-in accepts any 6 digits and sends no email.
  • Plans, prices, and practice bills are fictional.
  • The support agent in the chat is simulated.
  • Tests run only while the app is open.
The diagnosis is an evidence score and not a certainty, because slow home Wi-Fi can look like a slow provider.
The fingerprint shows that a report changed, but not who made it. A real product would add a digital signature from a server.
The pilot is still planned: 15 student households over 4 weeks, where success means 12 of 15 get a clear answer.
8

Next steps