Dottie
Chatbot that interprets user datasets on SQL with Gemini API. Produced for a DevPost Hackathon in 2025 and later turned into an Open Source Project.
Install / Use
/learn @lmcrean/DottieREADME
Dottie: Your Period Bestie
Mission
To empower adolescent girls with knowledge about their menstrual health through accessible, friendly AI-powered guidance.
Vision
A world where young people understand their bodies, recognize menstrual health as a vital sign, and feel confident seeking care when needed.
What is Dottie?
Dottie is an AI-powered symptom checker designed specifically for adolescent girls and their caregivers to distinguish between normal and abnormal menstruation patterns, delivered through a friendly, approachable digital mascot.
UI Screenshots
Light Mode
Landing Page
Authentication
Login Screen
Signup Screen
Assessment
Question Flow
Results Page
AI Chat
Chat with Dottie
User (Profile Page)
Profile Overview
Settings
Dark Mode
Landing Page
Authentication
Login Screen
Signup Screen
Assessment
Question Flow
Results Page
AI Chat
Chat with Dottie
User (Profile Page)
Profile Overview
Settings
Problem Statement
The Challenge: Adolescent menstrual health faces three critical barriers:
- Knowledge Gap: Many adolescents and caregivers lack clear understanding of what constitutes normal vs. abnormal menstruation.
- Communication Barrier: Stigma and embarrassment prevent open discussions about menstrual concerns between adolescents, caregivers, and healthcare providers.
- Delayed Care: Without understanding normal parameters, abnormal symptoms often go unreported, leading to delayed diagnosis of underlying conditions like PCOS, endometriosis, or thyroid disorders.
Key Statistics:
- Up to 38% of adolescent girls experience menstrual disorders
- The average delay in diagnosis for endometriosis is 7-10 years, often beginning in adolescence
- 75% of young women report receiving inadequate education about menstrual health
- Only 14% of adolescents consult healthcare providers about menstrual concerns
This problem disproportionately affects underserved communities with limited access to specialized healthcare and comprehensive sexual health education.
Solution: Meet Dottie
Dottie is a conversational AI assistant designed as a friendly, knowledgeable "Period Bestie" for adolescents navigating menstrual health.
Core Features:
- Symptom Assessment: Evaluates menstrual patterns against age-appropriate clinical guidelines.
- Personalized Education: Provides developmentally appropriate explanations based on user's age and knowledge level.
- Decision Support: Helps determine when to seek medical attention vs. when patterns are within normal range.
- Conversation Starters: Provides scripts to help teens discuss concerns with parents and healthcare providers.
Unique Approach:
- Character-Based Interface: Dottie's friendly mascot design reduces stigma and anxiety.
- Medically Accurate: Built on ACOG guidelines and reviewed by adolescent gynecologists.
- Privacy-Centered: Age-appropriate design with strong data protection and privacy controls.
- Accessible Language: Uses clear, non-clinical language with optional educational deep-dives.
- Culturally Responsive: Content addresses diverse cultural contexts and beliefs around menstruation.
How Dottie Works
User Journey:
- Onboarding: Brief questionnaire establishes baseline information about age, menstrual history, and concerns.
- Assessment: When users report concerns or unusual symptoms, Dottie guides them through a conversational assessment using clinically-validated questions.
- Personalized Guidance:
- Green: Reassurance when patterns are within normal range.
- Red: Clear guidance to seek healthcare when patterns suggest potential issues.
- Educational Content: Contextual information about menstrual health delivered through engaging, age-appropriate explanations.
- Healthcare Connection: When needed, helps prepare for healthcare visits with symptom summaries and questions to ask.
User Experience:
The interface balances friendly engagement with medical credibility, using accessible language while maintaining scientific accuracy.
Datasets & Knowledge Base
Medical Foundation:
- ACOG Committee Opinion No. 651 (2015): Core guidelines on normal menstrual parameters.
- Society for Adolescent Health and Medicine clinical recommendations.
Development
Project Structure
- backend: Express.js API server with API endpoints
- frontend: (Coming soon) User interface for the Dottie application
Architecture
Database
Dottie uses a dual-database approach to simplify development while maintaining production readiness:
- Development: SQLite for local development (no setup required)
- Production: Azure SQL Database for scalable cloud deployment
- ORM: Knex.js provides a unified query interface across both database types
This architecture allows developers to work locally without needing to set up a database server, while ensuring a smooth transition to production with Azure SQL.
Backend
- API Server: Express.js handles HTTP requests and routing
- Data Models: Knex.js models for database interaction
- Authentication: (Coming soon) JWT-based authentication
- Middleware: Express middleware for request processing
Backend Port Configuration & macOS Compatibility
By default, the backend runs on:
- Port 5000 on Windows/Linux
- Port 5001 on macOS (to avoid conflict with AirPlay)
You can override this by creating a .env file in /backend:
PORT=5050
Getting Started
Backend Setup
-
Navigate to the backend directory and install dependencies, return to root:
cd backend; npm install; cd .. -
Navigated to the frontend directory and build dependencies:
cd frontend; npm install; npm run build -
Run frontend (activates backend by itself with concurrently)
npm run dev
Technologies Used
- Backend: Node.js, Express.js
- Database: SQLite (dev), Azure SQL (production)
- ORM: Knex.js for database queries
- Testing: Vitest, Supertest
- Documentation: Docusaurus (see
/docsdirectory)
🤝 Contributing
We welcome contributions to the Dottie project!
🪜 How to Start:
- Fork the repository
- Create a new branch:
git checkout -b feature/your-feature - Make your changes
- Commit:
git commit -m "Add: your feature" - Push:
git push origin feature/your-feature - Open a Pull Request 🚀
Please read our contributing guidelines before submitting PRs.
If you're new, check out
good first issueto get started.
License
Related Skills
bluebubbles
349.9kUse when you need to send or manage iMessages via BlueBubbles (recommended iMessage integration). Calls go through the generic message tool with channel="bluebubbles".
oracle
349.9kBest practices for using the oracle CLI (prompt + file bundling, engines, sessions, and file attachment patterns).
slack
349.9kUse when you need to control Slack from OpenClaw via the slack tool, including reacting to messages or pinning/unpinning items in Slack channels or DMs.
prose
349.9kOpenProse VM skill pack. Activate on any `prose` command, .prose files, or OpenProse mentions; orchestrates multi-agent workflows.
