24/7 emergency support, real-time tracking, incident reporting, and community-driven protection — all in one platform.
Features • Screenshots • Tech Stack • CI/CD & DevOps • Installation • Structure • Security • Roadmap
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.
- 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
- 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
- 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
- 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
- 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
- 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
| 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) |
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.
┌──────────┐ ┌──────────┐ ┌──────────────┐ ┌───────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐
│ 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
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 |
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 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 |
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
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
| 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 downKubernetes 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.yamlConfigurable via values.yaml: replica count, resource limits, autoscaling thresholds, MySQL credentials, and image tags.
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 AWSAnsible 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.ymlEvery 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 allowedPremium glassmorphic hero with animated headline, morphing text ("Built for every woman / every night / every campus"), horizontal ticker, and gradient CTAs.
Hexagonal honeycomb layout showcasing all 6 core safety features with glowing borders and hover effects.
Vertical timeline with animated pulse nodes showing the 4-step onboarding process.
About section with marquee banner, team description, and glassmorphic content cards.
Secure login page with glassmorphic form, gradient accents, and session-based authentication.
Glassmorphic dashboard with safety stats, recent activity, and quick-action cards.
Report form with location dropdown, incident type selector, photo upload, and anonymous mode.
Detailed analytics with safety patterns, response metrics, and community intelligence visualizations.
Side-by-side forms for requesting a walk (with campus location dropdowns) and volunteering as a walker.
Interactive heat map visualization of reported incidents across the campus.
Verified safe locations including shelters, police stations, and women-friendly businesses with interactive map.
Track and manage reported incidents with status updates, resolution tracking, and case history.
- 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
# 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# 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"// 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');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
| 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 |
| 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 |
- 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
Built with dedication by students passionate about women's safety and modern web development.
This project is licensed under the MIT License — see the LICENSE file for details.
We welcome contributions! Here's how:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Built with ❤️ for every woman, every night, every journey.














