Skip to main content

Command Palette

Search for a command to run...

Built a Next.js App

Published
2 min readView as Markdown

🚑 🩺 I Built a Doctor Appointment App with Next.js, Vonage & Prisma — Here’s What I Learned Recently, I challenged myself to build a Doctor Appointment App — not for a client or company, but purely to learn by doing.

🧠 What’s This App About? The app allows users to book appointments with doctors, while doctors can set their availability, manage bookings, and hold video consultations via Vonage.

🧰 Tech Stack Next.js – For full-stack React-based development

Tailwind CSS – For styling

Prisma – For ORM and database modeling

Vonage – To enable real-time video calls

React – UI rendering and component management

🚀 Key Features 👥 User & Doctor Flow Authentication with protected routes

Onboarding UI and APIs for doctors and patients

Subscription Plan Setup

Apply as a Doctor form

🧠 Admin Functionality Admin login and dashboard UI

Approve or reject doctor applications

Doctor listing management

🧑‍⚕️ Doctor Tools Set availability (day/time slots)

View appointments

🎥 Video Call Integration Token generation using Vonage

Dedicated Video Call Page

💥 Challenges I Faced Time slot logic: Managing doctor availability and ensuring users can only book valid, non-overlapping slots required careful handling of date-time logic.

API security: Making sure only the right user (doctor/patient/admin) can hit certain endpoints pushed me to think more about roles and access control.

State Management: Syncing front-end UI with server state — especially when bookings were updated or canceled — needed custom hooks and React re-renders at just the right moments.

📚 What I Learned How to structure a real-world full-stack app using Next.js as the foundation

Using Prisma effectively for DB schema, migrations, and queries

Working with third-party APIs like Vonage for live features

Designing with user roles and permissions in mind from the start

🧑‍💻 Final Thoughts This was more than just a tutorial-style build. I challenged myself to ship something with admin flows, role-based logic, complex data models, and live video capability.

Next, I plan to either refine this app or try my hand at a client project using the same stack. If you’re learning too, I highly recommend picking a real-world use case like this — it forces you to think end-to-end and teaches you way more than following a tutorial.

Would love your thoughts or feedback! Follow me here if you want to keep up with my learn-in-public journey.