Skip to content

Ankit-Basu/SheShield

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

65 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SheShield Landing Page

🛡️ SheShield

Empowering Women's Safety Through Technology

24/7 emergency support, real-time tracking, incident reporting, and community-driven protection — all in one platform.


FeaturesScreenshotsTech StackCI/CD & DevOpsInstallationStructureSecurityRoadmap

🌟 About SheShield

SheShield is a comprehensive women's safety platform built with a premium, glassmorphic dark-mode UI. It combines real-time emergency response, community-driven escort services, incident reporting with heat-map visualization, and a safety chatbot assistant — all designed to create a safer environment for women on campuses and beyond.

"Technology that protects, empowers, and transforms lives."

The platform features a fully responsive design powered by custom fonts (Clash Display, Satoshi), GSAP scroll animations, Lenis smooth scrolling, and a modular PHP backend with MySQL database integration and PHPMailer-based email notifications.


✨ Key Features

🆘 Emergency SOS System

  • One-tap emergency alerts with live GPS location sharing
  • Instant notification to registered emergency contacts via SMS and email
  • Silent alarm mode for discreet signaling
  • Real-time tracking and status updates during emergencies
  • Works offline with limited connectivity fallback

📝 Incident Reporting

  • Secure incident reporting with photo and location evidence
  • Anonymous reporting option for user safety
  • Predefined campus locations (Block 32, Girls Hostel, Library, etc.)
  • Case tracking with real-time status updates
  • Integration with safety heat maps for pattern analysis

👣 Walk With Us

  • Request verified volunteer walkers for safe campus escorts
  • Dropdown-based pickup/destination selection matching campus locations
  • Availability scheduling with preferred time selection
  • Branded email confirmations sent to both requester and walker
  • Walker registration system with area preference selection
  • Live walker count showing active volunteers nearby

💬 Safety Chatbot Assistant

  • Floating chatbot widget on the landing page (bottom-right)
  • 6 predefined quick-reply topics covering incident reporting, SOS usage, Walk With Us, data privacy, emergency contacts, and safe spaces
  • Animated message bubbles with typing delay simulation

🗺️ Safety Heat Map & Safe Spaces

  • Interactive heat map powered by community-reported incident data
  • Real-time area safety analysis with color-coded danger zones
  • Verified women-friendly establishments, shelters, and police stations
  • Interactive map with directions and contact details

📊 Premium Dashboard

  • Glassmorphic dark-mode UI with gradient accents
  • Personalized safety statistics and analytics
  • Incident history tracking and complaint management
  • Emergency contact management
  • Walk request history and active walk status
  • Settings panel with profile customization

💻 Tech Stack

Frontend Backend Libraries & APIs DevOps & Infrastructure
• HTML5 / CSS3
• Vanilla JS (ES6+)
• TailwindCSS
• Custom Fonts (Clash Display, Satoshi)
• Glassmorphism Design System
• PHP 8.2+
• MySQL / MySQLi
• RESTful API Architecture
• MVC Pattern
• Session-based Auth
• GSAP 3.12 + ScrollTrigger
• Lenis Smooth Scroll
• VanillaTilt.js
• PHPMailer (SMTP)
• Geolocation API
• Font Awesome 6.5
• Docker & Docker Compose
• Jenkins (CI/CD Pipeline)
• GitHub Actions
• SonarQube (Code Quality)
• Aqua Trivy (Security Scan)
• Sonatype Nexus (Artifact Registry)
• Prometheus & Grafana (Monitoring)
• Kubernetes & Helm (Orchestration)
• Terraform & AWS (Cloud IaC)
• Ansible (Config Management)
• Husky & Commitlint (Git Hooks)

🔄 CI/CD & DevOps Pipeline

SheShield implements a production-grade, fully automated DevOps pipeline using an end-to-end Infrastructure-as-Code (IaC) approach. Every code push triggers a multi-stage pipeline that builds, scans, analyzes, pushes, and deploys the application automatically.

Pipeline Architecture

  ┌──────────┐    ┌──────────┐    ┌──────────────┐    ┌───────────┐    ┌──────────┐    ┌──────────┐    ┌──────────┐
  │ Checkout  │───▶│  Build   │───▶│ Security Scan│───▶│ SonarQube │───▶│  Push to │───▶│ Deploy to│───▶│  Monitor │
  │   SCM     │    │  Docker  │    │  (Trivy)     │    │ Analysis  │    │  Nexus   │    │   K8s    │    │ (Grafana)│
  └──────────┘    └──────────┘    └──────────────┘    └───────────┘    └──────────┘    └──────────┘    └──────────┘
       │                │                │                  │               │               │               │
    GitHub          Dockerfile       CVE Scanning      Code Quality    Docker Registry   Kubernetes    Prometheus
    Actions         Multi-stage      HIGH/CRITICAL      16k+ LOC       Sonatype Nexus    3 Replicas    + Grafana

🏗️ Jenkins Pipeline (7 Stages)

The Jenkins pipeline (infrastructure/jenkins/Jenkinsfile) executes the following stages on every build:

Stage Tool Description
1. Checkout SCM Git Pulls latest code from GitHub repository
2. Build Docker Image Docker Builds the PHP 8.2-Apache image with all dependencies
3. Security Scan Aqua Trivy Scans Docker image for HIGH/CRITICAL CVEs
4. SonarQube Analysis SonarQube Static code analysis — bugs, vulnerabilities, code smells
5. Push to Nexus Sonatype Nexus Pushes versioned Docker image to private artifact registry
6. Deploy to K8s Kubernetes Rolling deployment with 3 replicas + MySQL service
7. Post Actions Jenkins Cleanup workspace, success/failure notifications
Jenkins Pipeline — All Stages Green
Jenkins Pipeline — Build #11 with all 7 stages passing ✅

🐙 GitHub Actions CI/CD

A parallel GitHub Actions workflow (.github/workflows/main.yml) runs on every push to master:

  • PHP 8.2 Setup with pdo_mysql, mysqli, gd, zip extensions
  • Composer & NPM dependency installation
  • Aqua Trivy filesystem security scan
  • Docker image build validation
  • Deployment gate for production releases

🔍 SonarQube — Code Quality & Security Analysis

SonarQube performs deep static analysis across 16,000+ lines of code in 9 languages (PHP, JavaScript, CSS, HTML, YAML, Docker, Terraform, XML, JSON):

Metric Value
Lines of Code 16,470
Security Issues 23
Reliability (Bugs) 229
Maintainability (Code Smells) 814
Duplications 11.0%
Quality Gate ✅ Passed
SonarQube Dashboard — Code Quality Results
SonarQube Dashboard — Full code quality analysis with Quality Gate passed

📦 Sonatype Nexus — Docker Artifact Registry

All Docker images are versioned and stored in a private Sonatype Nexus repository, enabling:

  • Immutable artifact versioning — every Jenkins build pushes sheshield:<build_number> + sheshield:latest
  • Docker V2 Registry protocol on port 8082
  • Manifest and layer deduplication for storage efficiency
  • Rollback capability — pull any previous version instantly
Nexus Repository — Docker Images
Sonatype Nexus — sheshield Docker image with manifests, blobs & versioned tags

📊 Grafana & Prometheus — Infrastructure Monitoring

A fully automated monitoring stack deployed via Docker Compose with Infrastructure-as-Code provisioning:

  • Prometheus — Metrics scraping (self-metrics + Docker Engine)
  • Grafana — 16-panel auto-provisioned dashboard with:
    • 🟢 Service health status indicators
    • 📈 CPU, Memory, and Heap utilization graphs
    • 🌐 HTTP request rate by handler (stacked %)
    • 🧵 Goroutine tracking and GC cycle analysis
    • 📦 TSDB storage metrics (chunks, samples/sec)
    • 📋 File descriptor monitoring
Grafana Monitoring Dashboard
Grafana Infrastructure Monitor — Real-time observability with 16 auto-provisioned panels

🐳 Docker & Kubernetes

Component Configuration
Dockerfile Multi-stage PHP 8.2-Apache build with Composer, GD, PDO, and security hardening
Docker Compose Unified stack: Prometheus + Grafana + SonarQube + Nexus (one command start/stop)
Kubernetes 3-replica Deployment + LoadBalancer Service + MySQL + HPA in sheshield namespace
Nexus Registry Docker-hosted repo at 127.0.0.1:8082 with HTTP connector
# Start ALL DevOps tools with one command
docker compose -f infrastructure/docker-compose.yml up -d

# Stop everything
docker compose -f infrastructure/docker-compose.yml down

⎈ Helm Chart

Kubernetes deployments are packaged as a Helm chart for environment-specific configuration:

# Preview what Helm will deploy
helm template sheshield infrastructure/helm/sheshield

# Install to cluster
helm install sheshield infrastructure/helm/sheshield --namespace sheshield --create-namespace

# Override values for production
helm install sheshield infrastructure/helm/sheshield -f production-values.yaml

Configurable via values.yaml: replica count, resource limits, autoscaling thresholds, MySQL credentials, and image tags.


🌍 Terraform & AWS (Infrastructure-as-Code)

Terraform provisions the complete AWS infrastructure with 100% Free Tier resources:

Resource Type Monthly Cost
EC2 t2.micro (1 vCPU, 1GB RAM) $0.00 (Free Tier)
RDS MySQL db.t3.micro $0.00 (Free Tier)
S3 5GB storage $0.00 (Free Tier)
ECR Private Docker registry $0.00 (500MB free)
VPC VPC + IGW + Subnets $0.00 (Always free)
Total $0.00/mo
cd infrastructure/terraform
terraform init
terraform plan        # Preview what will be created (no cost)
terraform apply       # Deploy to AWS

🔧 Ansible (Configuration Management)

Ansible automates EC2 server provisioning — installs PHP, Apache, Docker, deploys the app, and starts the monitoring stack:

# Run playbook against your EC2 server
cd infrastructure/ansible
ansible-playbook -i inventory.ini playbook.yml

🐶 Husky & Commitlint (Git Hooks)

Every commit is automatically validated against Conventional Commits format:

# ✅ Valid commits
git commit -m "feat(auth): add password reset flow"
git commit -m "fix: resolve SOS button race condition"
git commit -m "docs: update README with DevOps pipeline"

# ❌ Rejected commits
git commit -m "fixed stuff"          # No type prefix
git commit -m "FEAT: ADD FEATURE"    # Uppercase not allowed

📸 Screenshots

Landing Page

Premium glassmorphic hero with animated headline, morphing text ("Built for every woman / every night / every campus"), horizontal ticker, and gradient CTAs.

Landing Page

Safety Services — Honeycomb Grid

Hexagonal honeycomb layout showcasing all 6 core safety features with glowing borders and hover effects.

Safety Services

How It Works — Timeline

Vertical timeline with animated pulse nodes showing the 4-step onboarding process.

How It Works

About SheShield

About section with marquee banner, team description, and glassmorphic content cards.

About SheShield

Sign In

Secure login page with glassmorphic form, gradient accents, and session-based authentication.

Sign In

Dashboard

Glassmorphic dashboard with safety stats, recent activity, and quick-action cards.

Dashboard

Incident Reporting

Report form with location dropdown, incident type selector, photo upload, and anonymous mode.

Incident Reporting

Safety Analytics

Detailed analytics with safety patterns, response metrics, and community intelligence visualizations.

Safety Analytics

Walk With Us

Side-by-side forms for requesting a walk (with campus location dropdowns) and volunteering as a walker.

Walk With Us

Safety Heat Map

Interactive heat map visualization of reported incidents across the campus.

Safety Heat Map

Safe Spaces

Verified safe locations including shelters, police stations, and women-friendly businesses with interactive map.

Safe Spaces

Complaints & Case Management

Track and manage reported incidents with status updates, resolution tracking, and case history.

Complaints Management

🚀 Installation

Prerequisites

  • PHP 8.2 or higher
  • MySQL 5.7 or higher
  • Docker Desktop (for CI/CD and monitoring stack)
  • XAMPP / WAMP / MAMP (or any Apache + MySQL stack)
  • PHPMailer (included in /PHPMailer/)
  • Gmail account with App Password for SMTP email

Quick Setup

# 1. Clone the repository
git clone https://github.com/Ankit-Basu/SheShield.git
cd SheShield

# 2. Place in your web server's document root
# For XAMPP: copy to C:/xampp/htdocs/sheshield/

# 3. Import the database
# Open phpMyAdmin → Import → Select database/mysqli_db.php
# The database auto-creates tables on first run

# 4. Configure email (for Walk With Us notifications)
cp app/config/email_config.example.php app/config/email_config.php
# Edit email_config.php with your Gmail + App Password

# 5. Access the application
# Landing page: http://localhost/sheshield/pro/landing.html
# Dashboard:    http://localhost/sheshield/views/pages/dashboard.php

🐳 DevOps Stack Setup

# Start the monitoring stack (Prometheus + Grafana)
cd infrastructure/monitoring
docker-compose up -d

# Access monitoring tools
# Grafana:    http://localhost:3000  (admin/admin)
# Prometheus: http://localhost:9090

# Start Nexus artifact registry
docker run -d --name nexus -p 8081:8081 -p 8082:8082 sonatype/nexus3:latest
# Nexus UI:   http://localhost:8081  (admin/admin)

# SonarQube code quality server
docker run -d --name sonarqube -p 9000:9000 sonarqube:latest
# SonarQube:  http://localhost:9000

# Run SonarQube scan manually
docker run --rm -v "%cd%:/usr/src" sonarsource/sonar-scanner-cli \
  "-Dsonar.projectKey=sheshield" \
  "-Dsonar.sources=." \
  "-Dsonar.host.url=http://host.docker.internal:9000" \
  "-Dsonar.token=YOUR_SONAR_TOKEN"

Email Configuration

// app/config/email_config.php
define('SMTP_HOST', 'smtp.gmail.com');
define('SMTP_USERNAME', 'your-email@gmail.com');
define('SMTP_PASSWORD', 'your-app-password');  // Google App Password
define('SMTP_PORT', 587);
define('SMTP_ENCRYPTION', 'tls');
define('DEFAULT_FROM_EMAIL', 'your-email@gmail.com');
define('DEFAULT_FROM_NAME', 'SheShield');

📋 Project Structure

SheShield/
├── .github/
│   └── workflows/
│       └── main.yml                # GitHub Actions CI/CD pipeline
├── api/                            # RESTful API endpoints
│   ├── auth/                       # Login, signup, session verification
│   ├── incidents/                  # Incident CRUD operations
│   └── walks/                      # Walk request & walker registration APIs
│       ├── request_walk.php
│       └── send_walk_email.php     # Branded email sender
├── app/
│   ├── config/                     # Email config, database config
│   ├── controllers/                # Business logic controllers
│   ├── middleware/                  # Session bootstrap, auth middleware
│   └── models/                     # Database connection (mysqli_db.php)
├── auth/                           # Authentication handlers
│   ├── simple_login.php            # Login with session management
│   └── signup.php                  # User registration
├── infrastructure/
│   ├── docker-compose.yml          # Unified DevOps stack (Prometheus+Grafana+SonarQube+Nexus)
│   ├── docker/
│   │   └── Dockerfile              # Multi-stage PHP 8.2-Apache build
│   ├── jenkins/
│   │   └── Jenkinsfile             # 7-stage CI/CD pipeline
│   ├── kubernetes/
│   │   └── deployment.yaml         # K8s deployment (3 replicas) + MySQL
│   ├── helm/sheshield/             # Helm chart
│   │   ├── Chart.yaml              # Chart metadata
│   │   ├── values.yaml             # Configurable values
│   │   └── templates/              # K8s manifest templates
│   ├── terraform/                  # AWS Infrastructure-as-Code
│   │   ├── main.tf                 # VPC, EC2, RDS, S3
│   │   ├── ecr.tf                  # Docker registry (ECR)
│   │   ├── variables.tf            # Input variables
│   │   ├── outputs.tf              # Output values
│   │   └── terraform.tfvars.example
│   ├── ansible/                    # Configuration management
│   │   ├── playbook.yml            # Server provisioning playbook
│   │   ├── inventory.ini           # Host inventory
│   │   └── templates/              # Jinja2 templates
│   └── monitoring/
│       ├── prometheus/
│       │   └── prometheus.yml      # Scrape configuration
│       └── grafana/
│           ├── dashboards/
│           │   └── sheshield-overview.json  # 16-panel dashboard
│           └── provisioning/
│               ├── dashboards/dashboards.yml
│               └── datasources/datasource.yml
├── pro/                            # Premium landing page
│   ├── landing.html                # Main landing page (glassmorphic UI + chatbot)
│   ├── css/premium.css             # Design system (1300+ lines)
│   └── js/premium.js               # GSAP animations, morph text, interactions
├── views/pages/                    # Dashboard pages (PHP)
│   ├── dashboard.php               # Main dashboard
│   ├── report.php                  # Incident reporting form
│   ├── walkwithus.php              # Walk request + volunteer registration
│   ├── analytics.php               # Safety analytics & insights
│   ├── sidebar.php                 # Navigation sidebar component
│   ├── settings.php                # User settings
│   └── toast.php                   # Toast notification component
├── PHPMailer/                      # PHPMailer library
├── public/css/                     # Dashboard CSS (dashboard.css)
├── screenshots/                    # Application & DevOps screenshots
├── database/                       # Database schema & connection
├── fonts/                          # Custom fonts (Clash Display, Satoshi)
└── README.md                       # This file

🔒 Security

Layer Implementation
Authentication Session-based auth with password_hash() / password_verify()
Session Custom session bootstrap with secure cookie settings
Database Prepared statements (MySQLi) to prevent SQL injection
Input Server-side validation and htmlspecialchars() sanitization
Email SMTP with TLS encryption via PHPMailer
Privacy Anonymous incident reporting, no third-party data sharing
Config Sensitive credentials in .gitignore-protected config files
Container Aqua Trivy CVE scanning on every Docker build
Code Quality SonarQube static analysis with Quality Gate enforcement
Registry Private Nexus Docker registry with authentication

🗺️ Roadmap

  • Premium glassmorphic landing page with GSAP animations
  • Honeycomb grid for Safety Services section
  • Vertical timeline for How It Works section
  • Morphing hero text animation
  • Floating chatbot with predefined safety Q&A
  • Walk With Us — branded email notifications
  • Walker registration with email confirmation
  • Campus location dropdowns (matching report locations)
  • Safety analytics dashboard
  • Complaint management system
  • Docker containerization with multi-stage builds
  • Jenkins CI/CD pipeline (7 stages)
  • GitHub Actions parallel CI/CD
  • SonarQube code quality integration
  • Aqua Trivy security scanning
  • Sonatype Nexus artifact registry
  • Kubernetes deployment (3 replicas)
  • Prometheus + Grafana monitoring stack
  • Helm chart for K8s packaging
  • Terraform AWS infrastructure (Free Tier — $0/mo)
  • AWS ECR private Docker registry
  • Ansible server provisioning playbook
  • Husky + Commitlint git hooks
  • Unified Docker Compose (all DevOps tools)
  • Native mobile app (React Native)
  • AI-powered chatbot with NLP
  • Push notifications for SOS alerts
  • Wearable device integration
  • Multi-language support
  • Admin dashboard for moderation

👥 Team

Built with dedication by students passionate about women's safety and modern web development.

📄 License

This project is licensed under the MIT License — see the LICENSE file for details.

🤝 Contributing

We welcome contributions! Here's how:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

🛡️ SheShield — Safety. Support. Empowerment.
Built with ❤️ for every woman, every night, every journey.

About

SheShield is a comprehensive women's safety platform built with a premium, glassmorphic dark-mode UI. It combines real-time emergency response, community-driven escort services, incident reporting with heat-map visualization, and a safety chatbot assistant — all designed to create a safer environment for women on campuses and beyond.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors