To empower adolescent girls with knowledge about their menstrual health through accessible, friendly AI-powered guidance.
A world where young people understand their bodies, recognize menstrual health as a vital sign, and feel confident seeking care when needed.
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.
- 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.
- 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.
Dottie is a conversational AI assistant designed as a friendly, knowledgeable "Period Bestie" for adolescents navigating menstrual health.
- 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.
- 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.
- 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.
The interface balances friendly engagement with medical credibility, using accessible language while maintaining scientific accuracy.
- ACOG Committee Opinion No. 651 (2015): Core guidelines on normal menstrual parameters.
- Society for Adolescent Health and Medicine clinical recommendations.
- backend: Express.js API server with API endpoints
- frontend: (Coming soon) User interface for the Dottie application
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.
- 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
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
-
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
- Backend: Node.js, Express.js
- Database: SQLite (dev), Azure SQL (production)
- ORM: Knex.js for database queries
- Testing: Vitest, Supertest
- Documentation: Docusaurus (see
/docs
directory)
We welcome contributions to the Dottie project!
- 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 issue
to get started.