Enterprise-grade modular platform for building scalable applications across healthcare, insurance, finance, and banking sectors. Built with clean architecture principles and Go, Evero provides a robust foundation for domain-specific services with shared infrastructure components.
Evero follows a modular monolith architecture with clear separation of concerns:
- Multi-Domain Support: Access (SSO), Healthcare, Insurance, Finance, and Banking modules
- Clean Architecture: Domain-driven design with layers (Entity, Use Case, Repository, Controller)
- Shared Infrastructure: Reusable components across all modules
- Event-Driven: Kafka integration for asynchronous messaging
- API-First: RESTful APIs with comprehensive validation
- Modular Deployment: Each module can be deployed independently
- Configuration Management: Environment-specific configurations (local, development, staging, production)
- Database Support: PostgreSQL with GORM ORM
- Caching: Redis integration for high-performance caching
- Message Broker: Kafka and RabbitMQ support
- Logging: Structured logging with Logrus and Zap
- Validation: Request validation with go-playground/validator
- Routing: Fiber v2 (primary framework)
Enterprise-grade single sign-on and access control system.
-
Authentication
- User registration and login
- JWT-based access and refresh tokens
- Token rotation and refresh
- Session management with device tracking
- Email verification workflow
-
Authorization
- Multi-company/tenant support
- OAuth 2.0 authorization code flow
- Two-factor authentication (TOTP)
- Role-based access control (RBAC)
- Fine-grained permissions
-
Security
- Password reset and verification
- Account lockout protection
- Audit logging
- bcrypt password hashing
- Secure token management
π Documentation: docs/access/IMPLEMENTATION_SUMMARY.md
Migration Guide: docs/SSO_MIGRATION_SUMMARY.md
Quick Start: docs/access/QUICK_REFERENCE.md
Build & Deploy:
make build-access # Build the module
make deploy-access # Deploy the moduleAPI: http://localhost:3000 (configurable)
Comprehensive healthcare management system for patient care, appointments, and medical records.
-
Patient Management
- Patient registration and demographics
- Medical history tracking
- Insurance information
- Emergency contacts
-
Appointments & Scheduling
- Appointment booking
- Provider availability
- Appointment reminders
- Waitlist management
-
Electronic Medical Records (EMR)
- Clinical notes
- Diagnosis recording (ICD-10)
- Prescription management
- Lab results integration
-
Billing Integration
- Insurance claim generation
- Payment processing
- Finance module integration
π Documentation: docs/healthcare/README.md
Build & Deploy:
make build-healthcare # Build the module
make deploy-healthcare # Deploy the moduleAPI: http://localhost:3001 (configurable)
Complete insurance management platform for policies, claims, and underwriting.
-
Policy Management
- Policy creation and issuance
- Premium calculation
- Renewals and endorsements
- Coverage management
-
Claims Processing
- Claim submission and intake
- Assessment and adjudication
- Payment processing
- Fraud detection
-
Underwriting
- Risk assessment
- Quote generation
- Automated underwriting rules
- Manual workflow support
-
Agent & Commission Management
- Agent registration
- Commission calculation
- Performance analytics
π Documentation: docs/insurance/README.md
Build & Deploy:
make build-insurance # Build the module
make deploy-insurance # Deploy the moduleAPI: http://localhost:3002 (configurable)
Comprehensive financial management system with general ledger, AR/AP, and budgeting.
-
General Ledger
- Chart of accounts
- Double-entry bookkeeping
- Journal entries
- Period closing
- Multi-currency support
-
Accounts Receivable/Payable
- Customer invoicing
- Payment tracking
- Aging reports
- Vendor management
-
Budgeting & Forecasting
- Budget creation
- Variance analysis
- Cash flow forecasting
-
Financial Reporting
- Balance sheet
- Income statement
- Cash flow statement
- Custom reports
π Documentation: docs/finance/README.md
Build & Deploy:
make build-finance # Build the module
make deploy-finance # Deploy the moduleAPI: http://localhost:3003 (configurable)
Core banking platform for account management, transactions, and lending (in planning).
π Documentation: docs/banking/README.md
Status: π Planning Phase
evero/
βββ Makefile # Root orchestration for all modules
βββ bin/ # Compiled binaries (gitignored)
β βββ access
β βββ healthcare
β βββ insurance
β βββ finance
β
βββ app/ # Application entry points
β βββ healthcare/ # Healthcare application
β βββ insurance/ # Insurance application
β βββ finance/ # Finance application
β
βββ modules/ # Domain modules
β βββ access/ # Authentication & Authorization module
β β βββ cmd/server/ # Entry point
β β βββ entities/ # Domain entities
β β βββ models/ # Request/Response models
β β βββ repositories/ # Data access layer
β β βββ usecases/ # Business logic
β β βββ controllers/ # HTTP handlers
β β βββ route.go # Route definitions
β βββ healthcare/ # Healthcare domain module
β βββ delivery/ # HTTP handlers/controllers
β βββ entity/ # Domain entities
β βββ features/ # Business logic (use cases)
β βββ gateway/ # External integrations
β βββ model/ # Request/Response models
β βββ repository/ # Data access layer
β βββ test/ # Unit and integration tests
β
βββ infrastructure/ # Shared infrastructure components
β βββ cache/ # Cache management (Redis, In-memory)
β βββ config/ # Configuration management
β βββ database/ # Database connections
β βββ logger/ # Logging utilities
β βββ message-broker/ # Kafka/RabbitMQ integration
β βββ router/ # HTTP routers (Fiber, Gin, Mux)
β βββ setup/ # Infrastructure bootstrapping
β βββ validator/ # Request validation
β
βββ config/ # Configuration files
β βββ access/ # Access module configs
β β βββ local.json
β β βββ development.json
β β βββ stage.json
β β βββ production.json
β βββ healthcare/ # Healthcare configs
β βββ insurance/ # Insurance configs
β βββ finance/ # Finance configs
β
βββ database/ # Database migrations and seeds
β βββ access/migrations/ # SSO database schemas
β βββ healthcare/migrations/ # Healthcare schemas
β βββ insurance/migrations/ # Insurance schemas
β βββ finance/migrations/ # Finance schemas (10 tables)
β
βββ deployment/ # Deployment configurations
β βββ access/ # Access module deployment
β β βββ Makefile # Deployment tasks
β β βββ setup.sh # Setup script
β β βββ Dockerfile
β β βββ docker-compose.yml
β βββ healthcare/ # Healthcare deployment
β βββ insurance/ # Insurance deployment
β βββ finance/ # Finance deployment
β
βββ packages/ # External service integrations
β βββ lib/ # Shared libraries
β βββ sendgrid/ # Email service
β βββ twilio/ # SMS service
β
βββ docs/ # Documentation
βββ evero/ # Platform technical docs
βββ access/ # Access module documentation
βββ healthcare/ # Healthcare module documentation
βββ insurance/ # Insurance module documentation
βββ finance/ # Finance module documentation
βββ banking/ # Banking module documentation
- Go: 1.24.4
- Web Framework: Fiber v2 (primary), Gin, Gorilla Mux
- ORM: GORM v1.30.3
- Database: PostgreSQL (primary), MySQL support via drivers
- Validation: go-playground/validator v10
- Cache: Redis (go-redis v9)
- Message Broker: Apache Kafka (Sarama v1.46), RabbitMQ
- Logging: Logrus v1.9.3, Zap v1.27.0
- Configuration: Viper v1.20.1
- Database Drivers:
- PostgreSQL: lib/pq v1.10.9
- MySQL: gorm.io/driver/mysql v1.6.0
- Security: bcrypt (golang.org/x/crypto v0.41.0)
- UUID: google/uuid v1.6.0
- Go: 1.24.4 or higher
- PostgreSQL: 14 or higher
- Redis: 6 or higher (optional, for caching)
- Kafka: 2.8 or higher (optional, for event streaming)
- Make: For using the Makefile commands
-
Clone the repository
git clone https://github.com/prayaspoudel/evero.git cd evero -
View available commands
make help -
Setup a module (e.g., healthcare)
make setup-healthcare
-
Build a module
make build-healthcare
-
Run migrations
make migrate-healthcare
-
Deploy a module
make deploy-healthcare
Each module can be set up and deployed independently:
Access Module (SSO):
make setup-access # Setup access module
make build-access # Build binary
make deploy-access # Deploy with migrationsHealthcare Module:
make setup-healthcare
make build-healthcare
make deploy-healthcareFinance Module:
make setup-finance
make build-finance
make deploy-financeAll Modules:
make setup-all # Setup all modules
make build-all # Build all modules
make deploy-all # Deploy all modulesmake statusOutput:
π Module Status
================================
Access: β
Built
Healthcare: β
Built
Insurance: β Not built
Finance: β
Built
================================
Evero uses environment-specific JSON configuration files. Each module has its own configuration directory:
config/
βββ access/
β βββ local.json # Local development
β βββ development.json # Development environment
β βββ stage.json # Staging environment
β βββ production.json # Production environment
βββ healthcare/
βββ insurance/
βββ finance/
Each module follows a consistent configuration structure:
{
"app": {
"name": "Evero Healthcare API",
"version": "1.0.0"
},
"web": {
"port": 3000,
"prefork": false,
"cors_enabled": true
},
"database": {
"host": "localhost",
"port": 5432,
"username": "postgres",
"password": "postgres",
"name": "evero_db",
"sslmode": "disable",
"pool": {
"idle": 10,
"max": 100,
"lifetime": 300
}
},
"kafka": {
"bootstrap.servers": "localhost:9092",
"producer.enabled": false,
"group.id": "evero-service"
},
"redis": {
"host": "localhost",
"port": 6379,
"password": "",
"db": 0
},
"log": {
"level": "info",
"format": "json"
}
}Set the environment using:
export EVERO_ENV=production # Options: local, development, stage, productionOr specify when running:
./bin/access --config=config/access/production.json# Run all tests
go test ./...
# Test specific module
make test-access
make test-healthcare
make test-finance
# All module tests
make test-all
# Run with coverage
go test -cover ./...Check which modules are built:
make statusCentralized configuration loading with support for:
- Environment-specific files
- Module-specific overrides
- Type-safe access methods
- Hot-reload capability
See infrastructure/config/example_usage.md
Multi-backend caching support:
- Redis
- In-memory cache
- Factory pattern for easy switching
Database connection management:
- PostgreSQL support with GORM
- Connection pooling
- Migration support
- Multi-database support
Event-driven messaging:
- Kafka producer/consumer
- RabbitMQ support
- Async event publishing
HTTP routing with multiple framework support:
- Fiber v2 (primary)
- Gin
- Gorilla Mux
Structured logging:
- Logrus
- Zap
- Configurable log levels
- JSON formatting
See infrastructure/ for detailed documentation.
- Authentication: JWT-based token authentication
- Password Security: bcrypt hashing
- Input Validation: Comprehensive request validation
- SQL Injection: Protected via ORM parameterized queries
- Authorization: User-specific data isolation
Each module can be deployed independently using Docker:
# Build Docker image
make docker-build-access
# Start containers
make docker-up-access
# Stop containers
make docker-down-accessEach module has its own deployment configuration:
deployment/
βββ access/
β βββ Makefile # Deployment commands
β βββ setup.sh # Setup script
β βββ Dockerfile # Docker image
β βββ docker-compose.yml # Orchestration
βββ healthcare/
βββ insurance/
βββ finance/
Set the environment variable:
export EVERO_ENV=productionConfiguration files are loaded based on this variable:
localβ config/[module]/local.jsondevelopmentβ config/[module]/development.jsonstageβ config/[module]/stage.jsonproductionβ config/[module]/production.json
-
Build the module:
make build-access
-
Run migrations:
make migrate-access
-
Start the service:
./bin/access --config=config/access/production.json
Or use the combined deploy command:
make deploy-access # Builds + migratesAll API responses follow a consistent format:
Success Response:
{
"code": 200,
"status": "success",
"data": { ... }
}Error Response:
{
"code": 400,
"status": "error",
"message": "Validation failed",
"errors": ["field: first_name is required"]
}List endpoints support pagination:
GET /api/v1/[resource]?page=1&size=10
Response includes metadata:
{
"data": [...],
"pagination": {
"page": 1,
"size": 10,
"total_items": 50,
"total_pages": 5
}
}-
Access Module: Authentication, authorization, OAuth 2.0, 2FA
-
Healthcare Module: Patient management, appointments, EMR
-
Insurance Module: Policies, claims, underwriting
-
Finance Module: General ledger, invoicing, budgeting
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Follow Go standard formatting (
gofmt) - Write meaningful commit messages
- Add tests for new features
- Update documentation as needed
- Use the Makefile for common tasks
- Create a new module or feature
- Write tests first (TDD approach)
- Implement the feature
- Run tests:
make test-[module] - Format code:
make fmt - Run linter:
make lint - Update documentation
- Submit PR
- Access Module - Authentication & authorization
- Healthcare Module - Healthcare management
- Insurance Module - Insurance operations
- Finance Module - Financial management
- Banking Module - Banking services (planned)
- Platform Architecture - Platform architecture and design principles
- Deployment Guide - Comprehensive deployment instructions
- Infrastructure Guide - Shared infrastructure components
- Postman Testing Guide - API testing with Postman
- SSO Migration Summary - Access module migration details
- Access Quick Reference
- Makefile Commands - Use
make help
This project is private and proprietary.
- Prayas Poudel - @prayaspoudel
- Built with Go and the amazing Go ecosystem
- Inspired by clean architecture principles
- Designed for scalability and maintainability
For questions or issues, please contact the development team or open an issue in the repository.
Note: This is a private repository. Please ensure you have proper authorization before accessing or using this codebase.