A modern web application that helps dental professionals create and manage clinical documentation through voice transcription and AI-powered note generation. Built for efficiency and accuracy in dental practice management.
- Voice-to-Text Transcription - Real-time speech recognition using Web Speech API
- AI-Powered Clinical Note Generation - Professional clinical notes using Qwen3 30B model via OpenRouter
- Patient Management System - Complete patient registration, search, and management
- Clinical Record Templates - Standardized dental clinical note formatting
- Copy to Clipboard - One-click copying of generated clinical notes
- Note History & Search - View and search through patient clinical records
- Beautiful Landing Page - Modern design with typewriter animations
- Loading Animations - Beautiful loading screens during AI processing
- Responsive Design - Works seamlessly on desktop and mobile
- Dark Theme UI - Professional dark interface with Tailwind CSS
- Real-time Updates - Live transcription editing and processing
- Secure Login System - Password hashing and session management
- Dentist-specific Data - Each dentist only sees their own patients
- Session-based Security - Secure cookie-based authentication
- Data Privacy - Patient data isolation and secure storage
- Flask - Python web framework
- Redis - High-performance database for sessions, patients, and notes
- OpenRouter API - Access to Qwen3 30B AI model for clinical note generation
- Werkzeug - Password hashing and security utilities
- TailwindCSS - Modern utility-first CSS framework
- Vanilla JavaScript - Client-side interactions and animations
- Web Speech API - Browser-based voice recognition
- Responsive Design - Mobile-first approach
- Vercel - Serverless deployment platform
- Redis Cloud - Managed Redis database
- Environment Variables - Secure configuration management
- Git Version Control - GitHub repository management
depaulhackathon-2025/
βββ api/
β βββ index.py # Main Flask application (Vercel entry point)
β βββ requirements.txt # Python dependencies for deployment
βββ templates/
β βββ index.html # Landing page with animations
β βββ login.html # Authentication pages
β βββ register.html
β βββ dashboard.html # Dentist dashboard
β βββ start_recording.html # Patient selection
β βββ record.html # Voice recording interface
β βββ transcription.html # Transcription editing
β βββ clinicalrecord.html # AI-generated clinical notes
β βββ patients.html # Patient management
β βββ patient_notes.html # Patient history
βββ static/
β βββ css/ # Stylesheets
β βββ js/ # JavaScript files
βββ data/ # Local data storage structure
βββ .vercel/ # Vercel deployment configuration
βββ vercel.json # Vercel deployment settings
βββ .vercelignore # Files to ignore during deployment
βββ requirements.txt # Local development dependencies
βββ README.md # This file
- Python 3.8+
- Redis instance (local or cloud)
- OpenRouter API key
-
Clone the repository
git clone https://github.com/milyas2001/depaulhackathon-2025.git cd depaulhackathon-2025 -
Create virtual environment
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install dependencies
pip install -r requirements.txt
-
Environment Variables Create a
.envfile with:REDIS_URL=your_redis_connection_string OPENROUTER_API_KEY=your_openrouter_api_key SECRET_KEY=your_secret_key
-
Run the application
cd api python index.py -
Access the application Open http://localhost:8080 in your browser
-
Connect to Vercel
- Link your GitHub repository to Vercel
- Set environment variables in Vercel dashboard
-
Environment Variables (Production)
REDIS_URL=your_production_redis_url OPENROUTER_API_KEY=your_openrouter_api_key SECRET_KEY=your_production_secret_key -
Deploy
- Push to main branch triggers automatic deployment
- Vercel uses
api/index.pyas the entry point
- Create account at OpenRouter.ai
- Generate API key
- Model used:
qwen/qwen3-30b-a3b:free(30.5B parameters)
- Local: Install Redis server
- Production: Use Redis Cloud or similar managed service
- Data Structure:
- Dentists:
dentist:{id} - Patients:
patient:{id} - Notes:
note:{id} - Sessions:
session:{id}
- Dentists:
-
Registration/Login
- Create account or sign in
- Secure password-based authentication
-
Patient Management
- Add new patients with unique IDs
- Search existing patients
- View patient history
-
Clinical Documentation
- Select patient
- Record voice notes or type manually
- Review and edit transcription
- Generate AI clinical note
- Copy and save final documentation
-
Note Management
- View patient note history
- Edit saved notes
- Professional clinical formatting
- Model: Qwen3 30B A3B (30.5 billion parameters)
- Provider: OpenRouter
- Capabilities:
- Professional dental terminology conversion
- Structured clinical note formatting
- Template adherence
- Medical notation accuracy
DENTAL CLINICAL NOTE
Date: [Date]
Time: [Time]
Patient Name: [Patient Name]
Dentist Name: [Dentist Name]
CLINICAL NOTES:
CHIEF COMPLAINT
CLINICAL FINDINGS
TREATMENT PROVIDED
MEDICATIONS
FOLLOW-UP
Note: Please verify all information above.
- Password Hashing: Werkzeug secure password storage
- Session Management: Redis-based secure sessions
- Data Isolation: Dentist-specific data access
- HTTPS Ready: Secure deployment configuration
- Input Validation: Form validation and sanitization
- Typewriter Animations: Engaging landing page effects
- Loading Screens: Beautiful AI processing animations
- Dark Theme: Professional medical interface
- Responsive Design: Mobile and desktop optimized
- Copy Functionality: One-click note copying
- Hover Effects: Interactive UI elements
dentist:{dentist_id} β {id, name, email, password_hash, created_at}
patient:{patient_id} β {id, name, dentist_id, created_at, last_visit, notes_count}
note:{note_id} β {id, content, transcription, timestamp, patient_id, dentist_id}
session:{session_id} β {session_data}
email_to_dentist:{email} β dentist_id
dentist:{dentist_id}:patients β Set of patient_ids
patient:{patient_id}:notes β Set of note_ids
- Serverless Architecture: Vercel edge functions
- Redis Performance: Sub-millisecond data access
- AI Model: 30B parameter model for high-quality generation
- Frontend Optimization: Minimal JavaScript, efficient CSS
- Fork the repository
- Create feature branch (
git checkout -b feature/AmazingFeature) - Commit changes (
git commit -m 'Add AmazingFeature') - Push to branch (
git push origin feature/AmazingFeature) - Open Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- OpenRouter for AI model access
- Vercel for hosting platform
- Redis for database technology
- TailwindCSS for styling framework
For support, email [your-email] or open an issue on GitHub.
Built with β€οΈ for dental professionals to streamline clinical documentation