Inspiration

Anyone living in Quebec knows the struggle of trying to book a medical appointment. The platform requires users to manually refresh and re-login(once a while) to find a single available clinic. We wanted to build something that makes finding a doctor simple, fast, and accessible.

What it does

Users can quickly input their RAMQ credentials and search preferences (postal code, radius, appointment type, and preferred time of day). Instead of manually fighting with the government website, our backend programmatically navigates the portal, bypassing the tedious multi-step process, and aggregates all available clinic slots into a single, clean dashboard. From there, users can instantly confirm their booking.

How we built it

We built a bilingual full-stack web app Frontend: A responsive interface built with Next.js, React, and Tailwind CSS to completely replace the legacy RVSQ UX. Backend: A Python-based REST API powered by FastAPI that handles session management and search requests. Automation Engine: We used undetected-chromedriver (a patched version of Selenium) and scrape data using BeautifulSoup.

Challenges we ran into

Automating a government portal was incredibly difficult. The site sits behind strict Cloudflare bot-detectionwhich required us to use specialized, undetectable headless browsers.

Accomplishments that we're proud of

We've built a tool that directly addresses a massive pain point for Quebec residents, making healthcare access tangibly easier.

What we learned

Advanced web automation techniques, specifically how to bypass visual UI layers with JavaScript when traditional Selenium clicks fail. Handling aggressive Cloudflare bot-protection mechanisms.

What's next for SanteNav

Adding private clinics' appointment. Automate phone calling reservation.

Built With

  • claudecode
Share this project:

Updates