Full-Stack Django Marketplace

Lumora

Multilingual Marketplace Platform for Artists and Collectors

Year
2024
Role
Lead Full-Stack Engineer
Technology Stack
PythonDjangoPostgreSQLHTMLCSSJavaScript

A full-stack Django marketplace where artists publish original work, collectors discover and negotiate, and a multilingual content pipeline reaches a global audience.

Lumora
Showcase

Product in motion

Loading preview
Coming soon
Full product walkthrough — artist onboarding, marketplace, and multilingual experience.
Preview
Overview

What it is. Why it exists.

Lumora is a full-stack marketplace that connects artists and buyers across three languages. It pairs a Django-powered marketplace with a multi-role identity system, an offer & messaging engine, and an automated translation workflow that prepares every artwork for a global audience.

The Problem

Independent artists rarely have the channels — or the languages — to reach international collectors. Lumora is built to remove that friction with a single platform that handles listings, negotiation, identity, and translation as one cohesive workflow.

My Role

Lead Full-Stack Engineer — architecture, backend, database, frontend integration, and i18n pipeline.

Key Features

The systems and surfaces that make up the product.

groups

Multi-Role User System

Artist and buyer accounts share one identity layer but receive distinct dashboards, capabilities, and role-based permissions.

dashboard_customize

Seller Dashboard

Artwork management, listing controls, profile presentation, and a live view of marketplace activity for the artist.

favorite

Buyer Experience

Saved artworks, personal profile, offer tracking, and a unified history of every interaction with the catalogue.

forum

Messaging & Communication

Internal messaging, structured offer workflow, and a buyer-seller inbox built around real negotiation, not noise.

storefront

Marketplace Infrastructure

Artwork listings, discovery surfaces, artist profiles, and offer management woven into a single navigable catalogue.

language

Internationalization

Three-language support with dynamic language switching, designed from day one for a global collector audience.

translate

Automated Translation Workflow

Artwork content is automatically prepared for multiple languages, with translation automation wired directly into the content pipeline.

verified_user

User Verification

Phone verification, address management, and a hardened account-creation flow to keep the marketplace trustworthy.

Technical Highlights

Engineering
the platform.

The architecture that makes Lumora hold together at scale — from data model to deployment.

01

Django Architecture

Modular app structure separating identity, marketplace, messaging, and i18n concerns.

02

PostgreSQL Database Design

Normalised schema for artworks, offers, conversations, and verified profiles.

03

Multi-Role Authentication

Single auth surface, two role tracks (artist / buyer) with isolated permission sets.

04

Marketplace Workflows

Listing → discovery → offer → negotiation → resolution, modelled end-to-end.

05

Internationalization Architecture

Locale routing, content fallbacks, and language-aware templates across the platform.

06

Automated Translation Workflow

Translation automation integrated into content management so new listings ship multilingual by default.

07

Permission Management

Role-aware decorators and querysets ensure each user sees only what they should.

08

Dashboard Architecture

Two distinct dashboards (seller / buyer) built on a shared design language and component system.

Development Challenges

Obstacles, met with structure.

01

Modelling two user types without forking the platform

Solution —A shared profile core with role extensions, plus permission-aware querysets that keep artist and buyer surfaces cleanly separated.

02

Keeping three languages in sync as content evolves

Solution —An automated translation pipeline tied to the artwork lifecycle, so new content is translated and indexed without manual intervention.

03

Turning negotiation into a structured product

Solution —An offer + messaging engine that records every step of buyer-seller communication as first-class data, not as a chat afterthought.

Results

Outcome

Lumora ships as a coherent marketplace platform rather than a gallery: artists onboard, list, negotiate, and sell, while collectors browse and engage in their own language. The result is a production-grade Django product demonstrating advanced full-stack capability.

Lessons learned

Designing for two user types from day one forces clarity in every layer — schema, permissions, dashboards, and UI. Treating translation as infrastructure (not a feature) keeps the product genuinely global as it grows.