Logo Lanfrica

johntoby/borderless-hospital-appointment-system

Domain:

healthcare

Record type:

software
Creator:
joh
Host:
A lightweight hospital appointment system for PHCs and small clinics in rural Africa # πŸ₯ Borderless Hospital Appointment System β€” Docker Exercise ## Borderless Tech Academy β€” Academy Project --- ## πŸ“‹ Overview You are given a fully working three-tier web application (frontend, backend, database). Your job is to containerize it by writing all the Docker configuration files from scratch. Application Stack: | Layer | Technology | Folder | |---|---|---| | Presentation | React (served by Nginx) | `frontend/` | | Application | Java 17 + Spring Boot 3.2 | `backend/` | | Data | PostgreSQL 15 | _(Docker image)_ | **What you will create:** 1. `backend/Dockerfile` β€” Multi-stage build for the Spring Boot API 2. `frontend/Dockerfile` β€” Multi-stage build for the React app 3. `frontend/nginx.conf` β€” Nginx configuration for serving React and proxying API calls 4. `docker-compose.yml` β€” Orchestrates all 3 services together --- ## 🎯 Learning Objectives By completing this exercise, you will: - Understand multi-stage Docker builds and why they matter - Write Dockerfiles for Java/Maven and Node.js/React applications - Configure Nginx as a reverse proxy - Use Docker Compose to orchestrate a multi-container application - Understand Docker networking (service name DNS resolution) - Implement health checks and service dependencies - Use named volumes for data persistence --- ## πŸ“– Prerequisites - Docker and Docker Compose installed on your machine - Basic understanding of Docker concepts (images, containers, volumes, networks) - Git installed --- ## πŸ—οΈ Architecture Diagram ``` β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ Docker Compose β”‚ β”‚ β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ β”‚ Frontend β”‚ β”‚ Backend β”‚ β”‚ PostgreSQL β”‚ β”‚ β”‚ β”‚ (Nginx) │──▢│ (Spring Boot)│──▢│ Database β”‚ β”‚ β”‚ β”‚ Port: 3000 β”‚ β”‚ Port: 8080 β”‚ β”‚ Port: 5432 β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ …

Licenses