Skip to main content
Navigation
HomeTechnical ReferenceJournalGitHubGitHub
Sidebar — toggle document categories via the logo
Dive Schedule — Dive Centre Management Platform

Dive Schedule — Dive Centre Management Platform

April 25, 2021

Overview

Dive Schedule is an all-in-one scheduling and management application for dive centres, split across three repositories. It combines a TypeScript React/Apollo client, a Django GraphQL API server, and Terraform-based AWS infrastructure to deliver booking management, boat scheduling, and a digital diver logbook.

The system powers a production deployment for a real dive operation in Dubai. The three-repository split cleanly separates the frontend, backend, and infrastructure concerns, enabling independent development and dedicated CI/CD pipelines for each.


Key Features

  • Admin booking management: Full admin interface for managing dive bookings
  • Boat scheduling: Plan and coordinate boat departures
  • Digital diver logbook: Record keeping and diver log management
  • Diver information upload: Upload diver details required for booking confirmation
  • Automated CI/CD: Pipelines triggered on push to the main branch
  • Containerized development: Docker Compose for consistent local setup

Architecture

A three-repository architecture decoupling client, server, and infrastructure:

RepositoryRole
client-divescheduleReact / TypeScript / Apollo Client frontend
server-divescheduleDjango / Graphene / GraphQL API
infrastructure-divescheduleTerraform / AWS infrastructure

On AWS, the infrastructure uses ECS for the API and CloudFront for frontend hosting. Automated CI/CD pipelines deploy new builds whenever code is pushed to the main branch, with Docker Compose providing a frictionless local development environment.


Tech Stack

LayerTechnology
ClientReact, TypeScript, Apollo Client, Material UI
ServerDjango, Graphene (GraphQL)
InfrastructureTerraform, AWS (ECS, CloudFront)
Local devDocker Compose
CI/CDAutomated pipelines on push to main