Skip to content

Qodestackr/care_weave

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

45 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

CareWeave ๐Ÿฅ

A modern, open-source telehealth and healthcare appointment platform for connecting patients with healthcare providers.

GitHub License TypeScript Next.js

Overview

CareWeave is a comprehensive healthcare platform that enables seamless appointment booking, telehealth consultations, and in-person medical visits. Originally developed as a Kenyan healthcare solution, it's now available as an open-source project for the global community.

The platform bridges the gap between patients seeking medical care and healthcare providers, offering a user-friendly interface for managing appointments, doctor profiles, consultations, and healthcare services.

โœจ Features

For Patients

  • ๐Ÿ” Doctor Discovery - Search and filter doctors by specialty, location, and availability
  • ๐Ÿ“… Smart Appointment Booking - Real-time availability and flexible scheduling
  • ๐Ÿ’ป Telehealth Visits - Video consultations powered by Stream.io
  • ๐Ÿฅ In-Person Visits - Book physical appointments with nearby healthcare providers
  • ๐Ÿ‘ค User Profiles - Comprehensive patient profile management
  • ๐Ÿ’Š Prescriptions - Access and manage digital prescriptions
  • ๐Ÿ“Š Medical History - Organized health records and appointment history
  • ๐Ÿ” Secure Authentication - NextAuth integration with password encryption

For Healthcare Providers

  • ๐ŸŽฏ Doctor Onboarding - Multi-step verification and profile creation
  • ๐Ÿ“‹ Profile Management - Detailed professional credentials, specializations, and experience
  • ๐Ÿ“… Availability Management - Set weekly availability slots and manage schedules
  • ๐Ÿ’ฐ Pricing Control - Set hourly consultation rates
  • ๐Ÿ‘ฅ Patient Management - View and manage patient consultations
  • ๐Ÿ“ˆ Analytics Dashboard - Track appointments, revenue, and performance metrics
  • ๐Ÿ’ฌ Messaging System - Direct communication with patients
  • ๐Ÿฅ Practice Information - Add hospital/clinic details and services offered

Platform Features

  • ๐ŸŒ Multi-language Support - Internationalization ready
  • ๐ŸŽจ Dark Mode - Theme switching capabilities
  • ๐Ÿ“ฑ PWA Ready - Progressive Web App support for offline access
  • ๐Ÿ” Role-Based Access - Patient, Doctor, and Admin roles
  • ๐Ÿ’ณ Payment Integration - Paystack integration for payments
  • ๐Ÿ“ง Email Notifications - Automated notifications via Resend
  • ๐Ÿ“„ Document Management - Upload and store medical documents
  • ๐Ÿ—‚๏ธ E-Triage System - Initial patient assessment workflow

๐Ÿ—๏ธ Tech Stack

Frontend

  • Framework: Next.js 14 (React 18)
  • Language: TypeScript
  • UI Components:
    • shadcn/ui (Radix UI based)
    • Headless UI
    • Flowbite
  • Styling: Tailwind CSS with custom animations
  • Form Management: React Hook Form + Zod validation
  • State Management: React Context API
  • Real-time Communication: Stream.io Video SDK
  • Rich Text: React Quill
  • Icons: Heroicons, Lucide, Tabler Icons
  • Utilities: SWR, date-fns, clsx

Backend

  • Framework: Next.js API Routes
  • Database: SQLite + Prisma ORM
  • Authentication: NextAuth.js with password encryption (bcrypt)
  • Email: Nodemailer + Resend
  • File Upload: UploadThing
  • PDF Generation: React PDF + jsPDF AutoTable

Services

  • Video Calls: Stream.io Video React SDK
  • Payments: Paystack
  • PWA: @ducanh2912/next-pwa

๐Ÿš€ Getting Started

Prerequisites

  • Node.js 18+ and npm/yarn
  • PostgreSQL or SQLite database
  • Git

Installation

  1. Clone the repository

    git clone https://github.com/Qodestackr/CareWeave.git
    cd CareWeave
  2. Install dependencies

    npm install
    # or
    yarn install
  3. Set up environment variables

    cp .env.example .env.local

    Update .env.local with your configuration:

    # Database
    DATABASE_URL="file:./dev.db"
    
    # NextAuth
    NEXTAUTH_URL="http://localhost:3000"
    NEXTAUTH_SECRET="your-secret-key-here"
    
    # Stream.io
    NEXT_PUBLIC_STREAM_KEY=your_stream_key
    NEXT_PUBLIC_STREAM_API_URL=your_stream_api_url
    
    # Paystack
    NEXT_PUBLIC_PAYSTACK_PUBLIC_KEY=your_paystack_key
    PAYSTACK_SECRET_KEY=your_paystack_secret
    
    # UploadThing
    UPLOADTHING_SECRET=your_uploadthing_secret
    UPLOADTHING_APP_ID=your_uploadthing_app_id
    
    # Email (Resend)
    RESEND_API_KEY=your_resend_api_key
  4. Set up the database

    npx prisma generate
    npx prisma migrate dev
  5. Start the development server

    npm run dev

    Open http://localhost:3000 in your browser.

๐Ÿ“ Project Structure

โ”œโ”€โ”€ app/                      # Next.js app directory
โ”œโ”€โ”€ components/               # Reusable React components
โ”œโ”€โ”€ context/                  # React Context API state management
โ”œโ”€โ”€ lib/                      # Utility functions and helpers
โ”œโ”€โ”€ prisma/                   # Database schema and migrations
โ”œโ”€โ”€ public/                   # Static assets
โ”œโ”€โ”€ styles/                   # Global styles
โ”œโ”€โ”€ types/                    # TypeScript type definitions
โ”œโ”€โ”€ utils/                    # Helper utilities
โ”œโ”€โ”€ config/                   # Configuration files
โ”œโ”€โ”€ constants/                # Application constants
โ””โ”€โ”€ imported/                 # Legacy/imported components

๐Ÿ”„ Key Workflows

Doctor Onboarding

  1. Registration with basic info (name, email, password)
  2. Bio data collection (name, DOB, gender)
  3. Professional profile setup (license, experience)
  4. Contact information
  5. Education and specialization
  6. Practice details (hospital, services, rates)
  7. Additional documents and accomplishments
  8. Profile verification and approval

Patient Appointment Booking

  1. Browse and search doctors
  2. View doctor profiles and availability
  3. Select date and time slot
  4. Complete appointment details
  5. Process payment (if applicable)
  6. Receive confirmation and join telehealth link
  7. Complete consultation
  8. Access prescriptions and medical notes

๐Ÿ” Authentication & Authorization

  • Patient Role: Can view doctors, book appointments, access personal health info
  • Doctor Role: Can manage profile, availability, appointments, and patient records
  • Admin Role: Full platform access for user and content management

All passwords are securely hashed using bcrypt before storage.

๐Ÿ“š Database Schema

The application uses Prisma ORM with the following primary entities:

  • User: Patient and provider accounts
  • DoctorProfile: Extended doctor information
  • Appointment: Booking records
  • Service: Medical services offered
  • Prescription: Digital prescriptions
  • Insurance: Insurance provider details

๐Ÿค Contributing

We welcome contributions from the community! To contribute:

  1. Fork the repository
  2. Create a feature branch
    git checkout -b feature/amazing-feature
  3. Commit your changes
    git commit -m 'Add amazing feature'
  4. Push to the branch
    git push origin feature/amazing-feature
  5. Open a Pull Request

Development Guidelines

  • Follow TypeScript best practices
  • Use ESLint and Prettier for code formatting
  • Write clear, descriptive commit messages
  • Test your changes before submitting a PR
  • Update documentation as needed

๐Ÿ› Bug Reports & Feature Requests

Found a bug or have a feature idea? Open an issue with:

  • Clear description of the problem/suggestion
  • Steps to reproduce (for bugs)
  • Expected vs. actual behavior
  • Screenshots (if applicable)

๐Ÿ“ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿ”— Links

๐Ÿ“ž Support

For support, open an issue on GitHub or contact the maintainers.


Built with โค๏ธ for open-source healthcare technology

Made by @Qodestackr

About

Healthcare

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

โšก