Skip to content

Latest commit

Β 

History

48 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Velora - Digital Art Commission Marketplace

Velora Digital Art Marketplace

Velora - Digital Art Marketplace

A Neo-Brutalist Platform Connecting Clients with Talented Digital Artists

Django Python Tailwind CSS Razorpay


🌟 About The Project

Velora is a fully-featured digital art commission marketplace built on a robust Django backend. It features a striking Neo-Brutalist design system and provides a secure, end-to-end workflow for artists and clients to collaborate on custom artwork. From initial request to final escrow payout, Velora handles the entire lifecycle securely and beautifully.

πŸš€ Key Achievements & Features

🎨 Seamless Neo-Brutalist Design

  • Transitioned entirely from React to server-side rendered Django HTML templates.
  • Designed an aesthetic interface characterized by stark contrasts, solid black borders, drop shadows, and vibrant accent colors using Vanilla HTML and Tailwind CSS.

πŸ’Ό Client & Artist Workflows

  • Clients can post detailed commission requests, specify budget constraints, upload references, and browse artist portfolios.
  • Artists have dedicated profiles, can showcase their past work, filter open requests by tag, and submit competitive proposals with delivery timelines.
  • Real-time order tracking: Visual pipelines from Proposal β†’ In Progress β†’ Submitted β†’ Revision Requested β†’ Completed.

πŸ›‘οΈ Secure Escrow & Payments

  • Fully integrated with Razorpay.
  • Buyer Protection: When a proposal is accepted, the client's funds are captured and held securely in Escrow.
  • Funds are only released to the artist after the client explicitly reviews the watermarked preview and approves the final high-resolution delivery.
  • Comprehensive security implementations preventing CSRF attacks and state-machine bypass vulnerabilities.

βš–οΈ Dispute Management System

  • If an order goes wrong, either the client or artist can freeze the workflow by raising a dispute.
  • An advanced administrative resolution engine allows admins to:
    • Review the dispute reason, escrow details, and submission timeline.
    • Refund the Client: Cancels the order and returns funds via Razorpay.
    • Release to Artist: Bypasses the client and releases funds to the artist.
    • Dismiss Case: Unfreezes the workflow to continue normally.

πŸ“Š Admin Tools

  • Granular control over users, orders, and payments.
  • Financial dashboards and reporting (PDF export via WeasyPrint).
  • User verification and role-based access control.

πŸ›  Tech Stack

Category Technologies
Backend Django 6.0+, Python 3.10+
Frontend HTML5, Tailwind CSS, JavaScript (Vanilla ES6+)
Database PostgreSQL (SQLite for dev)
Payments Razorpay API
Authentication Django Auth + Role-Based Access Control
PDF Export WeasyPrint
Deployment Ready for Render, Heroku, AWS

πŸ“‹ Core Features

For Clients

βœ… Post detailed artwork commission requests
βœ… Set budget and timeline preferences
βœ… Browse artist portfolios and reviews
βœ… Receive and review artist proposals
βœ… Secure payment via Razorpay escrow
βœ… Track order status in real-time
βœ… Request revisions from artists
βœ… Download final artwork after approval

For Artists

βœ… Create professional portfolios with past work
βœ… Discover commission opportunities
βœ… Submit competitive proposals
βœ… Upload watermarked previews for review
βœ… Track earnings and completed orders
βœ… Manage multiple active commissions
βœ… Build reputation through reviews

For Admins

βœ… Comprehensive dashboard
βœ… User & artist management
βœ… Payment and revenue tracking
βœ… Dispute resolution tools
βœ… Category and tag management
βœ… PDF financial reports


πŸ— Architecture

Database Models

  • User: Extended Django user with role-based permissions (client, artist, admin)
  • Workflow: Commission request lifecycle management
  • Proposal: Artist proposals with pricing and timeline
  • Order: Binding contract between client and artist
  • Execution: Payment and fulfillment tracking
  • Dispute: Conflict resolution with resolution history

Security Features

  • CSRF token protection on all forms
  • State-machine validation to prevent workflow bypasses
  • Escrow-based payment system (funds never directly transferred)
  • Role-based access control (RBAC)
  • Secure file upload with verification
  • SQL injection prevention via Django ORM

πŸš€ Getting Started

Prerequisites

  • Python 3.10+
  • PostgreSQL 12+ (or SQLite for development)
  • pip and virtualenv

Installation

  1. Clone the Repository

    git clone https://github.com/AmalSKumar0/Velora.git
    cd Velora
  2. Create Virtual Environment

    python -m venv venv
    source venv/bin/activate  # On Windows: venv\Scripts\activate
  3. Install Dependencies

    pip install -r requirements.txt
  4. Configure Environment

    cp .env.example .env
    # Edit .env with your Razorpay API keys and database config
  5. Run Migrations

    python manage.py migrate
  6. Create Superuser

    python manage.py createsuperuser
  7. Run Development Server

    python manage.py runserver

    Visit http://localhost:8000/


πŸ“Š Order Lifecycle

REQUEST OPEN
    ↓
ARTIST SUBMITS PROPOSAL
    ↓
CLIENT ACCEPTS PROPOSAL β†’ ORDER CREATED
    ↓
CLIENT PAYS β†’ FUNDS IN ESCROW
    ↓
ARTIST UPLOADS PREVIEW (watermarked)
    ↓
CLIENT REVIEW
    β”œβ†’ APPROVE β†’ FUNDS RELEASED TO ARTIST
    β”œβ†’ REQUEST REVISION β†’ Back to work phase
    β””β†’ DISPUTE β†’ Admin resolution

πŸ” Payment Flow

  1. Order Creation: Client accepts artist's proposal
  2. Payment Capture: Razorpay captures funds into escrow (status: held)
  3. Work Phase: Artist works on commission
  4. Submission: Artist uploads preview with watermark
  5. Approval: Client reviews and approves
  6. Release: Funds automatically released to artist (status: released)
  7. Download: Client can now download final high-resolution artwork

πŸ›‘οΈ Dispute Resolution

If issues arise:

  1. Raise Dispute: Either party freezes the workflow
  2. Admin Review: Admin reviews evidence, timeline, and reason
  3. Resolution Options:
    • Refund Client: Cancel order, return funds via Razorpay
    • Release to Artist: Award funds to artist despite disagreement
    • Dismiss: Unlock workflow to continue normally

πŸ“¦ Deployment

Render Deployment

# Requires these environment variables:
RAZORPAY_KEY_ID=xxx
RAZORPAY_KEY_SECRET=xxx
DATABASE_URL=postgresql://...
SECRET_KEY=xxx
ALLOWED_HOSTS=yourdomain.com

The app is pre-configured with:

  • WhiteNoise for static file serving
  • Gunicorn as WSGI server
  • PostgreSQL as primary database

πŸ“š Project Structure

Velora/
β”œβ”€β”€ core/                    # Main Django project config
β”œβ”€β”€ workflows/               # Core workflow logic
β”‚   β”œβ”€β”€ models.py           # Order, Proposal, Execution models
β”‚   β”œβ”€β”€ views.py            # API endpoints
β”‚   └── services/           # Business logic
β”œβ”€β”€ integrations/           # Razorpay & external services
β”œβ”€β”€ templates/              # HTML templates (Neo-Brutalist design)
β”œβ”€β”€ static/
β”‚   β”œβ”€β”€ css/               # Tailwind CSS
β”‚   └── js/                # Vanilla JavaScript
β”œβ”€β”€ management/            # Admin commands
└── requirements.txt       # Dependencies

🀝 Contributing

Contributions welcome! Please:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit changes (git commit -m 'Add amazing feature')
  4. Push to branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.


πŸ’‘ Future Roadmap

  • Automated payment scheduling (retainers)
  • Portfolio analytics and insights
  • Referral program for artists
  • Mobile-friendly improvements
  • Real-time notifications via WebSockets
  • AI-powered commission matching
  • Subscription tiers for unlimited commissions
  • Integration with other payment gateways (Stripe, PayPal)

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

Amal S Kumar
Full-Stack Developer | Payment Systems Specialist | Django Enthusiast

πŸ“§ Email
πŸ”— Portfolio
πŸ’Ό LinkedIn


πŸ“ž Support

For questions or issues:

  • Open an issue on GitHub
  • Check existing documentation in /docs folder
  • Review architecture guide: documentation/architecture.md

Built with ❀️ for digital artists and creators

About

Digital Art Commission Marketplace with Secure Escrow Payments, Dispute Resolution & Role-Based Workflows. Django + Tailwind CSS + Razorpay Integration.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages