A comprehensive web-based clinic management system designed to streamline operations across multiple outpatient clinics with real-time appointment management, patient records, billing, and insurance workflows.
- Appointment Management: Real-time scheduling, conflict detection, multi-clinic support
- Patient Records: Unified profiles with medical history, documents, and cross-clinic access
- Billing & Payments: Multi-mode payment processing, partial payments, automated invoicing
- Insurance Management: Claim lifecycle tracking, document management, automated follow-ups
- Reporting & Analytics: Real-time dashboards, revenue reports, performance metrics
- User Management: Role-based access control, audit logging, multi-clinic support
- π Real-time appointment scheduling with conflict detection
- π₯ Multi-role support (Front Desk, Doctors, Nurses, Billing, Insurance, Management)
- π₯ Multi-clinic operations with centralized data
- π³ Comprehensive billing with multiple payment methods
- π Near real-time reporting and analytics
- π Role-based access control with audit trails
- π± Responsive web interface for all devices
- Layered Architecture: 4-tier separation (Presentation β Service β Domain β Data)
- Service-Oriented Design: Independent subsystems for each business domain
- Client-Server Model: Browser-based SPA with REST API backend
- Event-Driven Components: Async notifications and workflow triggers
- Node.js with Express.js framework
- MongoDB with Mongoose ODM
- JWT for authentication
- Multer for file uploads
- Express Validator for input validation
- React with modern hooks
- Tailwind CSS for styling
- Axios for API communication
- React Router for navigation
- MongoDB for primary data storage
- GridFS for document storage
- Redis for caching (optional)
- Node.js (v16 or higher)
- MongoDB (v4.4 or higher)
- Git
- Clone the repository
git clone <repository-url>
cd integrated-clinic-operations-management-system- Install dependencies
npm run install-all- Environment Setup
cp server/.env.example server/.env
# Edit server/.env with your configuration- Database Setup
# Start MongoDB service
mongod
# The application will auto-create the database and indexes- Start the Application
# Development mode (runs both frontend and backend)
npm run dev
# Or separately:
npm run server # Backend only
npm run client # Frontend only- Access the Application
- Frontend: http://localhost:3000
- Backend API: http://localhost:5000
- Health Check: http://localhost:5000/api/health
integrated-clinic-operations-management-system/
βββ server/ # Backend application
β βββ config/ # Configuration files
β β βββ database.js # Database connection and indexes
β βββ middleware/ # Express middleware
β β βββ auth.js # Authentication & authorization
β βββ models/ # Mongoose data models
β β βββ User.js # User model with RBAC
β β βββ Patient.js # Patient records model
β β βββ Appointment.js # Appointment scheduling model
β β βββ Clinic.js # Clinic information model
β β βββ Bill.js # Billing and payments model
β β βββ InsuranceClaim.js # Insurance claims model
β βββ routes/ # API route handlers
β β βββ auth.js # Authentication endpoints
β β βββ appointments.js # Appointment management
β β βββ patients.js # Patient records
β β βββ billing.js # Billing and payments
β β βββ insurance.js # Insurance management
β β βββ reports.js # Reporting and analytics
β βββ index.js # Main server entry point
βββ client/ # React frontend application
β βββ public/ # Static assets
β βββ src/ # Source code
β β βββ components/ # React components
β β βββ pages/ # Page components
β β βββ services/ # API service functions
β β βββ hooks/ # Custom React hooks
β β βββ utils/ # Utility functions
β β βββ App.js # Main application component
β βββ package.json # Frontend dependencies
βββ uploads/ # File upload storage
β βββ patients/ # Patient documents
β βββ insurance/ # Insurance claim documents
βββ docs/ # Documentation
βββ package.json # Root package.json
βββ README.md # This file
- Front Desk Staff: Appointment booking, patient check-in/out
- Doctors: Patient records, consultation notes, medical data
- Nurses: Vitals, test results, patient assistance
- Billing Staff: Bill generation, payment processing
- Insurance Team: Claim submission, tracking, follow-ups
- Management: Reports, analytics, oversight
- System Admin: User management, system configuration
- Role-based access control (RBAC)
- Granular permissions per module
- Audit logging for all actions
- Multi-clinic access control
POST /api/auth/register- Register new userPOST /api/auth/login- User loginGET /api/auth/profile- Get user profilePUT /api/auth/profile- Update user profile
GET /api/appointments- List appointmentsPOST /api/appointments- Create appointmentPUT /api/appointments/:id- Update appointmentPOST /api/appointments/:id/checkin- Check-in patientPOST /api/appointments/:id/start-consultation- Start consultation
GET /api/patients- List patientsPOST /api/patients- Create patientGET /api/patients/:id- Get patient detailsPUT /api/patients/:id- Update patientPOST /api/patients/:id/documents- Upload documents
GET /api/billing- List billsPOST /api/billing- Create billPOST /api/billing/:id/payments- Add paymentGET /api/billing/outstanding/list- Get outstanding bills
GET /api/insurance- List insurance claimsPOST /api/insurance- Create insurance claimPOST /api/insurance/:id/submit- Submit claimPOST /api/insurance/:id/documents- Upload documents
GET /api/reports/dashboard- Dashboard statisticsGET /api/reports/clinic-utilization- Clinic utilization reportGET /api/reports/doctor-performance- Doctor performance reportGET /api/reports/revenue- Revenue report
Key environment variables in server/.env:
PORT=5000 # Server port
MONGODB_URI=mongodb://localhost:27017/icoms # Database connection
JWT_SECRET=your-secret-key # JWT signing secret
CLIENT_URL=http://localhost:3000 # Frontend URL (CORS)- MongoDB automatically creates required indexes on startup
- Supports replica sets for production
- GridFS for document storage
# Backend tests
cd server && npm test
# Frontend tests
cd client && npm test
# Integration tests
npm run test:integration- Unit tests for all models and services
- Integration tests for API endpoints
- Frontend component tests
- End-to-end test scenarios
- Environment Preparation
export NODE_ENV=production
export MONGODB_URI=mongodb://prod-server:27017/icoms
export JWT_SECRET=your-production-secret- Build Application
npm run build- Start Production Server
npm start# Build Docker image
docker build -t icoms .
# Run container
docker run -p 5000:5000 icoms- Database indexing for fast queries
- Redis caching for frequently accessed data
- Connection pooling for database
- Compressed responses with gzip
- Rate limiting for API protection
- Stateless API design
- Horizontal scaling support
- Load balancer ready
- Database sharding support
- Microservices architecture ready
- JWT-based authentication
- Role-based access control
- Input validation and sanitization
- SQL injection prevention
- XSS protection
- CSRF protection
- Rate limiting
- Audit logging
- File upload security
- HTTPS enforcement in production
- Structured logging with winston
- Log levels: error, warn, info, debug
- File and console output
- Request/response logging
- Error tracking
- Health check endpoint
- Performance metrics
- Database connection monitoring
- Memory usage tracking
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests for new functionality
- Ensure all tests pass
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
For support and questions:
- Create an issue in the repository
- Check the documentation
- Review the FAQ section
- Initial release with core functionality
- Appointment management
- Patient records
- Billing system
- Insurance management
- Basic reporting
- Patient mobile app
- SMS/WhatsApp notifications
- Advanced analytics
- Lab and pharmacy integrations
- Telemedicine support
Built with β€οΈ for healthcare professionals