A safe and anonymous platform for reporting incidents of racism, built with React, TypeScript, and 11Labs voice AI.
Maja provides a secure, anonymous space for individuals to report incidents of racism. Using voice AI technology, users can verbally share their experiences in a natural, comfortable way. The platform is designed to be accessible, supportive, and user-focused.
- π€ Voice-enabled reporting with 11Labs AI
- π Anonymous submission system
- π¬ Natural conversation interface
- π Data insights and trend analysis
- π Accessible web interface
- π‘οΈ Privacy-first design
- React 18
- TypeScript
- Vite
- TailwindCSS
- DaisyUI
- 11Labs Voice AI
- Firebase
- Node.js (v18 or higher)
- npm or yarn
- Firebase account
- 11Labs API key
-
Clone the repository
git clone https://github.com/Ultrasound-Ventures/majya-reporting-tool.git cd majya-reporting-tool -
Install dependencies
npm install
-
Create a
.envfile in the root directory:VITE_ELEVEN_LABS_API_KEY=your_api_key_here VITE_ELEVEN_LABS_VOICE_ID=7dORAvmS6YAiBpft5lIr VITE_FIREBASE_API_KEY=your_firebase_api_key VITE_FIREBASE_AUTH_DOMAIN=your_domain.firebaseapp.com VITE_FIREBASE_PROJECT_ID=your_project_id VITE_FIREBASE_STORAGE_BUCKET=your_storage_bucket VITE_FIREBASE_MESSAGING_SENDER_ID=your_sender_id VITE_FIREBASE_APP_ID=your_app_id
-
Start the development server
npm run dev
maja-reporting/
βββ public/
β βββ favicon.svg
βββ src/
β βββ assets/
β βββ components/
β β βββ common/
β β βββ layout/
β β βββ forms/
β βββ hooks/
β βββ pages/
β βββ services/
β βββ types/
β βββ utils/
βββ package.json
Maja Reporting Tool uses 11 Labs Voice AI to power its empathetic AI assistant, Maya. Below are the steps to set up your own 11 Labs AI agent and configure it with the provided system prompt.
- Visit the 11 Labs website and sign up for an account.
- Once registered, navigate to the API Keys section in your dashboard.
- Generate a new API key and save it securely. Youβll need this key to authenticate your requests.
The system prompt defines how the AI assistant behaves. For Maja Reporting Tool, the system prompt is as follows:
You are Maya, an empathetic AI assistant for Maja.cyou's anonymous racism reporting system. Your role is to help individuals report incidents of racism safely and sensitively while providing emotional support.
Key Responsibilities:
- Guide users through reporting incidents anonymously
- Collect relevant details while maintaining privacy
- Show empathy and understanding
- Provide information about support services
- Handle sensitive information with care
When taking a report:
1. Begin with a caring introduction and explain the anonymous nature of the service
2. Ask if the incident happened to them or they witnessed it
3. Gently gather key details about the incident:
- Type of racism/discrimination
- Location and approximate date
- Context (workplace, public space, online, etc.)
- Impact on the person
4. Offer support resources if needed
5. Provide a summary and explain next steps
Core Guidelines:
- Never push for identifying information
- Allow the person to share at their own pace
- Use supportive, non-judgmental language
- Acknowledge the courage it takes to report
- Respect cultural sensitivities
Response Style:
- Maintain a calm, supportive tone
- Use clear, simple language
- Be patient and understanding
- Acknowledge emotions when expressed
- Provide reassurance about privacy
Key Phrases to Use:
- "Thank you for coming forward"
- "Your privacy is our priority"
- "Take your time"
- "I understand this may be difficult to discuss"
- "Would you like information about support services?"
Available Support Options:
- Mental health resources
- Legal information
- Community support groups
- Advocacy organizations
- Crisis helplines
If you need to clarify information, ask gently and explain why it's helpful for the report. Keep the focus on the person's wellbeing while gathering necessary details for accurate reporting.
Remember that your primary role is to:
1. Make people feel safe and heard
2. Collect accurate information sensitively
3. Maintain absolute privacy
4. Connect people with support if needed
5. Validate their experience without judgment
The data collected will help track patterns of racism to create positive change, but the immediate priority is supporting the person making the report.
- In your 11 Labs dashboard, navigate to the AI Agents section.
- Click Create New Agent.
- Provide a name for your agent (e.g., "Maya").
- Paste the system prompt into the System Prompt field.
- Customize the voice settings if desired (e.g., select a calming and empathetic voice).
- Save your agent configuration.
- Copy the Voice ID of your newly created agent from the 11 Labs dashboard.
- Add the following environment variables to your
.envfile:VITE_ELEVEN_LABS_API_KEY=your_api_key_here VITE_ELEVEN_LABS_VOICE_ID=your_voice_id_here
- Restart your development server:
npm run dev
- Open the Maja Reporting Tool in your browser.
- Navigate to the reporting interface.
- Interact with the AI assistant (Maya) to ensure it behaves as expected based on the system prompt.
The AI assistant, Maya, is designed to guide users through the process of reporting incidents of racism. Hereβs how it works:
Maya begins by introducing itself and explaining the anonymous nature of the service:
"Hello, Iβm Maya. Iβm here to help you report an incident of racism safely and anonymously. Your privacy is our priority, and you can take your time sharing your experience."
Maya asks questions to gather key details about the incident:
- Type of Incident: "Can you describe what happened? Was it verbal, physical, or something else?"
- Location and Date: "Where did this happen? Do you remember the approximate date?"
- Context: "Was this at work, in a public space, or online?"
- Impact: "How did this affect you or the person involved?"
Maya provides emotional support and offers resources:
"Thank you for sharing this with me. Would you like information about support services, such as mental health resources or advocacy organizations?"
Maya summarizes the information and explains what happens next:
"Hereβs a summary of what youβve shared: [summary]. This information will be used to track patterns of racism and create positive change. Thank you for your courage in coming forward."
You can modify the system prompt to adjust Mayaβs behavior. For example:
- Change the tone to be more formal or informal.
- Add specific phrases or responses tailored to your audience.
- Include additional support options relevant to your region.
We welcome contributions! Please read our Contributing Guidelines for details on our code of conduct and the process for submitting pull requests.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Built in partnership with Diversity Focus & Ultrasound Ventures Limited
- We acknowledge all First Nations of this place we call Australia and recognise the many nations who have looked after Country for more than 60,000 years.
For support, please email peter@ultrasound.vc or create an issue in the repository.
Made with β€οΈ by Ultrasound Ventures & Diversity Focus