Chukwuemerie-ezieke/school-incident-response-playbook-generator

GitHub: Chukwuemerie-ezieke/school-incident-response-playbook-generator

Stars: 0 | Forks: 0

# School Incident Response Playbook Generator ![License](https://img.shields.io/badge/license-MIT-blue.svg) ![Platform](https://img.shields.io/badge/platform-Web%20App-brightgreen) ![NDPA](https://img.shields.io/badge/NDPA%202023-Compliant-orange) ![ISO 27001](https://img.shields.io/badge/ISO%2027001-Aligned-teal) ## Table of Contents - [Overview](#overview) - [Features](#features) - [Incident Types Covered](#incident-types-covered) - [How It Works](#how-it-works) - [Tech Stack](#tech-stack) - [Getting Started](#getting-started) - [Prerequisites](#prerequisites) - [Installation](#installation) - [Development](#development) - [Production Build](#production-build) - [Deployment](#deployment) - [GitHub Pages](#github-pages) - [Other Platforms](#other-platforms) - [Project Structure](#project-structure) - [Regulatory Framework](#regulatory-framework) - [Contributing](#contributing) - [License](#license) - [Credits](#credits) ## Overview African K-12 schools increasingly rely on digital systems — student databases, AI-powered learning tools, online platforms — but most lack a documented incident response procedure. When something goes wrong, staff scramble with no clear protocol. This tool solves that by generating a **customised, printable incident response playbook** in seconds. Staff fill in their school details and incident specifics, and the generator produces: - Phased response steps with urgency labels - NDPC (Nigeria Data Protection Commission) notification templates - Parent/guardian communication emails - Internal staff notices - Evidence preservation checklists - Post-incident review procedures **No data is sent to any server.** Everything runs entirely in the browser. ## Features | Feature | Description | |---------|-------------| | **4 Incident Types** | Data Breach, Harmful AI Output, Algorithmic Bias/Discrimination, Cyberbullying/Online Safety | | **NDPC 72-Hour Clock** | Automatically calculates the regulatory notification deadline from the discovery timestamp | | **Personalised Templates** | Parent email, staff notice, and NDPC notification pre-filled with your school's details | | **Severity Classification** | Low / Medium / High / Critical — tailors the urgency of each response step | | **Print / Save as PDF** | One-click print-optimised output with professional formatting for physical records | | **Copy-to-Clipboard** | Instantly copy any communication template for use in email or messaging | | **Post-Incident Checklist** | 8-step recovery and review process aligned with best practice | | **100% Client-Side** | No backend, no data collection, no cookies — fully offline-capable after first load | | **Mobile Responsive** | Works on phones, tablets, and desktops | | **Dark Mode Support** | Respects system preference | | **Harmony Digital Branding** | Professional branding for Harmony Digital Consults Ltd | ## Incident Types Covered ### 1. Data Breach / Unauthorised Disclosure Covers: hacked accounts, lost/stolen devices, insider errors, system vulnerabilities, third-party vendor breaches. Includes the mandatory NDPC 72-hour notification workflow. ### 2. Harmful AI Output / AI Safety Incident Covers: AI tools generating violent, sexual, extremist, or misleading content in school settings. Includes AI tool suspension protocol, safeguarding escalation, and ISO 42001 governance recommendations. ### 3. Algorithmic Bias / Discrimination Event Covers: AI or system-driven bias in grading, content filtering, student placement, or profiling. Includes automated decision-making rights under NDPA 2023 Section 36, independent audit requirements, and corrective action protocols. ### 4. Cyberbullying / Online Safety Incident ## How It Works ┌─────────────────┐ ┌──────────────────┐ ┌────────────────────┐ │ Step 1 │ │ Step 2 │ │ Step 3 │ │ School Profile │ ──► │ Incident Details │ ──► │ Review & Generate │ │ │ │ │ │ │ │ - School name │ │ - Incident type │ │ - Confirm details │ │ - Principal │ │ - Severity │ │ - Generate │ │ - DPO │ │ - Description │ │ Playbook │ │ - Location │ │ - Data involved │ │ │ └─────────────────┘ └──────────────────┘ └────────────────────┘ │ ▼ ┌────────────────────┐ │ Generated Playbook │ │ │ │ 📋 Response Steps │ │ 📧 Email Templates │ │ ✅ Checklists │ │ 🖨️ Print / PDF │ └────────────────────┘ ## Tech Stack | Technology | Purpose | |-----------|---------| | **React 18** | UI framework | | **TypeScript** | Type safety | | **Vite** | Build tool & dev server | | **Tailwind CSS v3** | Utility-first styling | | **shadcn/ui** | Component library (Radix UI primitives) | | **Wouter** | Lightweight client-side routing (hash-based) | | **Lucide React** | Icon library | | **Plus Jakarta Sans** | Display typography (Google Fonts) | | **DM Sans** | Body typography (Google Fonts) | ## Getting Started ### Prerequisites - **Node.js** >= 18.x - **npm** >= 9.x ### Installation # Clone the repository git clone https://github.com/Chukwuemerie-ezieke/school-incident-response-playbook-generator.git cd school-incident-response-playbook-generator # Install dependencies npm install ### Development # Start the development server npm run dev # The app will be available at http://localhost:5000 The development server supports hot module replacement (HMR) — changes to React components appear instantly without a full page reload. ### Production Build # Build for production npm run build # Output is in dist/public/ The build produces a fully static site (HTML + CSS + JS) with no backend dependencies. ## Deployment ### GitHub Pages This repository includes a GitHub Actions workflow that automatically builds and deploys to GitHub Pages on every push to `main`. **To enable:** 1. Go to your repository **Settings** → **Pages** 2. Under **Source**, select **GitHub Actions** 3. Push to `main` — the workflow handles the rest The site will be live at: https://chukwuemerie-ezieke.github.io/school-incident-response-playbook-generator/ ### Other Platforms The production build (`dist/public/`) is a static site that can be deployed anywhere: | Platform | Command / Method | |----------|-----------------| | **Netlify** | Drag & drop `dist/public/` folder, or connect the repo | | **Vercel** | `vercel --prod` from project root | | **Cloudflare Pages** | Connect repo, build command: `npm run build`, output: `dist/public` | | **AWS S3** | Upload `dist/public/` to an S3 bucket with static hosting enabled | | **Any web server** | Serve the contents of `dist/public/` as static files | ## Project Structure school-incident-response-playbook-generator/ ├── .github/ │ └── workflows/ │ └── deploy.yml # GitHub Actions: build & deploy to Pages ├── client/ │ ├── index.html # HTML entry point │ └── src/ │ ├── App.tsx # Root component with routing │ ├── index.css # Global styles, design tokens, print CSS │ ├── main.tsx # React entry point │ ├── components/ │ │ └── ui/ # shadcn/ui components (Button, Card, etc.) │ ├── hooks/ │ │ ├── use-mobile.tsx # Mobile detection hook │ │ └── use-toast.ts # Toast notification hook │ ├── lib/ │ │ ├── playbook-generator.ts # Core playbook generation logic │ │ ├── queryClient.ts # TanStack Query client │ │ └── utils.ts # Utility functions │ └── pages/ │ ├── Home.tsx # Multi-step intake form │ ├── Playbook.tsx # Generated playbook display │ └── not-found.tsx # 404 page ├── shared/ │ └── schema.ts # TypeScript types and interfaces ├── server/ # Express server (dev only, not needed for static deploy) ├── package.json ├── tailwind.config.ts ├── tsconfig.json ├── vite.config.ts ├── CONTRIBUTING.md ├── LICENSE └── README.md ### Key Files | File | Description | |------|-------------| | `client/src/lib/playbook-generator.ts` | Contains all playbook content logic — response steps, communication templates, and checklists for all 4 incident types | | `client/src/pages/Home.tsx` | Multi-step form with validation (School Profile → Incident Details → Review & Generate) | | `client/src/pages/Playbook.tsx` | Playbook display with tabs (Response Steps, Communication Templates, Post-Incident) | | `shared/schema.ts` | TypeScript interfaces for `SchoolProfile`, `IncidentDetails`, and `PlaybookData` | | `client/src/index.css` | Design tokens (navy/amber palette), Tailwind config, and `@media print` styles | ## Regulatory Framework This tool aligns with the following Nigerian and international frameworks: | Framework | Relevance | |-----------|-----------| | **Nigeria Data Protection Act 2023 (NDPA)** | 72-hour breach notification (Section 40), automated decision-making rights (Section 36), children's data processing requirements | | **Nigeria Data Protection Regulation 2019 (NDPR)** | Legacy data protection framework — still referenced in many school policies | | **Cybercrimes (Prohibition, Prevention, Etc.) Act 2015** | Criminal referral criteria for cyberbullying, hacking, and online abuse | | **Child Rights Act 2003** | Safeguarding obligations for schools handling student data and welfare | | **ISO/IEC 27001:2022** | Information security management — incident response, evidence preservation, recovery | | **ISO/IEC 42001:2023** | AI management system — AI governance, bias mitigation, responsible AI deployment | ## License This project is licensed under the **MIT License**. See [LICENSE](LICENSE) for details.
标签:自动化攻击