π Live Application: life-clinic-management-system.vercel.app
A modern, secure, and feature-rich clinic management system built with React 19, Firebase, and Tailwind CSS. Streamline your healthcare operations with comprehensive patient management, appointment scheduling, prescription management, billing systems, and role-based access control.
Our clinic management system is built with cutting-edge technologies to ensure performance, security, and scalability:
- Firebase Authentication with email/password
- Email Verification for account activation
- Password Reset functionality
- Role-Based Access Control (Doctor & Receptionist)
- Protected Routes for unauthorized access prevention
- Secure Firestore Rules for data protection
- Real-time Statistics (appointments, waiting patients, prescriptions)
- Appointment Management with patient details
- Prescription Creation & Management
- Medicine Database with search and filtering
- Patient Queue Management with token system
- Prescription History and editing capabilities
- Appointment Scheduling and management
- Token Management system for patient queues
- Patient Registration and information management
- Prescription Viewing and management
- Real-time Updates across all systems
- Invoice Creation with detailed itemization
- Multiple Payment Methods (Cash, Card, Online)
- Payment Processing and status tracking
- Payment History and reporting
- PDF Generation for invoices and prescriptions
- Revenue Analytics and financial reports
- Responsive Design for all devices
- Beautiful Gradients and modern aesthetics
- Real-time Updates with Firebase listeners
- Interactive Components with smooth animations
- Toast Notifications for user feedback
- Search & Filter capabilities throughout
Experience the application live at: life-clinic-management-system.vercel.app
- Doctor: Create a new account with Doctor role
- Receptionist: Create a new account with Receptionist role
Here's a comprehensive preview of all the key features and interfaces in the Life Clinic Management System:
- Node.js (v16 or higher)
- npm or yarn
- Firebase project
git clone https://github.com/dhruvpatel16120/clinic-management-system.git
cd clinic-management-system
npm install- Go to Firebase Console
- Create a new project or select existing one
- Enable Authentication (Email/Password)
- Enable Firestore Database (test mode)
- Get your Firebase configuration
cp env.example.txt .envUpdate .env with your Firebase config:
VITE_FIREBASE_API_KEY=your_api_key
VITE_FIREBASE_AUTH_DOMAIN=your_project.firebaseapp.com
VITE_FIREBASE_PROJECT_ID=your_project_id
VITE_FIREBASE_STORAGE_BUCKET=your_project.appspot.com
VITE_FIREBASE_MESSAGING_SENDER_ID=your_sender_id
VITE_FIREBASE_APP_ID=your_app_idImportant: You must configure Firestore security rules to ensure proper data access control.
- Go to Firestore Database in your Firebase Console
- Click on "Rules" tab
- Replace the default rules with the following:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
// Staff data access control
match /staffData/{userId} {
allow read, write: if request.auth != null && request.auth.uid == userId;
allow create: if request.auth != null && request.auth.uid == userId;
}
// Appointments access control
match /appointments/{document} {
allow read: if request.auth != null;
allow write: if request.auth != null &&
(resource == null || resource.data.createdBy == request.auth.uid);
}
// Prescriptions access control
match /prescriptions/{document} {
allow read: if request.auth != null;
allow write: if request.auth != null &&
(resource == null || resource.data.doctorId == request.auth.uid);
}
// Medicines access control
match /medicines/{document} {
allow read: if request.auth != null;
allow write: if request.auth != null;
}
// Invoices access control
match /invoices/{document} {
allow read: if request.auth != null;
allow write: if request.auth != null &&
(resource == null || resource.data.createdBy == request.auth.uid);
}
}
}- Click "Publish" to save the rules
Why These Rules Matter:
- Security: Prevents unauthorized access to sensitive data
- Role-based Access: Ensures users can only access their own data
- Data Protection: Protects patient information and medical records
- Compliance: Meets healthcare data security requirements
npm run devVisit http://localhost:5173 to see your application!
src/
βββ components/ # Reusable UI components
β βββ LogoutButton.jsx
β βββ ProtectedRoute.jsx
β βββ EmailVerificationStatus.jsx
β βββ TokenDisplay.jsx
βββ contexts/ # React context providers
β βββ AuthContext.jsx
βββ firebase/ # Firebase configuration
β βββ config.js
βββ hooks/ # Custom React hooks
β βββ useAuth.js
βββ pages/ # Application pages
β βββ auth/ # Authentication pages
β β βββ Login.jsx
β β βββ Signup.jsx
β β βββ ForgotPasswordForm.jsx
β β βββ VerifyEmail.jsx
β βββ doctor/ # Doctor-specific pages
β β βββ Doctor.jsx
β β βββ appointment/
β β βββ prescriptions/
β β βββ token/
β βββ receptionist/ # Receptionist-specific pages
β β βββ Receptionist.jsx
β β βββ appointment/
β β βββ billing/
β β βββ prescriptions/
β β βββ token/
β βββ Home.jsx
βββ utils/ # Utility functions
β βββ authUtils.js
βββ App.jsx # Main application component
βββ main.jsx # Application entry point
| Command | Description |
|---|---|
npm run dev |
Start development server |
npm run build |
Build for production |
npm run preview |
Preview production build |
npm run lint |
Run ESLint for code quality |
This application is deployed on Vercel and is live at: life-clinic-management-system.vercel.app
- Email verification required for account activation
- Role-based access control with protected routes
- Secure password reset via email
- Firestore security rules for data protection
- Authentication state management with React Context
- Protected API endpoints and data access
The system uses Firebase's built-in email verification:
- Automatic Email: Sent when users sign up
- Verification Status: Real-time display on dashboard
- Manual Refresh: Users can check verification status
- Reliable System: Direct integration with Firebase Auth
- React 19 - Modern React with latest features
- Vite - Fast build tool and development server
- Tailwind CSS 4 - Utility-first CSS framework
- React Router DOM - Client-side routing
- React Hot Toast - Beautiful notifications
- Lucide React - Beautiful icons
- Firebase Authentication - User management
- Firestore - NoSQL cloud database
- Firebase Security Rules - Data access control
- ESLint - Code quality and consistency
- PostCSS - CSS processing
- Autoprefixer - CSS vendor prefixing
- Mobile-first approach
- Tablet and desktop optimized
- Touch-friendly interface
- Cross-browser compatibility
- Live Updates with Firebase listeners
- Real-time Statistics on dashboards
- Instant Notifications for actions
- Live Patient Queue management
- Patient Records with comprehensive information
- Appointment Scheduling with date/time management
- Prescription Management with medicine database
- Billing System with invoice generation
- Token System for patient queue management
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
- Follow the existing code style
- Add proper error handling
- Include relevant tests
- Update documentation as needed
This project is licensed under the MIT License - see the LICENSE file for details.
Dhruv Patel
- GitHub: @dhruvpatel16120
- Live Demo: life-clinic-management-system.vercel.app
- Firebase for backend services
- Vercel for hosting and deployment
- React Team for the amazing framework
- Tailwind CSS for the beautiful styling system
- Open Source Community for inspiration and tools
If you have any questions or need help:
- Check the Documentation
- Open an Issue
- Star the repository if you find it helpful













