-
Phase 1: Initial Setup and Simulator Creation (1-2 Weeks)
-
Phase 2: Refine Prototype with Offline and Data Sovereignty Features (2-3 Weeks)
-
Phase 3: Core Features Development and MVP (4-6 Weeks)
Objective: Build a basic prototype using FOSS tools and simulate interactions using an LLM to represent both grant opportunities and user responses.
-
Tech Stack Setup:
- TypeScript: Set up a TypeScript project for backend logic and frontend components.
- Supabase: Configure Supabase for database management (for user projects, grant opportunities, and proposals). This can work offline via replication and supports PostgreSQL.
- Trigger.dev: Set up Trigger.dev to manage workflow automations (e.g., notifications, reminders, grant matching).
- WhatsApp Web JS: Integrate WhatsApp Web JS to simulate sending/receiving messages from a WhatsApp Web interface.
- This allows you to interact with the bot via WhatsApp Web and later adapt it for real user interactions.
-
LLM Integration:
- Use an open-source LLM to simulate grant generation and user interactions.
- Generate Grants: Write a script where the LLM creates a database of mock grants.
- Simulate Users: The LLM will also play the role of a user, responding to simple prompts and iterating on the proposal, to simulate a low-literacy user.
- Use an open-source LLM to simulate grant generation and user interactions.
-
Create Basic Workflow:
- User Story Simulation: Define a workflow where the LLM generates a few project ideas (representing the users) and writes a proposal based on those ideas. The bot should help refine the proposal by giving feedback, correcting sections, and guiding the user to submit the proposal.
-
Simulator Testing:
- Test the entire loop with fake data:
- Generate grants.
- Simulate user interaction (e.g., entering project ideas, receiving feedback).
- Iterate on a basic proposal using predefined templates.
- Send out a mock submission for review.
- Test the entire loop with fake data:
Objective: Implement the core features that allow the bot to function offline and ensure user data is securely stored, respecting data sovereignty principles.
-
Offline Capabilities:
- Supabase Offline Mode: Use Supabase’s offline capabilities or local PostgreSQL with replication features to ensure that users can still interact with the bot even without an internet connection.
- Explore syncing local databases with central instances when the internet becomes available again.
- LLM Deployment: Self-host the open-source LLM on local machines or community servers, ensuring no external data is transmitted. You can deploy models using Hugging Face’s Transformers or FastAPI for efficient API management on local networks.
- Supabase Offline Mode: Use Supabase’s offline capabilities or local PostgreSQL with replication features to ensure that users can still interact with the bot even without an internet connection.
-
User Data Sovereignty:
- Encryption: Implement end-to-end encryption for all messages and project data stored locally. You can use OpenPGP.js for encrypting data.
- Data Ownership: Ensure that users have full control over their data, including the ability to download or delete it. Build in user-friendly export/import functionality for data stored on local servers.
-
Expand Simulation:
- Scale the simulation by adding more complex user scenarios, such as collaboration in a group chat. The LLM will now simulate multiple users contributing to the same project.
- Test the proposal writing process for various types of grants and see how well the bot can assist in structuring proposals based on the input.
Objective: Develop the core features of the WhatsApp bot, including group chat, grant matching, proposal writing assistance, and feedback loops.
-
WhatsApp Bot Core Features:
- Basic Group Chat: Implement the feature where the bot creates a group chat and allows users to collaborate on a grant proposal.
- Grant Matching: Create an automated grant-matching system using data from the user’s project idea and mock grants generated by the LLM.
- Proposal Writing Templates: Integrate pre-defined templates for users to build their proposals, with AI-based suggestions for each section (e.g., objectives, timeline, budget).
- Add the ability for the bot to prompt users for missing information and provide clear explanations of grant requirements.
-
Iterate Using LLM Simulator:
- Refine the prototype based on the LLM’s responses in various user scenarios. For example, simulate a scenario where a user struggles with providing detailed project information, and the bot helps guide them step-by-step.
- Measure how well the simulated user completes the grant proposal based on the bot’s assistance.
-
Feedback and Review Loop:
- Create the mechanism for users to request feedback from local grant writers or other experts. Simulate this process in the group chat, where users tag specialists who provide comments and edits.
- Test the handover process for human-assisted review.
Objective: Finalize all features, integrate real user interactions, and prepare for deployment in real-world scenarios.
-
Real User Testing:
- Start testing the bot with real users from your target communities. Begin with small groups to see how well they interact with the system.
- Collect feedback on usability, accessibility (e.g., voice-to-text functionality), and ease of proposal writing.
-
Iterate and Refine:
- Improve any pain points from the user feedback phase. Focus on simplifying interactions for low-literacy users, enhancing the voice interaction features, and refining the group chat collaboration.
-
Submission Feature:
- Finalize the submission feature, where the bot helps users submit the grant proposal either via direct submission (online) or through a human assistant. Add final verification steps for completeness and formatting before submission.
-
Documentation and Training:
- Create thorough documentation on how to use the bot, ensuring the communities have access to training materials (videos, text, or voice guides).
- Develop training modules for local administrators who will manage the bot's backend and data.
Objective: Scale the project for larger communities and improve offline capabilities, making it ready for deployment in rural or remote areas.
-
Scale the Project:
- Deploy the solution to more communities while ensuring the infrastructure (Supabase, offline LLM, WhatsApp Web JS) can handle larger user bases and multiple simultaneous proposals.
-
Extend Functionality:
- Add more grant sources and refine the grant-matching algorithm to improve the accuracy of the matches.
- Expand on the AI’s ability to provide feedback on proposals, making it more adaptable to different types of grants.
-
Monitoring and Analytics:
- Develop monitoring tools for admins to track proposal progress, user engagement, and the number of grants submitted through the system.
- Integrate analytics to measure the impact of the bot, including how many proposals were accepted, funded, or needed revisions.
- Data Security and Sovereignty: Ensure all data remains under the control of the communities you’re working with, using encrypted databases and secure local hosting.
- Offline-first Design: Prioritize offline functionality so that even in disconnected environments, the system can store and process user interactions.