Skip to content

Zihad550/zendoc-frontend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

63 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

ZenDoc - Healthcare Management Platform

ZenDoc Logo

A comprehensive healthcare management platform facilitating online medical consultations and appointment scheduling

Next.js React TypeScript Material-UI Redux Toolkit

πŸ₯ About ZenDoc

ZenDoc is a modern healthcare management platform that bridges the gap between healthcare providers and patients through digital transformation. The platform makes healthcare more accessible through online consultations, streamlined appointment management, and comprehensive medical record keeping.

🎯 Key Features

  • πŸ₯ Multi-Role Dashboard System - Separate interfaces for patients, doctors, admins, and super admins
  • πŸ“… Appointment Management - Complete scheduling, booking, and management system
  • πŸ‘¨β€βš•οΈ Doctor Profiles & Specialties - Comprehensive doctor information with specialty categorization
  • πŸ“Ή Video Consultations - Integrated video calling functionality for remote consultations
  • πŸ’³ Health Plans - Various healthcare plan options with detailed comparison features
  • πŸ‘₯ User Management - Complete user lifecycle management with role-based access control
  • πŸ’° Payment Integration - Secure payment processing for consultations and services
  • πŸ“‹ Medical Records - Patient history and comprehensive medical record management
  • πŸ“Š Analytics Dashboard - Detailed insights and reporting for administrators

πŸš€ Technology Stack

Frontend Framework

  • Next.js 15.3.5 with App Router architecture
  • React 19 with TypeScript for type safety
  • Material-UI (MUI) v7 as the primary component library

State Management

  • Redux Toolkit with RTK Query for efficient API calls
  • React Hook Form with Zod validation for robust form handling
  • Redux Persist for state persistence

Development Tools

  • TypeScript for static type checking
  • ESLint for code linting
  • Husky for Git hooks
  • Motion for smooth animations

Additional Libraries

  • Agora React UIKit for video calling functionality
  • Day.js for date manipulation
  • JWT Decode for authentication
  • Sonner for toast notifications

πŸ—οΈ Project Structure

zendoc-frontend/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ app/                    # Next.js App Router pages
β”‚   β”‚   β”œβ”€β”€ (public)/          # Public pages (landing, auth)
β”‚   β”‚   β”œβ”€β”€ (dashboard)/       # Protected dashboard routes
β”‚   β”‚   └── (profile)/         # User profile management
β”‚   β”œβ”€β”€ components/            # Reusable UI components
β”‚   β”‚   β”œβ”€β”€ Dashboard/         # Dashboard-specific components
β”‚   β”‚   β”œβ”€β”€ Forms/            # Form components (PH-prefixed)
β”‚   β”‚   β”œβ”€β”€ Shared/           # Common components
β”‚   β”‚   └── UI/               # Feature-specific UI components
β”‚   β”œβ”€β”€ redux/                # State management
β”‚   β”‚   β”œβ”€β”€ features/         # Feature-based Redux slices
β”‚   β”‚   └── api/              # RTK Query API definitions
β”‚   β”œβ”€β”€ types/                # TypeScript type definitions
β”‚   β”œβ”€β”€ utils/                # Utility functions
β”‚   β”œβ”€β”€ services/             # API services
β”‚   └── assets/               # Static assets
β”œβ”€β”€ public/                   # Public static files
└── docs/                     # Documentation

πŸ› οΈ Setup & Installation

Prerequisites

  • Node.js (v18 or higher)
  • pnpm (recommended) or npm
  • Git

Installation Steps

  1. Clone the repository

    git clone https://github.com/Zihad550/zendoc-frontend.git
    cd zendoc-frontend
  2. Install dependencies

    pnpm install
    # or
    npm install
  3. Environment Configuration

    Create a .env.local file in the root directory:

    # Backend API Configuration
    NEXT_PUBLIC_BACKEND_API_URL=http://localhost:8000/api/v1
    
    # Video Call Configuration
    NEXT_PUBLIC_VIDEO_CALL_APP_ID=your_agora_app_id
    
    # Additional environment variables as needed
  4. Run the development server

    pnpm dev
    # or
    npm run dev
  5. Open your browser

    Navigate to http://localhost:3000 to see the application.

Available Scripts

Script Description
pnpm dev Start development server with Turbopack
pnpm build Build the application for production
pnpm start Start the production server
pnpm lint Run ESLint for code linting
pnpm type:check Run TypeScript type checking
pnpm test Run tests in watch mode
pnpm test:run Run tests once
pnpm test:coverage Run tests with coverage report

πŸ‘₯ User Roles & Features

πŸ₯ Patient Dashboard

  • Book and manage appointments
  • View medical history and records
  • Access video consultations
  • Manage personal profile and preferences
  • View and select health plans

πŸ‘¨β€βš•οΈ Doctor Dashboard

  • Manage appointment schedules
  • Conduct video consultations
  • Update profile and specialties
  • View patient information
  • Manage availability and time slots

πŸ”§ Admin Dashboard

  • Manage doctors and their profiles
  • Oversee appointment scheduling
  • Manage specialties and categories
  • Monitor system activities
  • Generate reports and analytics

⚑ Super Admin Dashboard

  • Complete user management system
  • Advanced analytics and reporting
  • System configuration and settings
  • Bulk operations and data management
  • Security and access control

πŸš€ Deployment

Production Build

# Build the application
pnpm build

# Start production server
pnpm start

Environment Variables

Ensure all required environment variables are set in your production environment:

  • NEXT_PUBLIC_BACKEND_API_URL - Backend API endpoint
  • NEXT_PUBLIC_VIDEO_CALL_APP_ID - Agora video call app ID

🀝 Contributing

We welcome contributions to ZenDoc! Please follow these steps:

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

Development Guidelines

  • Follow the existing code style and conventions
  • Use TypeScript for all new code
  • Write tests for new features
  • Use PH-prefixed components for custom form elements
  • Follow the established project structure
  • Ensure all tests pass before submitting PR

πŸ“ Code Style & Conventions

  • TypeScript - Strict type checking required
  • Component Naming - PascalCase for components, camelCase for utilities
  • File Organization - Feature-based organization
  • Form Components - Use PH prefix (PHForm, PHInput, PHModal)
  • State Management - Redux Toolkit with feature-based slices
  • Styling - Material-UI components with theme system

πŸ“„ License

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

πŸ”— Links

πŸ“ž Support

For support and questions:


Built with ❀️ by Jehad Hossain(Zihad550)

Making healthcare accessible through technology

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages