Independent application services
The API, AI service, landing page, dashboard, Redis broker, and Celery worker run as separate containers connected through a shared Docker network.
Multi-service Islamic platform combining an OpenAI-powered guidance API, Django REST backend, multilingual public website, content administration dashboard, subscription controls, and cloud-hosted video delivery.
01Context
Quranity is a containerized Islamic content platform comprising a multilingual public website, an administration dashboard, a Django API, and a dedicated AI guidance service.
The platform needed to coordinate user accounts, Islamic guidance, prayer-related data, subscriptions, editorial content, and large video assets across independently deployable services.
Create a unified backend and delivery architecture that supports authenticated product features, AI-assisted guidance, content administration, media processing, and repeatable cloud deployment.
The repository separates the system into Django, FastAPI, and Next.js services; processes video asynchronously with Celery and FFmpeg; stores application data in PostgreSQL and media in S3; distributes assets through CloudFront; and deploys Docker images to an EC2 host through GitHub Actions.
02Ownership
The areas I owned end to end as Full-Stack & DevOps Engineer.
Built Django REST APIs for authentication, subscriptions, prayer tools, blogs, notifications, and video content
Developed a source-aware Islamic guidance service with FastAPI and OpenAI
Implemented asynchronous FFmpeg HLS processing with Celery, Redis, S3, and CloudFront
Automated container builds, AWS infrastructure, EC2 configuration, and production deployment
03System design
Layer 01
Two Next.js applications provide a localized public website and an authenticated administration dashboard for users, blogs, and video content.
Layer 02
Django REST Framework exposes JWT-protected APIs for accounts, Google and Apple sign-in, subscriptions, prayer tools, notifications, blogs, and video libraries.
Layer 03
A separate FastAPI service sends English, Arabic, or Albanian questions to OpenAI using seven configurable Islamic perspectives, conversation context, request limits, and citation extraction.
Layer 04
Celery workers use FFmpeg to create HLS playlists and segments, upload generated media to S3 when enabled, and serve those assets through a CloudFront distribution configured by Terraform.
04Engineering judgment
The API, AI service, landing page, dashboard, Redis broker, and Celery worker run as separate containers connected through a shared Docker network.
Video uploads dispatch Celery tasks that probe media, generate HLS renditions with FFmpeg, track processing status, and move completed output to object storage.
Terraform provisions EC2, RDS PostgreSQL, S3, CloudFront, networking rules, and an Elastic IP, while Ansible installs and configures Docker, Nginx, Certbot, project files, and service startup.
05Toolbox
06Capabilities
OpenAI-backed chat with seven guidance perspectives, multilingual responses, conversation history, concise and full modes, rate limiting, and Qur’an or Hadith citation handling.
Email OTP verification, JWT sessions, password recovery, Google and Apple token login, account management, RevenueCat webhook processing, plans, and feature-usage limits.
Administrative workflows for shorts, long videos, series, trailers, and parts, with asynchronous HLS generation and S3 or CloudFront delivery.
English, Arabic, and Albanian public pages with localized metadata and blogs, plus an authenticated dashboard for user statistics, blog publishing, profiles, and content management.
07Problem solving
Challenge 01
Transcoding video during an API request would tie up web workers and make long uploads difficult to operate reliably.
The backend delegates HLS generation to Celery workers, records pending, processing, completed, or failed states, and supports either local media or S3-backed output.
Challenge 02
Four application images, a task worker, a broker, persistent media, database migrations, and domain routing must be updated together.
Docker Compose defines service dependencies and health checks, the backend entrypoint handles database initialization, and GitHub Actions rebuilds images before recreating the EC2 stack.
08Result
Delivered a unified repository for four deployable application services and their supporting worker infrastructure.
Established asynchronous, status-aware HLS processing for large video content.
Codified the AWS environment and EC2 host configuration with Terraform and Ansible.
09Reflection
Long-running media work should be isolated from request-serving processes and designed around explicit processing states.
A multi-service release needs health checks, persistent storage boundaries, database initialization, and proxy routing to be defined together.
Next step
I take on backend, API, and DevOps work — from data modelling and REST design through containerization and production deployment.
A project case study by Md Fahad Mir — Backend & DevOps Engineer, Dhaka, Bangladesh.