About the Project
In modern healthcare, one of the major bottlenecks lies in the initial prescreening of patients — a process often dependent on manual labor by nurses or administrative staff. Inspired by the potential of AI in streamlining clinical workflows, our team set out to build a chatbot-powered web application that automates the diagnostic prescreening process. The idea was to reduce the burden on nurses and administrative personnel, speed up patient intake, and enhance diagnostic consistency through evidence-based algorithms.
Inspiration
This project was inspired by firsthand observations of inefficiencies in clinical environments, where nurses and front desk staff spend excessive time gathering basic patient information before the doctor-patient interaction even begins. With the rise of intelligent chatbots and API integrations, we saw an opportunity to make this process smarter and more connected — benefiting both patients and clinics.
What it does
Describe Their Symptoms Users type in their symptoms and how long they’ve been experiencing them. A chatbot — trained on evidence-based diagnostic algorithms — interprets this information.
Receive a Preliminary Diagnosis & Specialist Recommendation The chatbot suggests a possible condition and recommends a medical specialty best suited to treat it.
Find the Right Doctor Based on the user’s location and desired travel radius, SmartScheduler searches for doctors in that specialty and ranks them by:
Availability
Patient rating (Users can set their own priority weights between availability and rating.)
Book an Appointment Once a doctor and date are selected, SmartScheduler:
Creates a new appointment entry
Syncs with both our internal database and the clinic’s system
How we built it
We combined technologies across multiple layers to bring SmartScheduler to life:
Frontend: Built with Streamlit for a fast and interactive user interface.
Chatbot: Integrated a custom-trained NLP model using evidence-based diagnostic datasets to interpret symptoms and suggest a likely condition and specialty.
Doctor Matching Engine:
Takes into account user-input travel radius
Filters by availability and rating
Allows users to assign custom weights to availability vs. reviews
Backend:
Python handles logic, and MySQL stores user, doctor, and appointment data
Syncs with clinic databases via REST APIs or webhooks
Challenges we ran into
Medical Accuracy: Ensuring the chatbot offered reasonable and responsible preliminary assessments without overstepping clinical boundaries.
Data Integration: Syncing appointments across two systems (ours and the clinic's) while avoiding conflicts or double bookings.
Custom Weight Sorting: Implementing a flexible sorting mechanism based on user-defined preferences (availability vs. doctor rating).
Calendar Sync: Managing OAuth and permissions for secure Google Calendar integration.
Designing a chatbot interface that works well for people who are sick, elderly, or non-tech-savvy meant simplifying language, reducing cognitive load, and implementing graceful error handling.
Testing with fake data is one thing — but validating that our system actually improves intake speed or diagnostic accuracy required mock trials and simulations, which were time-consuming.
Accomplishments that we're proud of
Successfully built a working prototype that can:
Triage symptoms
Recommend a specialist
Let users book appointments in under 3 minutes
Created a chatbot trained on evidence-based algorithms, ensuring reliability in recommendations.
Enabled real-time appointment updates and calendar syncing — bridging patient and provider workflows.
Designed a system that’s scalable to integrate with actual clinic infrastructure.
What we learned
How to translate real-world healthcare inefficiencies into a digital product
The complexity and responsibility involved in handling health data securely
Designing a chatbot that feels conversational while delivering clinical value
The power of giving users control over preferences like availability vs. quality
What's next for SmartSchedular
Our vision for SmartScheduler goes far beyond just a prototype — we see it becoming a critical part of healthcare infrastructure in clinics, hospitals, and private practices everywhere.
- Full Integration with Healthcare Systems We aim to build out robust APIs and data pipelines that allow seamless integration with:
Electronic Health Records (EHR) systems like Epic, Cerner, and Allscripts
Patient portals already in use at major hospitals
Custom scheduling systems used by smaller clinics and private practices
This will enable real-time appointment syncing, automatic chart creation, and handoffs between prescreening and clinical care, improving efficiency on both ends.
- Scalable Onboarding for Medical Networks We plan to create a clinic onboarding dashboard that allows healthcare providers to:
Create a SmartScheduler profile
Set appointment slots, accepted insurance, and specialties
Connect their existing calendar and patient management systems
This means clinics across the country — or even across the world — can join SmartScheduler and start seeing value without changing their entire workflow.
- Partnerships with Healthcare Providers We’re exploring potential partnerships with health networks, urgent care chains, and telehealth providers to pilot SmartScheduler in real-world environments. These partnerships will help us:
Validate the tool at scale
Fine-tune integrations with live data
Ensure compliance with medical regulations (HIPAA, GDPR, etc.)
- Clinical Validation & Feedback Loop To truly earn the trust of the medical community, we’ll work with doctors and nurses to:
Gather feedback on chatbot accuracy and triage suggestions
Continuously retrain and improve our models with anonymized data
Conduct studies measuring the impact on wait times, nurse workload, and patient satisfaction
- Multi-Platform Support We're building toward a mobile and tablet-friendly version so that clinics can use SmartScheduler at the front desk or during telehealth sessions, and patients can easily book from anywhere.
Log in or sign up for Devpost to join the conversation.