Voices Unheard is a mission-critical digital platform designed to provide a safe space for war victims, refugees, and survivors of discrimination to share their stories anonymously. As a System Analyst, I defined the technical architecture to ensure "Zero Digital Refoulement"—guaranteeing that no identifiable user data is ever collected or tracked. The platform integrates trauma-informed UI principles with AI-assisted pre-moderation, enabling vulnerable individuals to document their experiences with absolute technical security and emotional support.
Tech Stack
Node.js
Express.js
PostgreSQL
React.js
AI (NLP)
TLS 1.3
AES-256
Tools Used
VS Code
Redis
UML Design
Figma
Key Features
Anonymous Protection
▸Metadata Cleaning: Automated removal of EXIF data and GPS coordinates from all uploaded files to protect user location.
▸Zero IP Logging: Privacy-first logging system that ensures no tracking of user identities or network signatures.
▸Token-based Deletion: Secure token system allowing users to delete their submissions without requiring a persistent account.
Trauma-Informed UI
▸Quick Exit: Always-visible emergency exit button that instantly redirects to neutral sites for physical safety.
▸Content Warnings: Layered consent mechanism requiring users to confirm before viewing potentially triggering media.
▸Empathetic Design: Minimalist, calming interface designed to reduce cognitive load and secondary trauma for survivors.
AI & Moderation
▸Pre-screening Logic: AI-driven NLP system that pre-moderates content for hate speech and high-risk triggers.
▸Crisis Escalation: Automated protocols for identifying crisis situations (suicide threats, etc.) and providing resource lists.
▸Secure Dashboard: Moderator interface designed for reviewing stories without any access to submitter metadata.
Security Infrastructure
▸End-to-End Encryption: Mandatory TLS 1.3 for all communications and AES-256 for data encryption at rest.
▸OWASP Compliance: Hardened backend implementation adhering to top-10 security practices for web applications.
npm install
npm run seed (Optional: Sample AI prompts)
npm start
Challenges & Solutions
Challenge
Survivor Geolocation Risks
Solution
Implemented a server-side interceptor that strips all binary metadata (EXIF/JFIF) from library-level upload requests before the file reaches the database.
Challenge
AI Moderation Accuracy
Solution
Utilized dual-layer moderation—AI for initial risk classification and human review for nuanced emotional context—ensuring survivors feel heard but not judged.
Challenge
Quick Exit Latency
Solution
Developed the Emergency Exit as a client-side listener that bypasses standard routing logic for a sub-100ms response time when clicked.