Skip to content
All projects
Three CMS logoBackend · CMS & API2023

Three CMS

Three CMS pairs Django CMS with the Django REST Framework to manage content and serve it to other applications. It covers authentication and permissions, social content, homepage and app branding, observation forms and retail store data, with scheduled background tasks and activity logging.

  • Python
  • Django
Three CMS admin screens: social posts, the admin dashboard and homepage carousel banners

About the project

The problem, the people, the product.

What it does

A Django back end with an admin CMS and a REST API that powers three interconnected applications.

Who it serves

Administrators who manage content and users, and the applications that consume the API.

The problem

Several applications needed the same users, content and data, with secure access and a way for non-developers to manage everything without code changes.

My contribution

Built the CMS configuration and REST API, including the data models, permissions, admin screens and scheduled tasks.

Implementation highlights

  1. 1

    Authentication, groups and permissions to control who can see and change what.

  2. 2

    Social features: hashtags, favourite feeds, profiles, and scheduled posts with reactions, comments and saves.

  3. 3

    Homepage configuration, including carousel banners, fullscreen takeovers, quick links, key shouts, promotions and app branding.

  4. 4

    Observation forms, question types and questions, with instances and responses tracked for reporting.

  5. 5

    Retail store data organised into stores, areas, regions and users, plus detailed activity logs.

  6. 6

    Background task scheduling with Django Q, tracking successful, failed and queued tasks.

Technologies used

The stack, and why.

  • Python

    Models, permissions and background tasks

  • Django

    Django CMS admin and the REST Framework API

Screens

Inside the product.

Key features

What makes it work.

  • Content management

    Manage social content, homepage banners, promotions and app branding.

  • Secure access

    Authentication, groups and permissions for users and teams.

  • REST API

    One API serving three interconnected applications.

  • Scheduled tasks

    Background jobs with Django Q, tracked as successful, failed or queued.

Version control

Source & repositories.

  • Private Repository

    backend repository

    Azure DevOps

    Source code is private

Start a project

Have a Project Like This?

Whether you're launching a new product, improving an existing platform or exploring an ambitious idea, I'd love to hear about it.

  1. Idea
  2. Plan
  3. Design
  4. Develop
  5. Launch