SkillCurrency

SkillCurrency Logo # SkillCurrency **Bangladesh's Premier Peer-to-Peer Skill Exchange Marketplace** [🌐 Visit Live Demo](https://skillcurrency.onrender.com/) [![Python](https://img.shields.io/badge/Python-3.12-3776ab?logo=python&logoColor=white)](https://python.org) [![Django](https://img.shields.io/badge/Django-6.0-0c4b33?logo=django&logoColor=white)](https://djangoproject.com) [![Channels](https://img.shields.io/badge/Django%20Channels-4.x-0c4b33)](https://channels.readthedocs.io) [![License](https://img.shields.io/badge/License-MIT-a855f7)](LICENSE) [![Status](https://img.shields.io/badge/Status-Active%20Development-22c55e)]() *Trade coding for design. Teach English for Python. Or simply get paid for what you know.* [Live Demo](https://skillcurrency.onrender.com/) · [Report Bug](https://github.com/NasorHidar/SkillCurrency/issues) · [Request Feature](https://github.com/NasorHidar/SkillCurrency/issues)

πŸ“‹ Table of Contents


🌟 About the Project

SkillCurrency is a full-stack freelance marketplace built specifically for Bangladesh’s growing community of digital talent. It goes beyond a typical job board by enabling skill barter β€” users can trade expertise directly without monetary exchange.

A Python developer can teach coding in exchange for logo design. A marketing expert can offer SEO work in return for video editing lessons. No cash required.

The platform supports both Paid Services and Skill Barter transactions, backed by a secure workspace, real-time encrypted messaging, milestone tracking, and an AI-powered skill assessment system.


✨ Key Features

πŸ›’ Job Marketplace

🧠 Skill Lab (AI Assessment)

πŸ” Identity Vault

πŸ’Ό Workspace

πŸ’³ Financial Hub

πŸ‘€ User Dashboard

πŸ” User Discovery & Navigation

πŸ› οΈ Admin Panel


πŸ›  Tech Stack

Layer Technology
Backend Python 3.12, Django 6.0
Real-time Django Channels 4.x, Daphne (ASGI), WebSocket
Database SQLite (dev) β€” PostgreSQL-ready
AI Google Gemini API (google-generativeai)
Encryption cryptography (Fernet) for workspace messages
Frontend Vanilla HTML5, CSS3, FontAwesome 6
Fonts Google Fonts β€” Inter
Auth Django AbstractUser with custom CustomUser model
Payments bKash / SSLCommerz (simulated hooks)

πŸ— System Architecture

SkillCurrency/
β”œβ”€β”€ skill_currency/          # Django project config
β”‚   β”œβ”€β”€ settings.py          # LOGIN_URL, CHANNELS, ENCRYPTION_KEY, etc.
β”‚   β”œβ”€β”€ urls.py              # Root URL dispatcher
β”‚   β”œβ”€β”€ asgi.py              # ASGI entry point (Daphne + Channels)
β”‚   └── routing.py           # WebSocket URL routing
β”‚
β”œβ”€β”€ accounts/                # Core application (single-app architecture)
β”‚   β”œβ”€β”€ models.py            # All 10 data models
β”‚   β”œβ”€β”€ views.py             # All view logic
β”‚   β”œβ”€β”€ admin.py             # Custom admin (identity sync, job CRUD)
β”‚   β”œβ”€β”€ urls.py              # All URL patterns
β”‚   β”œβ”€β”€ consumers.py         # WebSocket chat consumer
β”‚   β”œβ”€β”€ context_processors.py
β”‚   β”œβ”€β”€ management/commands/
β”‚   β”‚   └── seed_jobs.py     # 20 realistic seeded job posts
β”‚   └── templates/accounts/
β”‚       β”œβ”€β”€ base.html
β”‚       β”œβ”€β”€ landing.html
β”‚       β”œβ”€β”€ marketplace_feed.html
β”‚       β”œβ”€β”€ _job_card_v3.html
β”‚       β”œβ”€β”€ job_detail.html
β”‚       β”œβ”€β”€ public_profile.html
β”‚       β”œβ”€β”€ financial_hub.html
β”‚       β”œβ”€β”€ workspace.html
β”‚       └── ...
β”‚
└── static/
    β”œβ”€β”€ css/style.css        # Full design system
    β”œβ”€β”€ js/                  # WebSocket client
    └── images/

Data Model Relationships

CustomUser
  β”œβ”€β”€ SkillBadge (many)     β†’ SkillCategory
  β”œβ”€β”€ JobPost (many)        β†’ SkillCategory
  β”‚     └── JobProposal (many) β†’ CustomUser (applicant)
  β”‚           └── ServiceAgreement (1:1)
  β”‚                 β”œβ”€β”€ Milestone (many)
  β”‚                 └── EncryptedMessage (many)
  β”œβ”€β”€ Transaction (many)
  └── Notification (many)

πŸš€ Getting Started

Prerequisites

Installation

# 1. Clone the repo
git clone https://github.com/NasorHidar/SkillCurrency.git
cd SkillCurrency

# 2. Create and activate a virtual environment
python -m venv venv

# Windows
venv\Scripts\activate
# macOS / Linux
source venv/bin/activate

# 3. Install dependencies
pip install -r requirements.txt

# 4. Configure environment variables
# Create a .env file or set these directly:
#   GEMINI_API_KEY=your_google_gemini_key
#   ENCRYPTION_KEY=your_fernet_key   (auto-generated if omitted)

# 5. Apply migrations
python manage.py migrate

# 6. Create a superuser
python manage.py createsuperuser

# 7. Start the dev server
python manage.py runserver

Visit http://127.0.0.1:8000

Seeding the Database

python manage.py seed_jobs

Creates:

The command is idempotent β€” safe to run multiple times.


πŸ“ URL Reference

URL Name Description
/ landing_page Marketing homepage
/signup/ signup User registration
/signin/ signin Login
/signout/ signout Logout
/marketplace/ marketplace_feed Browse all jobs
/marketplace/create/ create_job Post a new job
/marketplace/job/<id>/ job_detail View job + submit proposal
/profile/<username>/ public_profile User dashboard
/skill-lab/ skill_lab_dashboard AI assessment hub
/identity-vault/ identity_vault ID verification upload
/financial-hub/ financial_hub Wallet & transactions
/financial-hub/top-up/ top_up_wallet Add money to wallet
/financial-hub/withdraw/ withdraw_funds Withdraw funds
/financial-hub/invoice/<ref>/ invoice_receipt Transaction receipt
/workspace/<id>/ workspace Active project workspace
/settings/ settings_page Account settings
/notifications/ notifications_page Notification center
/admin/ β€” Django admin panel

πŸ”‘ Core Modules

models.py

Model Purpose
CustomUser Extended user: role, wallet, NID, verification status, avatar
SkillCategory Category for jobs and badges
SkillBadge Earned badge: user ↔ category with level (1–3)
AssessmentQuestion MCQ question linked to a category
JobPost Job listing with type, budget, status
JobProposal Bid submitted by a user on a job
ServiceAgreement Contract created when a proposal is accepted
Milestone Deliverable inside an agreement
EncryptedMessage Fernet-encrypted chat message
Transaction Wallet top-up, withdrawal, earnings record
Notification In-app notification

WebSocket Chat (consumers.py)


πŸ›‘ Admin Panel

Access at /admin/ with superuser credentials.

Identity Verification Workflow

User uploads NID  β†’  Status: Pending
Admin ticks βœ… "Is Identity Verified"
       ↓  (save_model hook fires)
verification_status β†’ "Approved"
User gets in-app notification βœ…

Bulk actions available:

Job Post Management


πŸ—Ί Roadmap


🀝 Contributing

# Fork β†’ clone β†’ create branch
git checkout -b feature/your-feature

# Make changes, then
git commit -m "feat: describe your change"
git push origin feature/your-feature

# Open a Pull Request on GitHub

Ensure python manage.py check passes before submitting.


πŸ“„ License

Distributed under the MIT License. See LICENSE for details.


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

  1. Nasor Hidar β€” @NasorHidar
  2. MD. SHAHRIAR SHAKIB β€” @Shahsamsu1668
  3. SUHITA SRUTEE β€” @suhita-04

Built with ❀️ in Bangladesh  Β·  Empowering the next generation of digital talent ⭐ **Star this repo if it helped you!**