# Ghaymah SRE Project

This repository contains a full set of SRE and DevOps deliverables for the Ghaymah platform. It includes a health-monitoring web app, a containerized dashboard, an incident postmortem, CI/CD guidance, and a high-traffic architecture design.

## Project Overview

The project is organized into five main parts:

- Q1: API health monitoring app and dashboard
- Q2: Incident postmortem and resilience recommendations
- Q3-CICD: CI/CD workflow and deployment strategy
- Q4: High-traffic architecture design for 15,000 RPS
- Q5: Containerized monitoring service for uptime and SSL checks

## Repository Structure

```text
Ghaymah_Task/
├── Q1/
│   ├── Dashboard/
│   ├── Dockerfile
│   ├── monitor.sh
│   ├── package.json
│   ├── README.md
│   └── server.js
├── Q2/
│   └── readme,md
├── Q3-CICD/
│   ├── README.md
│   └── workflow.yml
├── Q4/
│   ├── GhaymahAPI.png
│   └── README.md
├── Q5/
│   ├── Dockerfile
│   ├── Entrypoint.sh
│   ├── README.md
│   ├── index.html
│   └── monitor.py
└── README.md
```

## What Each Part Includes

### Q1 — API Health Monitor and Dashboard
This section provides a lightweight web service that exposes a health endpoint and serves a dashboard for monitoring service status, response time, and request count.

Key files:
- [Q1/server.js](Q1/server.js)
- [Q1/monitor.sh](Q1/monitor.sh)
- [Q1/Dashboard/index.html](Q1/Dashboard/index.html)

### Q2 — Incident Postmortem
This section documents a major outage caused by memory exhaustion and proposes mitigation strategies such as autoscaling, pagination, and observability improvements.

Key file:
- [Q2/readme,md](Q2/readme,md)

### Q3-CICD — Continuous Integration and Deployment
This section outlines the CI/CD workflow for automating build, test, and deployment processes for the platform.

Key files:
- [Q3-CICD/workflow.yml](Q3-CICD/workflow.yml)
- [Q3-CICD/README.md](Q3-CICD/README.md)

### Q4 — High-Traffic Architecture Design
This section explains how to design a scalable architecture for handling 15,000 requests per second, covering load balancing, caching, database replication, and storage planning.

Key files:
- [Q4/README.md](Q4/README.md)
- [Q4/GhaymahAPI.png](Q4/GhaymahAPI.png)

### Q5 — Containerized Monitoring Service
This section contains a Dockerized monitoring solution that checks uptime, latency, SSL expiry, and dashboard availability using a simple Python script.

Key files:
- [Q5/Dockerfile](Q5/Dockerfile)
- [Q5/monitor.py](Q5/monitor.py)
- [Q5/Entrypoint.sh](Q5/Entrypoint.sh)

## How to Use This Repository

1. Review the documentation in each folder.
2. Run the applications locally as described in their own README files.
3. Use the CI/CD workflow from Q3-CICD for deployment automation.
4. Reference Q4 for the large-scale architecture approach.
5. Use Q5 as a container-based monitoring example.

## Technologies Used

- Node.js / Express
- Python
- Docker
- HTML / CSS / JavaScript
- GitHub Actions workflow-based CI/CD

## Summary

This project demonstrates a practical SRE approach covering monitoring, incident response, automation, scalability, and container-based operations for a production-style platform.

---

## Author

**Gamal Mohamed**

DevSecOps Engineer

Qabilah Profile

```
https://qabilah.com/profile/gamalmohammed0909/
```