Foreward

This application was built with care with the help of Google Gemini and Google AI Studio, I also had Gemini coach me on doing this write up to make it just right for submission.

Inspiration

Inspired by the impactful "Pad a Girl" project in Zambia ( learn more here ), SPDS aims to address the critical issue of menstrual hygiene management and access to sanitary pads, especially in resource-constrained communities. We recognized the need for a discreet, efficient, and scalable solution that empowers girls and women to manage their periods with dignity and without disruption to their education or daily lives. SPDS leverages technology to simplify the process of requesting and receiving sanitary pads, making it as easy and accessible as possible.

What it does

SPDS is a chatbot-based system that allows users to request sanitary pads via WhatsApp. The system guides users through a simple menu, collects necessary information (quantity, delivery address, etc.), and processes the order. A unique order ID is generated for each request, allowing users to check the status of their delivery. The system integrates with RapidPro for flow management and uses FastAPI for the backend API, ensuring a robust and scalable architecture. Additionally, the system leverages the power of Google Gemini for enhanced natural language understanding and more intelligent, personalized interactions with users.

How we built it

SPDS was built using a combination of technologies:

  • RapidPro: Manages the conversational flows of the chatbot, guiding users through the ordering process. Webhooks in RapidPro trigger actions in the backend API.

  • FastAPI: Provides the backend API for handling incoming messages, processing orders, interacting with the database, and integrating with WhatsApp and Google Gemini.

  • WhatsApp Cloud API: Enables users to interact with the system using the widely accessible WhatsApp platform.

  • Google Gemini: Enhances the chatbot's intelligence by providing natural language understanding, generating clarifying questions, and offering personalized recommendations.

  • SQLite Database: Stores order information, enabling order tracking and status updates.

  • Pydantic: Used for data validation and model definition in the FastAPI API, improving code clarity and maintainability.

Challenges we ran into

  • Integrating different APIs: Connecting RapidPro, WhatsApp Cloud API, and Google Gemini required careful coordination and data mapping.

  • Time Constraints: Completing the google gemini integration into Rapidpro for smarter responses to customers was not completed.

  • Scope creep: Completing all the features I had in mind was a little bit difficult in the time I had.

  • ~ Deployment: Deploying to Google cloud run has been a learning curve for me, I haven't completed the deployment yet. ~ Fixed this actually managed to deploy this.

Accomplishments that we're proud of

  • Creating a functional and user-friendly system: SPDS provides a simple and intuitive way for users to request sanitary pads discreetly.

  • Integrating multiple technologies seamlessly: The system integrates several platforms and APIs efficiently.

  • Leveraging Gemini for enhanced user experience and building the application

  • Building a scalable and robust backend: The FastAPI backend provides a solid foundation for future expansion and feature additions.

What we learned

The power of integrating different technologies: I gained valuable experience in combining different APIs and platforms to create a complete solution.

Best practices for API development: We learned how to design and implement robust and efficient APIs using FastAPI and Pydantic.

The importance of user-centered design: Focusing on the user experience was crucial in creating a system that is accessible and easy to use.

What's next for SPDS

Creating a few extra flows in RapidPro and FastAPI to handle the following possibilities:

  • Integration with inventory management systems: Automating stock updates and notifications.

  • Expanding delivery options: Integrating with delivery services for wider reach.

  • User profiling and personalization: Tailoring recommendations and information based on user preferences and needs.

  • Multilingual support: Expanding the system to support multiple languages to reach a users in more rural settings.

  • Data analytics and reporting: Gathering usage data to understand impact and optimize the system.

  • Community partnerships: Collaborating with local organizations to ensure effective distribution and support.

Built With

Share this project:

Updates