healthlink-final-project

HealthLink πŸ”—

🎯 Live Demo

πŸš€ Live Application: [https://glorymukami.github.io/healthlink-final-project/]

Frontend URL: [https://healthlink-final-project-12kq.vercel.app/]
Backend API: [https://healthlink-backend-lzm2.onrender.com]
Test Credentials: [Patient: test.patient@healthlink.com / patient123

Doctor: test.doctor@healthlink.com / doctor123]


A comprehensive healthcare platform connecting patients with specialized doctors for seamless medical care management. HealthLink streamlines the entire patient journey from symptom checking to post-consultation follow-up.

πŸš€ Features

Enhanced Patient Journey

  1. Register/Login - Secure authentication with Google/GitHub OAuth
  2. Symptom Checker - AI-powered symptom assessment
  3. Book Appointment - Easy scheduling with specialized doctors
  4. Consultation - Virtual or in-person appointments
  5. Medical Reports - Digital prescription and report generation
  6. Feedback System - Post-appointment reviews and ratings
  7. Health Guides - Personalized wellness recommendations
  8. Progress Tracking - Health metrics and appointment history

Core Functionalities

πŸ› οΈ Tech Stack

Frontend

Backend

Deployment

πŸ“ Project Structure

healthlink-final-project/ β”œβ”€β”€ client/ # React frontend β”‚ β”œβ”€β”€ src/ β”‚ β”‚ β”œβ”€β”€ components/ # Reusable components β”‚ β”‚ β”œβ”€β”€ contexts/ # Auth & App context β”‚ β”‚ β”œβ”€β”€ pages/ # Route components β”‚ β”‚ β”œβ”€β”€ utils/ # Helper functions β”‚ β”‚ └── styles/ # Tailwind config β”‚ └── package.json β”œβ”€β”€ server/ # Express backend β”‚ β”œβ”€β”€ models/ # MongoDB schemas β”‚ β”œβ”€β”€ routes/ # API routes β”‚ β”œβ”€β”€ middleware/ # Auth & validation β”‚ β”œβ”€β”€ config/ # DB & passport config β”‚ └── package.json └── README.md

text

πŸš€ Quick Start

Prerequisites

Installation

  1. Clone the repository ```bash git clone https://github.com/glorymukami/healthlink-final-project.git cd healthlink-final-project Backend Setup

bash cd server npm install

Create environment file

cp .env.example .env

Configure environment variables

Add your MongoDB URI, OAuth credentials, JWT secret

Frontend Setup

bash cd ../client npm install

Create environment file

cp .env.example .env

Configure API URL and other frontend variables

Environment Variables Backend (.env)

env PORT=5000 MONGODB_URI=your_mongodb_atlas_uri JWT_SECRET=your_jwt_secret_key GOOGLE_CLIENT_ID=your_google_oauth_client_id GOOGLE_CLIENT_SECRET=your_google_oauth_client_secret GITHUB_CLIENT_ID=your_github_oauth_client_id GITHUB_CLIENT_SECRET=your_github_oauth_client_secret CLIENT_URL=http://localhost:3000 Frontend (.env)

env VITE_API_URL=http://localhost:5000 VITE_GOOGLE_CLIENT_ID=your_google_client_id VITE_GITHUB_CLIENT_ID=your_github_client_id Running the Application Start Backend Server

bash cd server npm run dev Server runs on http://localhost:5000

Start Frontend Development Server

bash cd client npm run dev Client runs on http://localhost:3000

πŸ“Š Database Schema Key Models Users - Base user model with role-based access

Patients - Extended patient profile

Doctors - Doctor specialization and availability

Appointments - Booking and consultation records

MedicalRecords - Digital health reports

HealthGuides - Wellness content and tips

SymptomsChecker - Symptom assessment data

🎯 API Endpoints Authentication POST /api/auth/register - User registration

POST /api/auth/login - User login

GET /api/auth/google - Google OAuth

GET /api/auth/github - GitHub OAuth

GET /api/auth/logout - User logout

Appointments GET /api/appointments - Get user appointments

POST /api/appointments - Book new appointment

PUT /api/appointments/:id - Update appointment status

DELETE /api/appointments/:id - Cancel appointment

Doctors GET /api/doctors - List all doctors

GET /api/doctors/:id - Get doctor profile

POST /api/doctors/availability - Set doctor availability

🎨 UI/UX Features Responsive Design - Mobile-first approach

Dark/Light Mode - Theme support

Accessible Components - WCAG compliant

Loading States - Enhanced user experience

Error Handling - User-friendly error messages

πŸš€ Deployment Frontend (Vercel) bash cd client npm run build

Deploy to Vercel

Backend (Render/Railway) Connect your GitHub repository

Set environment variables

Deploy automatically on push

πŸ” Security Features OAuth 2.0 integration

JWT Token authentication

Password hashing with bcrypt

CORS configuration

Input validation and sanitization

Role-based access control

🀝 Contributing We welcome contributions! Please follow these steps:

Fork the repository

Create a feature branch (git checkout -b feature/AmazingFeature)

Commit your changes (git commit -m β€˜Add some AmazingFeature’)

Push to the branch (git push origin feature/AmazingFeature)

Open a Pull Request

πŸ“ License This project is licensed under the MIT License - see the LICENSE file for details.

πŸ‘₯ Authors Glory Mukami - GitHub Profile

πŸ™ Acknowledgments React and Express communities for excellent documentation

Tailwind CSS for the utility-first CSS framework

MongoDB for the flexible database solution

Vercel and Render for seamless deployment

Built with ❀️ for better healthcare accessibility

``` Key improvements:

βœ… Live Demo at the very top - First thing teachers/evaluators see

βœ… Clear section separation with horizontal line

βœ… Multiple demo links for frontend, backend, and test credentials

βœ… Professional presentation while maintaining all technical details