This is a submission for Weekend Challenge: Passion Edition
What I Built
Petal is a daily journal and self‑growth companion that helps people track the good they do, reflect on their challenges, and stay motivated to become better versions of themselves.
The app allows users to:
- Log something good they did each day
- Log something they want to improve (a lesson learned)
- Make a promise to themselves and receive a gentle reminder to keep it
- Receive personalized encouragement from a pink, talking doll named Petal
- See their progress with stats, streaks, and a performance bar
- Chat with an AI assistant that offers wisdom, comfort, and motivation
Petal is not just an app — it is a reflection of who I am. I built it because I believe the world needs more people doing more good than bad — for others, for themselves, and for the environment. I love humanity, and I love helping others. That is what makes me happy. I wish to people doing good to another more than doing bad
**
Demo login email: maxwellmabona581@gmail.com, password: Mabona
🌐 Live Demo: https://mabona.firstsuninvestment.com/devweekendchallenge
📱 Screenshots:
Video Walkthrough: Watch Petal in action
Code
🐙 GitHub Repository: https://github.com/mabona011145629/devweekendchallenge
The repository contains all source files, including:
-
index.php— Login and registration -
dashboard.php— Main user dashboard -
results.php— Response page with the talking doll -
github_ai.php— AI chat integration with database fallback -
petal_responses.sql— The complete database of 180+ encouraging responses - PWA manifest and service worker for offline support
How I Built It
I built Petal with a mobile-first, human-centred approach. The goal was not just to create a tool, but to create a companion — something that feels alive, warm, and genuinely caring.
Technical Stack:
- Frontend: HTML, CSS (with glass‑morphism and smooth animations), JavaScript
- Backend: PHP (vanilla, no frameworks)
- Database: MySQL (hosted on cPanel)
- AI Integration: GitHub Models API with a smart database fallback
- Text‑to‑Speech: Web Speech API for the talking doll
- Voice Input: Web Speech Recognition API
- PWA: Service worker + manifest for offline and home‑screen installation
Key Features & Decisions:
The Talking Doll – I designed a pink, animated SVG character that speaks the user's responses using the Web Speech API. The doll's mouth moves when it talks, and it has a speech bubble that appears above its head. This makes the experience feel like a real conversation.
Smart Response System – Instead of relying purely on an AI API, I built a database of 180+ pre‑written responses (categorised by keywords, tone, and sentiment). If the AI is unavailable, the app falls back to these responses seamlessly. The system also detects user intent — whether they are greeting, thanking, sharing joy, or expressing sadness — and responds appropriately.
Promise Tracker – Users can make a promise to themselves. The app reminds them after a set time (configurable) to check in and complete their promise. This builds accountability and self‑discipline.
Progress Visualisation – The dashboard shows stats, streaks, and a performance bar that visualises the ratio of "good" entries to "challenges." This gives users a clear picture of their growth over time.
Mobile‑First & PWA – The app is fully responsive and works as a Progressive Web App. Users can install it on their phone's home screen and use it offline.
Voice Input – Users can speak their entries instead of typing, making the app more accessible and natural to use.
Prize Categories
I am not submitting to any specific prize category (Snowflake, Solana, ElevenLabs, or Google AI). My focus was on building a meaningful, working product that solves a real human need — encouraging goodness, self‑reflection, and growth.
One Final Thought
I started programming because I wanted to help my mother. I keep programming because I want to help the world.
Petal is my way of reminding people that they are worthy, they are enough, and they are loved. It is a gentle nudge to do more good than bad — not just for others, but for themselves.
I love humanity. I love helping others. That makes me happy.
And if Petal helps even one person feel a little better about themselves, then every line of code I wrote was worth it.
🌱 Be kind. Do good. Grow every day.
— Mabona Maxwell Sihlongonyane
📧 maxwellmabona581@gmail.com
🐙 GitHub
🌐 Portfolio
About the Author
I am a software developer, network engineer, and robotics teacher from Eswatini volunteering. I am passionate about building technology that empowers people and communities. This project is a reflection of my deepest values: goodness, kindness, and growth.




Top comments (0)