Work in progress  ·  v1 coming soon

The backend engine
every e-commerce
service needs.

Sellaris is a modular, API-first Django backend — handling products, carts, orders, payments, and more. Drop it in, wire up your frontend, and ship faster.

Built with 🐍 Django ⚡ DRF 🐘 PostgreSQL 🐳 Docker 🌿 Celery (planned)

Core commerce, fully covered.

Every module your e-commerce service needs — cleanly separated, independently deployable, and ready to extend.

Product Catalog

Full product management — create, update, categorise, and query products at scale. Variants and inventory tracking on the roadmap.

Cart System

Session-aware cart handling with add, update, and remove operations. Coupon support planned as the project matures.

Wishlist

Let users save products for later. Wishlist endpoints are fully available and tied to user accounts.

Order Processing

End-to-end order lifecycle — creation, status management, and tracking. Supports both guest and authenticated users.

Payments

Payment endpoint is live and ready for Flutterwave and Paystack wiring. Secure verification in progress.

User Management

Authentication, registration, and profile endpoints. Guest checkout support and role-based access on the roadmap.

Notifications

Notification module scaffolded and ready. Email notifications via Celery are coming — the architecture already supports async tasks.

Docker-First Dev

One command spins up the entire stack — Django, PostgreSQL, and future Redis/Celery — all containerised and environment-configured.

Clean endpoints. RESTful by design.

All endpoints follow REST conventions and return JSON. Versioned at /api/v1/ so breaking changes never surprise your frontend.

GET /api/v1/products/ Catalog
POST /api/v1/carts/ Cart ops
GET /api/v1/wishlists/ Wishlist
POST /api/v1/orders/ Orders
POST /api/v1/payments/ Payments
POST /api/v1/users/ Auth
example — fetch products
// Fetch the product catalog
// Replace with your deployed domain

const response = await fetch(
  "https://your-domain.com/api/v1/products/",
  {
    method: "GET",
    headers: {
      "Content-Type": "application/json",
      "Authorization": "Token <your-token>"
    }
  }
);

const data = await response.json();
// → { count: 42, results: [ ... ] }

// POST a new cart item
await fetch("/api/v1/carts/", {
  method: "POST",
  body: JSON.stringify({
    product_id: 7,
    quantity:   2
  })
});

Built for scale from day one.

Structured for the real world — clean separation of concerns and a clear path to microservices when you're ready.

01 / LAYERS

Service-Layer Architecture

Business logic lives in a dedicated services/ layer — separate from views and models. Keeps API handlers thin, and logic testable in isolation.

02 / MODULES

Domain-Based Apps

Each domain (users, products, orders…) is an independent Django app under apps/. Add, remove, or replace domains without touching unrelated code.

03 / ASYNC

Celery-Ready Tasks

Background jobs live in tasks/ and are Celery-ready. Hook in Redis and you have async processing with zero refactoring.

04 / CORE

Shared Utilities

Cross-cutting concerns — exceptions, base serializers, permissions — centralised in core/ so they're consistent across every app.

05 / DEPLOY

Docker Compose Stack

One docker compose up gives you Django + PostgreSQL running together. The compose file lives in docker/, keeping the project root clean.

06 / FUTURE

Microservices Path

Because apps are decoupled and communicate via service layers, breaking Sellaris into microservices later is a refactor — not a rewrite.

Roadmap

Sellaris is actively developed. Here's what's in progress and what's planned.

Payment Integration

Flutterwave & Paystack — gateway hooks are in place.

Auth & Authorisation

JWT/Token auth with role-based access. Guest checkout included.

Security Hardening

Rate limiting, input validation, and secure payment verification.

Product Variants & Inventory

Size, colour, and stock level tracking per SKU.

Order Tracking

Real-time status updates from placed → fulfilled.

Email Notifications

Transactional emails sent asynchronously via Celery.

API Rate Limiting

DRF throttling + Redis-backed rate limiting per user/IP.

Admin Dashboard

Enhanced Django admin with analytics and order views.

Everything you need to know.

Read about how Sellaris works, how to deploy it, and how to integrate it with your service.

Docs are embedded. Once the repo is public, update js/docs.js to fetch live from GitHub.
Loading…

We test it. Regularly.

Sellaris undergoes routine testing to ensure every module keeps working as the codebase grows.

● Passing

Product API

CRUD operations, list filtering, and pagination covered with unit and integration tests.

● Passing

Cart Logic

Add-to-cart, update quantity, and remove-item flows tested end-to-end via the DRF test client.

◐ In Progress

Order Workflow

Order creation and status transition tests being written as the order module stabilises.

◐ In Progress

Payment Verification

Mock gateway responses being introduced for payment unit testing.

○ Planned

Auth & Permissions

Full token auth and permission boundary tests planned alongside the auth module.

○ Planned

Load & Rate Limiting

Performance and throttling tests scheduled after rate limiting is implemented.

Up and running in minutes.

All you need is Docker and Docker Compose. No local Python setup required.

01

Clone the repository

Pull Sellaris from GitHub to your local machine.

git clone https://github.com/occupythemind/sellaris-backend.git
02

Create your .env file

Add a .env file in the project root with your database credentials and secret key.

cp .env.example .env && nano .env
03

Start the Docker stack

Builds and runs Django + PostgreSQL together inside containers.

docker compose --env-file .env -f docker/docker-compose.yml up --build
04

Hit the API

Django listens at http://localhost:8000. Try the products endpoint to verify it's running.

curl http://localhost:8000/api/v1/products/

Power your store with Sellaris.

Open source, MIT licensed, actively maintained. Fork it, extend it, ship with it.