A secure, AI-assisted platform where users can anonymously express experiences, access NGO support resources, translate content into regional languages, and safely communicate without exposing identity.
π SafeVoice on Netlify
SafeVoice is a privacy-focused web platform designed to provide a safe digital environment for individuals to anonymously express experiences related to harassment, abuse, discrimination, emotional distress, or social issues.
The platform integrates:
- π Secure Authentication
- π§ AI-powered Text Enhancement
- π Multilingual Translation
- πΌοΈ Media Upload Support
- π NGO Resource Discovery
- β‘ Serverless Backend Infrastructure
The architecture prioritizes:
- Privacy-first design
- Scalability
- Performance optimization
- Modular backend services
- Beginner-friendly open-source contribution
| Feature | Description |
|---|---|
| π Anonymous Publishing | Create, edit, and manage content without exposing identity |
| π AI Translation | Translate content into multiple Indian languages |
| βοΈ AI Grammar Enhancement | Improve text quality before publishing |
| πΌοΈ Media Uploads | Upload audio recordings and images |
| π Secure Authentication | Firebase-based login & signup |
| π NGO Resource Hub | Browse verified support organizations |
| β‘ Serverless APIs | Lightweight backend using Netlify Functions |
| π‘οΈ Abuse Protection | Rate limiting and secured API access |
flowchart LR
A[π€ User] --> B[β React Frontend]
B --> C[π₯ Firebase Authentication]
B --> D[π¦ Firestore Database]
B --> E[β‘ Netlify Serverless Functions]
E --> F[π§ Google Gemini AI]
B --> G[πΌ Media Storage]
D --> H[π Content Collection]
D --> I[π₯ Users Collection]
D --> J[π’ NGO Resources]
F --> K[π Translation Output]
F --> L[βοΈ Grammar Corrected Output]
sequenceDiagram
participant User
participant Frontend
participant FirebaseAuth
participant Firestore
User->>Frontend: Open Login / Signup Page
Frontend->>FirebaseAuth: Send Credentials
FirebaseAuth-->>Frontend: Authentication Token
Frontend->>Firestore: Store User Metadata
Firestore-->>Frontend: User Profile Created
Frontend-->>User: Redirect to Dashboard
- Firebase Authentication validates credentials
- Session tokens are generated securely
- User metadata is stored in Firestore
- Public content remains detached from identity
flowchart TD
A[π€ User Creates Content] --> B[π ShareStory.tsx]
B --> C{Use AI Grammar Enhancement?}
C -->|Yes| D[β‘ correct-grammar.cjs]
D --> E[π§ Gemini AI]
E --> F[βοΈ Enhanced Text]
C -->|No| G[Continue Original Text]
F --> H[π¦ Submit Content]
G --> H
H --> I{Attach Media?}
I -->|Yes| J[πΌ Upload Audio/Image]
I -->|No| K[π Store Text Only]
J --> L[β Media Storage]
L --> M[π Media URL Generated]
M --> N[π₯ Firestore Database]
K --> N
N --> O[π Content Published]
flowchart LR
A[π Existing Content] --> B[β‘ translate.cjs]
B --> C[π§ Google Gemini AI]
C --> D[π Selected Language Translation]
D --> E[β Frontend Display]
- Regional accessibility
- Cross-language communication
- Better outreach for support systems
sequenceDiagram
participant User
participant Frontend
participant Firestore
User->>Frontend: Open Feed Page
Frontend->>Firestore: Fetch Content
Firestore-->>Frontend: Return Content Data
Frontend-->>User: Render Content Cards
- Anonymous content
- Media URLs
- Timestamp metadata
- Translation versions
flowchart LR
A[π€ User Searches NGO] --> B[β Resources.tsx]
B --> C[π₯ Firestore NGO Collection]
C --> D[π NGO Resource Cards]
D --> E[π Contact Information]
flowchart TB
subgraph Frontend
A[Home.tsx]
B[Auth.tsx]
C[ShareStory.tsx]
D[Stories.tsx]
E[Resources.tsx]
F[AdminDashboard.tsx]
end
subgraph Backend
G[Firebase Authentication]
H[Firestore Database]
I[Netlify Functions]
J[Google Gemini AI]
K[Media Storage]
end
A --> B
B --> G
C --> I
I --> J
C --> H
D --> H
E --> H
F --> H
C --> K
K --> H
J --> I
I --> C
- Anonymous publishing
- Minimal personally identifiable information
- Secure authentication flow
- Protected backend APIs
- Firestore security rules
- Abuse prevention mechanisms
flowchart LR
A[π€ User Request] --> B[π Firebase Authentication]
B --> C[π‘ Auth Validation]
C --> D[β‘ Serverless Function]
D --> E[π₯ Firestore Rules]
E --> F[π¦ Database Access]
| Endpoint | Purpose |
|---|---|
| correct-grammar.cjs | AI grammar enhancement |
| translate.cjs | Multi-language translation |
| subscribe.cjs | Newsletter/email subscriptions |
SafeVoice/
β
βββ .github/
β βββ ISSUE_TEMPLATE/
β
βββ netlify/
β βββ functions/
β βββ correct-grammar.cjs
β βββ subscribe.cjs
β βββ translate.cjs
β
βββ public/
β βββ _redirects
β
βββ src/
β βββ components/
β βββ context/
β βββ lib/
β βββ pages/
β βββ App.tsx
β βββ main.tsx
β βββ index.css
β
βββ README.md
βββ package.json
βββ netlify.toml
βββ vite.config.js| Layer | Technology |
|---|---|
| Frontend | React + TypeScript + Tailwind CSS |
| Backend | Firebase + Netlify Functions |
| Database | Firestore |
| Authentication | Firebase Auth |
| AI Integration | Google Gemini AI |
| Deployment | Netlify |
| Storage | Cloud Storage / External Storage |
SafeVoice uses a modular serverless architecture.
- β‘ Faster deployments
- π Easy horizontal scaling
- πΈ Lower infrastructure costs
- π§ Independent backend functions
- π CDN delivery via Netlify
flowchart TD
A[π Home] --> B[π Authentication]
A --> C[π Create Content]
A --> D[π Explore Content]
A --> E[π’ NGO Resources]
A --> F[β FAQs]
A --> G[π Contact]
A --> H[βοΈ Admin Dashboard]
git clone https://github.com/Piyushydv08/SafeVoice.git
cd SafeVoicenpm install
npm install -g firebase-tools
npm install -g netlify-cliCreate a .env file in the root directory.
Add:
- Firebase configuration keys
- Gemini AI API keys
- Storage configuration values
netlify dev- Open the platform in browser
- Sign up securely using Firebase Auth
- Create anonymous content
- Attach optional media
- Improve text using AI grammar enhancement
- Translate content into regional languages
- Browse NGO support resources
Contributions are welcome from developers of all experience levels.
flowchart LR
A[Fork Repository] --> B[Create Branch]
B --> C[Make Changes]
C --> D[Test Changes]
D --> E[Commit Code]
E --> F[Push Branch]
F --> G[Create Pull Request]
SafeVoice is officially part of GirlScript Summer of Code 2026.
Contributors can:
- Improve frontend UI/UX
- Build backend APIs
- Add AI integrations
- Improve accessibility
- Enhance documentation
- Optimize performance
-
Piyush Yadav
- GitHub: https://github.com/Piyushydv08
- LinkedIn: https://www.linkedin.com/in/piyushydv08/
-
Aditi Raj
- GitHub Issues
- Pull Request Discussions
Licensed under the MIT License.
If you found this project useful:
- β Star the repository
- π΄ Fork the project
- π§βπ» Contribute improvements
- π’ Share with others
βCreating a secure space where voices can be heard safely, anonymously, and without fear.β