π 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.
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
bash cd server npm install
cp .env.example .env
Frontend Setup
bash cd ../client npm install
cp .env.example .env
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
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
``` 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