Skip to content

amitbhallavi/co.worker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

54 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Co.Worker Logo

Co.Worker

Where Clients Meet the World's Best Freelancers

A full-stack freelance marketplace platform built for the modern economy.
Post projects. Bid on work. Get paid. All in one place.


React Redux Toolkit Node.js MongoDB Socket.io Razorpay License: MIT Status Deploy


Live Demo β†’ Β Β·Β  GitHub β†’ Β Β·Β  Report Bug


πŸš€ What is Co.Worker?

Co.Worker is a production-grade freelance marketplace where clients post projects and freelancers bid to win work β€” similar to Fiverr and Upwork, but built from scratch with modern architecture.

For Clients For Freelancers
Post projects with budget & duration Build a verified profile & portfolio
Browse top talent by category & skill Bid on projects that match your expertise
Secure escrow payment system Real-time chat with clients
Release payment on completion Get paid to your wallet β€” withdraw anytime
Rate & review your freelancer Build reputation through ratings

✨ Core Features

πŸ‘€ User System

  • Dual role β€” switch between Client and Freelancer mode
  • JWT-based authentication with protected routes
  • Profile pages with avatar, bio, skills, and portfolio
  • Verified freelancer badge system

πŸ“‹ Project & Bidding System

  • Clients post projects with title, budget, duration, and required tech stack
  • Freelancers browse and place bids with custom proposals
  • Real-time bid tracking and status updates
  • Category filters β€” Web Dev, UI/UX, AI/ML, Full Stack, and more

πŸ’¬ Real-Time Chat

  • Socket.io powered instant messaging
  • Typing indicators and online/offline status
  • Seen receipts (βœ“βœ“)
  • Unread badge count on navbar
  • Persistent conversation history

πŸ’³ Secure Payment & Escrow System

  • Razorpay integration for client payments
  • Escrow model β€” money is held by platform until work is approved
  • 24-hour auto-release timer after client marks project complete
  • Freelancer wallet with withdrawable and pending balance
  • Withdrawal request system with admin approval

🏦 Wallet System

  • Real-time balance tracking
  • Full transaction history
  • Withdrawal via UPI or Bank Transfer
  • Platform fee deduction on each transaction

⭐ Ratings & Reviews

  • Clients rate freelancers after project completion
  • Star rating + written review
  • Rating displayed on freelancer profile and talent cards

πŸ›‘οΈ Admin Dashboard

  • View and manage all payments and escrow
  • Approve or reject withdrawal requests
  • Monitor platform activity

πŸ“± Fully Responsive

  • Mobile-first design
  • Tailwind CSS utility-first styling
  • Works across all screen sizes

πŸ› οΈ Tech Stack

Layer Technology
Frontend React 18, Redux Toolkit, React Router v6
Styling Tailwind CSS, Custom Animations
State Management Redux Toolkit, RTK Thunks
Backend Node.js, Express.js
Database MongoDB, Mongoose ODM
Real-Time Socket.io (WebSockets)
Payments Razorpay (Orders + Signature Verification)
Auth JWT (JSON Web Tokens)
Deployment Vercel (Frontend) + Render (Backend)
Scheduling node-cron (auto escrow release)

πŸ“Έ Screenshots

Screenshots from the live production app

🏠 Talent Discovery Page

Talent Page

πŸ‘€ Freelancer Profile

Freelancer Profile

πŸ’¬ Real-Time Chat

Chat

πŸ’Ό Find Work (Browse Projects)

Find Work

πŸ’° Wallet Dashboard

Wallet


πŸ’³ Payment Flow

CLIENT PAYS
    β”‚
    β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚          RAZORPAY PAYMENT GATEWAY           β”‚
β”‚   (Signature verified on backend β€” secure)  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
    β”‚
    β–Ό
ESCROW (Platform holds funds)
    β”‚
    β–Ό Client marks project complete
PENDING RELEASE (24hr review window)
    β”‚
    β–Ό Auto-released via cron job
FREELANCER WALLET (withdrawable balance)
    β”‚
    β–Ό Freelancer requests withdrawal
BANK / UPI (Admin processes payout)

Platform fee is deducted per category (β‚Ή11–₹24) at time of payment.
No fake payments β€” Razorpay signature is verified server-side before any escrow is created.


⚑ Getting Started

Prerequisites

  • Node.js v18+
  • MongoDB Atlas account (or local MongoDB)
  • Razorpay test account

1. Clone the Repository

git clone https://github.com/amitbhallavi/co.worker.git
cd co.worker

2. Install Dependencies

# Install backend dependencies
cd server
npm install

# Install frontend dependencies
cd ../client
npm install

3. Configure Environment Variables

Create .env in the /server folder:

# Database
MONGO_URI=mongodb+srv://<user>:<password>@cluster.mongodb.net/coworker

# Auth
JWT_SECRET=your_super_secret_jwt_key

# Razorpay
RAZORPAY_KEY_ID=rzp_test_xxxxxxxxxxxx
RAZORPAY_KEY_SECRET=xxxxxxxxxxxxxxxxxxxx

# App
PORT=5000
CLIENT_URL=http://localhost:5173
NODE_ENV=development

Create .env in the /client folder:

VITE_API_URL=http://localhost:5000

4. Run the Application

# Terminal 1 β€” Start backend
cd server
npm run dev

# Terminal 2 β€” Start frontend
cd client
npm run dev

App runs on http://localhost:5173


πŸ“ Project Structure

co.worker/
β”‚
β”œβ”€β”€ client/                     # React Frontend
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ components/         # Reusable UI components
β”‚   β”‚   β”œβ”€β”€ features/           # Redux slices (auth, project, freelancer, wallet, chat)
β”‚   β”‚   β”œβ”€β”€ pages/              # Page components (Home, Profile, Chat, Wallet...)
β”‚   β”‚   β”œβ”€β”€ app/                # Redux store configuration
β”‚   β”‚   └── main.jsx            # App entry point
β”‚   └── vite.config.js
β”‚
β”œβ”€β”€ server/                     # Node.js Backend
β”‚   β”œβ”€β”€ controllers/            # Business logic (auth, project, payment, wallet, chat)
β”‚   β”œβ”€β”€ models/                 # Mongoose schemas (User, Project, Payment, Wallet...)
β”‚   β”œβ”€β”€ routes/                 # Express route definitions
β”‚   β”œβ”€β”€ middleware/             # Auth middleware (JWT protect)
β”‚   β”œβ”€β”€ socket/                 # Socket.io handler
β”‚   └── server.js               # Express + HTTP server entry
β”‚
└── README.md

πŸ” Environment Variables Reference

Variable Location Description
MONGO_URI server MongoDB connection string
JWT_SECRET server Secret key for JWT signing
RAZORPAY_KEY_ID server Razorpay API key (public)
RAZORPAY_KEY_SECRET server Razorpay API secret
CLIENT_URL server Frontend URL (for CORS + Socket)
PORT server Backend server port (default 5000)
VITE_API_URL client Backend API base URL

πŸ—ΊοΈ Roadmap

Feature Status
βœ… User Authentication (JWT) Done
βœ… Freelancer Profile & Portfolio Done
βœ… Project Posting & Bidding Done
βœ… Real-Time Chat (Socket.io) Done
βœ… Escrow Payment System (Razorpay) Done
βœ… Wallet + Withdrawal System Done
βœ… Admin Dashboard Done
βœ… Responsive UI Done
πŸ”„ Ratings & Reviews System In Progress
πŸ”„ Notifications (in-app + email) Planned
πŸ”„ AI-powered freelancer matching Planned
πŸ”„ Advanced analytics dashboard Planned
πŸ”„ Mobile app (React Native) Planned

🀝 Contributing

Contributions are welcome! Here's how:

# 1. Fork the repo
# 2. Create your feature branch
git checkout -b feature/your-feature-name

# 3. Commit your changes
git commit -m "feat: add your feature"

# 4. Push to your branch
git push origin feature/your-feature-name

# 5. Open a Pull Request

Please follow the existing code style and keep PRs focused on a single feature or fix.


πŸ“œ License

This project is licensed under the MIT License β€” see the LICENSE file for details.


πŸ‘¨β€πŸ’» Author

Amit Bhallavi

GitHub Live App

Built with ❀️ β€” MERN Stack Β· Socket.io Β· Razorpay


If this project helped you, please consider giving it a ⭐

Star on GitHub

About

Co.Worker A full-stack freelance marketplace where clients post projects and freelancers bid, built with React, Redux Toolkit, Node.js, Express & MongoDB.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages