The problem
Freelancing in India runs largely on WhatsApp groups and word of mouth — clients cannot verify a freelancer's track record, freelancers chase payments for weeks, and neither side has recourse when a project goes wrong. This project replaces trust-by-hope with trust-by-design: freelancer profiles with skills, portfolios and verification badges; project posting with a proposal flow; milestone contracts where funds are held in escrow and released on approval; per-project messaging; and a two-sided rating plus dispute system. The engineering emphasis is the money flow — every fund movement is an immutable ledger entry (hold, release, refund), so balances are always recomputable and double-release is structurally impossible.
Posts projects, funds milestones and approves work.
Follow the working sequence
How it works
- A client posts a project with budget, description and timeline.
- Freelancers submit proposals with quotes; the client compares profiles, ratings and bids.
- The client accepts one proposal, defines milestones and funds the first — the ledger records a hold.
- The freelancer delivers through the project workspace; the client approves or requests revision.
- Approval releases the hold to the freelancer's balance (minus platform fee) as a new ledger entry.
- Disputes freeze the milestone for admin resolution; completed projects publish two-sided ratings.
Tech stack:
- Vue.js 3 single-page application
- Node.js + Express REST API
- MongoDB (users, projects, contracts, ledger)
- Append-only ledger for fund movements
- Contract state machine (posted/funded/delivered/released/disputed)
- JWT authentication
- Payment gateway sandbox for escrow simulation
| Parameter | Value |
|---|---|
| Money safety | Immutable ledger; double-release structurally impossible |
| Contract states | Posted, proposed, funded, delivered, released, disputed, refunded |
| Platform fee | Configurable percentage on release (design target) |
| Verification | Badge-based (ID + skill proof reviewed by admin) |
| Messaging | Per-contract real-time chat |
| Deployment | Self-hosted Node.js + MongoDB |
Project features
- [Freelancer profiles] Skills, portfolio, hourly rates, availability calendar and verification badges.
- [Project posting and proposals] Clients post with budget and timeline; freelancers submit proposals with quotes.
- [Milestone escrow] Client funds a milestone upfront; release happens only on delivery approval — enforced as a state machine.
- [Immutable money ledger] Every hold, release and refund is an append-only entry; balances recompute from the ledger.
- [Per-project messaging] Real-time chat workspace between client and freelancer for each contract.
- [Two-sided ratings] Public reviews after completion feed profile scores on both sides.
- [Dispute workflow] Either party can freeze a milestone for admin resolution with full history visible.
What is included
- Complete source code (Vue.js frontend, Express API, ledger module, seed data)
- Money-flow design document (ledger entries, state transitions)
- Setup guide (local run, gateway sandbox, deployment notes)
- Project report PDF (background, escrow design, trust systems, testing notes)
- PPT presentation for final review
- Viva Q&A preparation document (ledgers, state machines, marketplace dynamics, auth)
Limitations & prerequisites
- Escrow runs in gateway sandbox mode — live money movement needs merchant onboarding and compliance review.
- Identity verification is badge-based admin review, not a government ID API integration.
- The demo ships with sample freelancers and projects; a real marketplace needs supply-side seeding.
- Time-tracking for hourly contracts is not included in this build.
- Dispute resolution is manual by the admin; no arbitration automation.
- High-volume matching would need search-index tuning beyond the student build.
Frequently Asked Questions
How is the money actually protected?
The client funds each milestone before work starts, but the freelancer cannot touch it until the client approves delivery. Every movement is an immutable ledger entry.
What stops double payment?
The ledger is append-only and releases are idempotent by milestone ID — the same milestone cannot be released twice even if the button is clicked twice.
What happens in a dispute?
Either party raises a dispute, the milestone freezes, and the admin reviews the full message and delivery history before releasing or refunding.
How do freelancers get discovered?
Search by skill, rate and rating, plus category browsing — new freelancers can bid competitively to build reviews.
Is payment real?
The demo uses sandbox mode. The hold/release flow is fully implemented and works with live keys after onboarding.
Is this project suitable for a final-year project?
Yes — for Computer Science, IT and related programs. It demonstrates full-stack development, financial-ledger design, state machines and marketplace trust systems. Suitable for B.E./B.Tech final-year projects in Computer Science, IT and Web Development.
Components & software requirements
- Vue.js 3 single-page application
- Node.js + Express REST API
- MongoDB (users, projects, contracts, ledger)
- Append-only ledger for fund movements
- Contract state machine (posted/funded/delivered/released/disputed)
- JWT authentication
- Payment gateway sandbox for escrow simulation
Delivery information
Built-to-order project. Delivery timeline is shared after order confirmation based on current queue.
Support terms
Complete documentation, setup guide, and viva preparation included. Support for setup and explanation provided.
Download free synopsis (PDF)
Enter your name and WhatsApp number — the synopsis PDF downloads immediately. We may send occasional project updates on WhatsApp; no spam.