Students have real skills, but turning them into income is hard. Three problems kept coming up:
- Nobody tells beginners what to charge. They either sell 30 hours of work for $5 or quote a number that scares clients away.
- Vague briefs turn into unpaid work. A request like "make me an app like Instagram" has no limits, so the extras never stop.
- Students fear not being paid. After delivering source code, a client can simply disappear.
We wanted one platform that fixes all three, so a student's first paid project feels safe instead of risky.
What it does
SkillPay AI takes a student from "I have a skill" to "I got paid":
- Smart Rate Engine. It looks at skill category, experience tier, complexity, urgency and revision rounds, then produces a fair quote with a client-ready justification. An anti-exploitation floor of $15–$24/hr stops students from undercharging.
- AI Scope Clarifier. It turns a vague request into a formal Scope of Work with 3 milestones (25% / 50% / 25%), flags unbudgeted add-ons as paid out-of-scope work, and exports a contract.
- Beginner Marketplace. Projects are pre-funded, so the money is already in escrow when a student applies.
- Milestone Escrow. The student submits a GitHub and demo link, and the client approves to release funds. If the client goes silent, a 72-hour auto-release pays the student automatically. Withdrawals go to PayPal, UPI or bank transfer.
- Live Database Inspector. Judges can watch the SQL tables change in real time as money moves.
The quote is built from the project inputs and checked against the floor:
$$\text{Quote} = H \times \max\left(r_{floor},\ r_{base} \cdot m_{tier} \cdot m_{complexity} \cdot m_{urgency}\right) + C_{revisions}$$
The total is then split across milestones:
$$P = 0.25P + 0.50P + 0.25P$$
How we built it
- Frontend: a single-page app in HTML and Tailwind CSS with a multi-role dashboard (Student and Client views, account switcher, database inspector).
- Backend: a REST API in both Node.js (Express) and Python, so it runs with whichever runtime is installed. Both expose the same endpoints.
- Database: a relational SQLite schema with
users,projects,project_skills,escrow_contracts,milestones,proposals,transactionsanddisputes. - Money movement: milestone approval runs as a real SQL transaction. Funds move from escrow to the student's wallet and are recorded in a transaction ledger for auditing.
- One-click launchers (
start.bat,start.ps1) and an offline mode that falls back to local data, so the demo works even without a server.
Challenges we ran into
- Keeping money correct. Releasing escrow has to be all-or-nothing, so we put the balance update and the ledger entry in one SQL transaction.
- Two backends, one behavior. Keeping the Node.js and Python servers identical, so the same frontend works with either one, took careful testing.
- Pricing that is fair to both sides. A floor protects students, but the quote still has to be defensible to a client, so we generate a justification script with each rate.
- Making trust visible. Escrow is invisible by nature, so we built the live ledger and database inspector to let people see where the money is.
What we learned
- Designing financial flows means thinking about failure first: disputes, ghosting clients and double releases.
- A clear scope document prevents more conflict than any dispute system.
- Showing the data (ledger, tables, statuses) builds more trust than a polished UI alone.
What's next for SkillPay AI
- Connect withdrawals to live PayPal payouts (sandbox first, then production).
- Smarter scope generation using an LLM.
- Student reputation scores based on completed, fully paid milestones.
- Automated dispute mediation with evidence from GitHub commits.
Built With
- batch
- cors
- css3
- express.js
- github
- google-fonts
- html5
- javascript
- json
- node.js
- powershell
- python
- rest-api
- sql
- sqlite
- tailwindcss