Skip to content

About

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

59 Commits

Folders and files

Repository files navigation

Tabibi

Tabibi is a healthcare platform API that connects patients and doctors in one secure workflow. Patients can discover doctors, manage their medical information, book and pay for appointments, communicate with doctors, and attend eligible video consultations. Doctors receive tools for managing schedules, appointments, prescriptions, and patient interactions, while administrators manage the platform’s core data and users.

Features

  • Patient and doctor registration with email confirmation and JWT authentication
  • Doctor discovery by specialty, location, availability, and profile information
  • Clinic-visit and video-call appointment booking with availability management
  • Stripe payment processing, booking status management, and refunds
  • Doctor schedules, appointment dashboards, patient details, and prescriptions
  • Secure patient–doctor chat with real-time delivery through SignalR
  • ZEGOCLOUD video-call token generation for confirmed appointments
  • Medical profiles, favorites, reviews, notifications, and push notifications through Firebase Cloud Messaging
  • AI-assisted symptom analysis using Google Gemini, including urgency and specialty suggestions
  • Administrative dashboards for managing doctors, patients, departments, and cities
  • Background processing for booking cleanup and appointment reminders
  • OpenAPI documentation with Scalar

AI symptom analysis is an informational aid and is not a medical diagnosis.

Technology Stack

  • Platform: .NET 10 / ASP.NET Core Web API
  • Data: SQL Server with Entity Framework Core and ASP.NET Core Identity
  • Authentication: JWT bearer tokens with role-based authorization
  • Real-time communication: SignalR
  • Payments: Stripe
  • Notifications: Firebase Cloud Messaging
  • Email: MailKit and MimeKit via the Tabibi.EmailService project
  • Background jobs: Hangfire and hosted background services
  • API documentation: OpenAPI and Scalar

Project Structure

  • Tabibi.API — the main REST API, database layer, authentication, business logic, real-time hub, and integrations
  • Tabibi.EmailService — reusable SMTP email delivery service

Prerequisites

  • .NET 10 SDK
  • SQL Server
  • SMTP account for email confirmation and account recovery
  • Credentials for the enabled external services: Stripe, Firebase, ZEGOCLOUD, and Google Gemini

Getting Started

  1. Clone the repository and open the solution in Visual Studio or a terminal.

  2. Configure the required settings using user secrets, environment variables, or a deployment secret store. Do not commit credentials to appsettings.json.

  3. Apply the Entity Framework Core migrations:

    dotnet ef database update --project Tabibi.API
  4. Start the API:

    dotnet run --project Tabibi.API

The development profiles use:

  • https://localhost:7096
  • http://localhost:5242

Configuration

The API expects configuration for the following areas:

  • ConnectionStrings:Database
  • Jwt
  • EmailConfiguration
  • Stripe:SecretKey
  • ZegoCloud:AppId and ZegoCloud:ServerSecret
  • Gemini:ApiKey
  • Firebase Admin credentials used by the notification service

Use environment-specific configuration for local development and production. Any credentials previously stored in local configuration files should be rotated and moved to a secure secret store.

API Documentation

When the API is running, use Scalar to browse and test the documented endpoints:

  • https://localhost:7096/scalar/v1

The OpenAPI document is also available at:

  • https://localhost:7096/openapi/v1.json

The SignalR hub is available at /hub.

About

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages