LifeSync is a comprehensive healthcare management platform that streamlines the process of booking doctor appointments and managing healthcare needs. The application provides separate interfaces for patients, doctors, and administrators, making healthcare more accessible and efficient.
LifeSync is your trusted partner in managing healthcare needs conveniently and efficiently. We understand the challenges individuals face when scheduling doctor appointments and managing health records. Our platform bridges the gap between patients and healthcare providers, making it easier to access care when you need it.
To create a seamless healthcare experience for every user by bridging the gap between patients and healthcare providers, making it easier to access the care you need, when you need it.
- User Registration & Authentication - Secure account creation and login
- Doctor Discovery - Browse doctors by specialty and location
- Appointment Booking - Easy scheduling with real-time availability
- Profile Management - Update personal information and medical details
- Appointment History - View and manage past and upcoming appointments
- Doctor Dashboard - Overview of appointments and statistics
- Appointment Management - View and manage patient appointments
- Profile Management - Update professional information and availability
- Slot Management - Control appointment availability and timing
- Hospital Dashboard - Overview of appointments and statistics
- Doctor Management - Add, edit, and manage their doctors profile
- Appointment Management - View and manage patient appointments
- Profile Management - Update professional information and availability
- Slot Management - Control appointment availability and timing
- Admin Dashboard - System overview and analytics
- Doctor Management - Add, edit, and manage doctor profiles
- Hospital Management - Add, edit, and manage doctor profiles
- Appointment Oversight - Monitor all system appointments
- User Management - Manage patient and doctor accounts
- Cross-platform - Available for iOS and Android via Expo
- Dark Mode Support - Dynamic theme switching
- Push Notifications - Real-time updates for appointments
- Seamless Sync - Shared backend with Web and Admin panels
- React 18.3.1 - Modern UI library
- React Router DOM 7.9.4 - Client-side routing
- Tailwind CSS 4.1.14 - Utility-first CSS framework
- Axios 1.12.2 - HTTP client for API requests
- React Toastify 11.0.5 - Toast notifications
- Vite 5.4.0 - Fast build tool and dev server
- Node.js - JavaScript runtime
- Express.js 5.1.0 - Web application framework
- MongoDB - NoSQL database
- Mongoose 8.19.1 - MongoDB object modeling
- JWT (jsonwebtoken 9.0.2) - Authentication tokens
- bcrypt 6.0.0 - Password hashing
- Cloudinary 2.7.0 - Image upload and management
- Multer 2.0.2 - File upload middleware
- CORS 2.8.5 - Cross-origin resource sharing
- React Native - Cross-platform framework
- Expo - Development platform
- Expo Router - File-based routing
- NativeWind - Styling engine
LifeSync/
βββ frontend/ # Patient-facing React application
β βββ src/
β β βββ components/ # Reusable UI components
β β βββ pages/ # Application pages
β β βββ context/ # React context for state management
β β βββ assets/ # Images and static assets
β βββ package.json
βββ admin/ # Admin, Hospital and Doctor panel React application
β βββ src/
β β βββ components/ # UI components
β β βββ pages/ # Admin/Doctor pages
β β βββ context/ # Context state
β β βββ assets/ # Admin panel assets
β βββ package.json
βββ mobile/ # Expo/React Native application
β βββ app/ # Main application screens (Expo Router)
β βββ components/ # Mobile-specific UI components
β βββ package.json
βββ backend/ # Node.js/Express API server
β βββ controllers/ # Request handlers
β βββ models/ # Database schemas
β βββ routes/ # API routes
β βββ package.json
βββ README.md # Project overview
βββ setup.md # Detailed setup and dev logsWe believe in maintaining professional, up-to-date documentation. Please refer to the following documents for deep dives into specific aspects of the project:
- Implementation Summary: A high-level report of recent changes, features, and system status.
- System Architecture: Technical overview of the MERN stack, database schema, and data flow.
- Setup Guide: Detailed step-by-step instructions to get the environment running.
- Google SSO Setup: Production & Pre-production configuration for Google OAuth.
- Apple SSO Setup: Production & Pre-production configuration for Apple Sign-In.
- Microsoft SSO Setup: Instructions for Microsoft Entra ID.
- Legal Documentation: Summary of Terms & Privacy Policy integration.
- Mobile Setup: Run the mobile app via Expo.
- Changelog: Chronological history of all changes and updates.
For a comprehensive guide on setting up each module and viewing the development history, please refer to the setup.md file.
- Node.js (v16 or higher)
- MongoDB (local or cloud instance)
- Cloudinary account (for image uploads)
- Expo Dev App
-
Clone the repository
git clone <repository-url> cd LifeSync
-
Install backend dependencies
cd backend npm install -
Install frontend dependencies
cd ../frontend npm install -
Install admin panel dependencies
cd ../admin npm install -
Install mobile dependencies
cd ../mobile && npm install
-
Environment Configuration
Create a
.envfile in thebackenddirectory with the following variables:MONGODB_URI=mongodb://localhost:27017 JWT_SECRET=your_jwt_secret_key CLOUDINARY_CLOUD_NAME=your_cloudinary_cloud_name CLOUDINARY_API_KEY=your_cloudinary_api_key CLOUDINARY_API_SECRET=your_cloudinary_api_secret PORT=4000
-
Start the backend server
cd backend npm run server # Development mode with nodemon # or npm start # Production mode
-
Start the frontend application
cd frontend npm run dev -
Start the admin panel
cd admin npm run dev -
Start the mobile app
cd mobile npx expo start
The applications will be available at:
- Frontend:
http://localhost:5173 - Admin Panel:
http://localhost:5174(or next available port) - Backend API:
http://localhost:4000 - Expo Dev Menu
POST /register- User registrationPOST /login- User loginPOST /google-login- Google LoginPOST /apple-login- Apple LoginPOST /microsoft-login- Microsoft LoginGET /get-profile- Get user profilePOST /update-profile- Update user profilePOST /book-appointment- Book an appointmentGET /appointments- Get user appointmentsPOST /delete-account- Delete user accountPOST /request-deletion-otp- Request deletion verificationPOST /request-email-change- Multi-step email change
POST /register- Doctor registrationPOST /login- Doctor loginGET /get-profile- Get doctor profilePOST /update-profile- Update doctor profileGET /appointments- Get doctor appointments
POST /register- Hospital registrationPOST /login- Hospital loginGET /get-profile- Get Hospital profileGET /get-doctors- Get institutional doctorsPOST /add-doctor- Add new doctor to your hospitalPOST /update-profile- Update Hospital profileGET /appointments- Get Hospital and their doctors appointments
POST /login- Admin loginGET /get-doctors- Get all doctorsPOST /add-doctor- Add new doctorGET /get-appointments- Get all appointmentsGET /get-users- Get all users
- Real-time slot availability checking
- 30-minute time slots from 10 AM to 9 PM
- Automatic slot blocking after booking
- Date-based slot management
- JWT-based authentication
- Role-based access control (Patient, Doctor, Hospital, Admin)
- Secure password hashing with bcrypt
- Protected routes and API endpoints
- Automatic session expiry handling: the frontend detects expired/invalid JWTs (401 responses or messages like "jwt expired"), automatically clears the session and redirects users to the login page. Backend auth middleware now returns standardized 401 responses with the underlying error message (e.g., "jwt expired") so the frontend can reliably detect this condition.
- Cloudinary integration for profile pictures
- Automatic image optimization and resizing
- Secure file upload with validation
- 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
This project is licensed under the ISC License - see the LICENSE file for details.
- Phone: +232-74-841-741, +232-88-915-854
- Email: [email protected], [email protected]
- Project Link: LifeSync Repository
- Thanks to all contributors who have helped improve this project
- Special thanks to the healthcare community for inspiration
- Built with β€οΈ for better healthcare accessibility
Copyright Β© 2025 LifeSync. All rights reserved.