A comprehensive insurance provider management portal built with Node.js/Express backend and modern frontend, featuring policy management, claims processing, payment handling, and robust audit logging.
- Policy Management: Create, update, and manage insurance policies
- Claims Processing: Automated claim validation, assessment, and approval workflows
- Payment Processing: Integrated Stripe and PayPal payment processing
- Role-Based Access Control (RBAC): Granular permissions for different user roles
- Audit Logging: Comprehensive logging of all system activities
- Queue Management: Bull/Redis-based queue system for claim processing
- Reporting & Analytics: Data aggregation and reporting APIs
- Dashboard: Real-time dashboard with metrics and visualizations
- JWT-based authentication
- Password hashing with bcrypt
- Rate limiting and security headers
- PII/PHI access tracking
- Compliance reporting
- Fraud detection indicators
- Stripe: Credit card processing with PaymentIntents
- PayPal: PayPal payment gateway integration
- Multiple Methods: Bank transfers, checks, cash
- Refund Processing: Automated refund workflows
- Node.js 16.x or higher
- MongoDB 4.4 or higher
- Redis 6.0 or higher (for queue management)
Create a .env file based on .env.example:
# Database Configuration
MONGODB_URI=mongodb://localhost:27017/insurance_portal
# JWT Configuration
JWT_SECRET=your_super_secret_jwt_key_here
JWT_EXPIRE=7d
# Stripe Configuration
STRIPE_SECRET_KEY=sk_test_your_stripe_secret_key
STRIPE_PUBLISHABLE_KEY=pk_test_your_stripe_publishable_key
# PayPal Configuration
PAYPAL_CLIENT_ID=your_paypal_client_id
PAYPAL_CLIENT_SECRET=your_paypal_client_secret
PAYPAL_MODE=sandbox
# Redis Configuration
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_PASSWORD=
# Email Configuration
EMAIL_HOST=smtp.gmail.com
EMAIL_PORT=587
EMAIL_USER=your_email@gmail.com
EMAIL_PASS=your_email_password
# Server Configuration
PORT=5000
NODE_ENV=development- Clone the repository
git clone https://github.com/damzempire/health-care.git
cd health-care- Install dependencies
npm install- Set up environment variables
cp .env.example .env
# Edit .env with your configuration- Set up MongoDB
# Make sure MongoDB is running
mongod- Set up Redis
# Make sure Redis is running
redis-server- Start the application
# Development mode
npm run dev
# Production mode
npm startThe application will be available at http://localhost:5000
βββ models/ # Mongoose models
β βββ User.js # User model with RBAC
β βββ Policy.js # Policy management
β βββ Claim.js # Claims processing
β βββ Payment.js # Payment processing
β βββ AuditLog.js # Audit logging
βββ routes/ # API routes
β βββ auth.js # Authentication routes
β βββ policies.js # Policy management
β βββ claims.js # Claims processing
β βββ payments.js # Payment processing
β βββ reports.js # Reporting APIs
β βββ audit.js # Audit log APIs
βββ middleware/ # Express middleware
β βββ auth.js # Authentication & authorization
β βββ auditLogger.js # Audit logging middleware
β βββ errorHandler.js # Error handling
βββ services/ # Business logic services
β βββ queueService.js # Queue management
β βββ notificationService.js # Notifications
βββ server.js # Express server setup
βββ public/
β βββ index.html # Main dashboard
β βββ css/
β β βββ dashboard.css # Custom styles
β βββ js/
β βββ dashboard.js # Frontend JavaScript
- Full system access
- User management
- System configuration
- All permissions
- Policy management (CRUD)
- Claims submission and tracking
- Payment processing
- Report generation
- Policy creation and reading
- Claims submission
- Basic payment access
- Claims processing and approval
- Payment processing
- Report reading
POST /api/auth/login
Content-Type: application/json
{
"email": "user@example.com",
"password": "password123"
}POST /api/auth/register
Content-Type: application/json
{
"username": "johndoe",
"email": "john@example.com",
"password": "password123",
"role": "provider",
"profile": {
"firstName": "John",
"lastName": "Doe"
}
}POST /api/policies
Authorization: Bearer <token>
Content-Type: application/json
{
"policyHolder": {
"firstName": "Jane",
"lastName": "Doe",
"contact": {
"email": "jane@example.com",
"phone": "555-0123"
}
},
"policyType": "health",
"premium": {
"amount": 250.00,
"frequency": "monthly"
},
"term": {
"startDate": "2024-01-01",
"endDate": "2024-12-31"
}
}GET /api/policies?page=1&limit=10&status=active
Authorization: Bearer <token>POST /api/claims
Authorization: Bearer <token>
Content-Type: application/json
{
"policy": "policy_id",
"claimant": {
"name": "John Doe",
"contact": {
"email": "john@example.com",
"phone": "555-0123"
}
},
"incident": {
"date": "2024-01-15",
"type": "Medical",
"description": "Emergency room visit"
},
"claimType": "medical",
"estimatedAmount": 5000.00
}POST /api/claims/:id/validate
Authorization: Bearer <token>POST /api/payments/process-premium
Authorization: Bearer <token>
Content-Type: application/json
{
"policyId": "policy_id",
"amount": 250.00,
"method": "stripe",
"paymentMethodId": "pm_stripe_id"
}POST /api/payments/stripe/create-intent
Authorization: Bearer <token>
Content-Type: application/json
{
"amount": 250.00,
"currency": "usd"
}GET /api/reports/dashboard?period=month
Authorization: Bearer <token>GET /api/reports/claims?startDate=2024-01-01&endDate=2024-01-31&format=excel
Authorization: Bearer <token>GET /api/reports/performance?period=quarter
Authorization: Bearer <token>The system uses Bull with Redis for queue-based claim processing:
- Validation Queue: Validates claim against policy terms
- Assessment Queue: Automated assessment and fraud detection
- Approval Queue: Auto-approval for low-risk claims
- Payment Queue: Process approved claim payments
// Add claim to processing queue
await addClaimToQueue(claimId, 'high');
// Get queue statistics
const stats = await getQueueStats();
// Pause/Resume queues
await pauseQueue('claims');
await resumeQueue('claims');- Dashboard: Real-time statistics and metrics
- Claims: Detailed claims analysis
- Payments: Payment processing reports
- Performance: System performance metrics
- Compliance: Audit and compliance reports
- JSON (API response)
- Excel (via excel4node)
- PDF (via PDFKit)
// Example aggregation for dashboard stats
const stats = await Claim.aggregate([
{ $match: { createdAt: { $gte: startDate, $lte: endDate } } },
{
$group: {
_id: '$status',
count: { $sum: 1 },
totalAmount: { $sum: '$estimatedAmount' }
}
}
]);All user actions are automatically logged with:
- User information and role
- Action performed
- Resource affected
- Timestamp and IP address
- Risk level assessment
- PII/PHI access tracking
- Data access pattern analysis
- High-risk activity monitoring
- Retention period management
- Review workflow for critical actions
GET /api/audit/logs?startDate=2024-01-01&endDate=2024-01-31
GET /api/audit/high-risk?riskLevel=critical
GET /api/audit/compliance?startDate=2024-01-01&endDate=2024-01-31# Run all tests
npm test
# Run with coverage
npm run test:coverage
# Run specific test file
npm test -- tests/auth.test.jstests/
βββ auth.test.js # Authentication tests
βββ policies.test.js # Policy management tests
βββ claims.test.js # Claims processing tests
βββ payments.test.js # Payment processing tests
βββ reports.test.js # Reporting tests
# Build image
docker build -t insurance-portal .
# Run with Docker Compose
docker-compose up -d- Set
NODE_ENV=production - Configure production database
- Set up SSL certificates
- Configure reverse proxy (nginx)
- Set up monitoring and logging
NODE_ENV=production
PORT=443
MONGODB_URI=mongodb://prod-mongo:27017/insurance_portal_prod
JWT_SECRET=your_production_secret- Fork the repository
- Create a feature branch
- Make your changes
- Add tests for new functionality
- Submit a pull request
- Use ESLint for code formatting
- Follow JavaScript Standard Style
- Add comments for complex logic
- Update documentation
This project is licensed under the MIT License - see the LICENSE file for details.
For support and questions:
- Create an issue in the repository
- Email: support@insurance-portal.com
- Documentation: docs.insurance-portal.com
- Initial release
- Core policy and claims management
- Payment processing integration
- Audit logging system
- Dashboard and reporting
- Mobile app
- Advanced analytics
- Machine learning for fraud detection
- Multi-tenant support
- Advanced workflow automation
- Memory: 512MB minimum, 2GB recommended
- CPU: 1 core minimum, 2 cores recommended
- Storage: 10GB minimum
- Network: 1Gbps recommended for high volume
- API Response Time: <200ms average
- Claim Processing: <5 minutes for standard claims
- Concurrent Users: 1000+ supported
- Database: Optimized for 1M+ policies
- All sensitive data encrypted at rest
- PII/PHI access logging
- Regular security audits
- Penetration testing
- HTTPS enforced
- Rate limiting
- IP whitelisting available
- DDoS protection
- Multi-factor authentication (planned)
- Session management
- Password policies
- Account lockout protection
Built with β€οΈ by Damz Empire