An advanced, modular, and scalable Customer Relationship Management (CRM) system meticulously tailored for the dynamic needs of Medical Representatives, built with the power and efficiency of Go.
This project is engineered to provide a truly robust platform for managing sophisticated client interactions, from initial contact to ongoing engagement. It handles intricate visit planning, streamlined order processing, and insightful reporting. The system prioritizes:
- β‘ Exceptional performance for demanding workloads
- π οΈ Enhanced maintainability through clean code
- π Clear boundaries for better scalability
- π Future extensibility towards SaaS model
- Clear separation of concerns
- Independent module development
- Scalable component design
- Future-proof architecture
- π Role-based access control (RBAC)
- π Secure authentication
- π Detailed permission settings
- π Future: 2FA & audit trails
- Hierarchical geographical structure
- Performance tracking
- Workload distribution
- Sales strategy execution
- 360-degree HCP profiles
- Detailed demographics
- Interaction history
- Communication preferences
- Client segmentation
- Optimized routing
- Compliance reporting
- Field intelligence capture
- Visit feedback tracking
- Detailed product catalog
- Inventory integration
- Order processing
- Pricing tier management
- Status tracking
- Non-visit activity logging
- Expense report management
- Approval workflows
- Budget control
- Operational insights
- KPI tracking
- Trend analysis
- Comparative dashboards
- Basic forecasting
- Real-time alerts
- Visit reminders
- Approval requests
- Team coordination
- Internal messaging
| Category | Technology | Description |
|---|---|---|
| Backend | Go (Golang) | High performance, concurrency, standard library |
| Database | PostgreSQL | ACID compliance, JSONB support, extensibility |
| API | GraphQL (gqlgen) | Flexible data fetching, type safety |
| Auth | JWT | Stateless authentication |
| AuthZ | Casbin | Flexible access control models |
| Web Framework | Gin/Echo/Chi | Lightweight, efficient routing |
| ORM/DB | GORM/Ent/sqlx | Database interaction |
| Messaging | NATS/RabbitMQ | Async communication |
.
βββ api/ # API definitions (GraphQL, OpenAPI)
βββ cmd/ # Application entry points
βββ configs/ # Configuration files
βββ internal/ # Private application code
β βββ app/ # Application services
β βββ domain/ # Business logic
β βββ handler/ # HTTP/GraphQL handlers
β βββ infra/ # Infrastructure implementations
β βββ platform/ # Shared utilities
βββ pkg/ # Public library code
βββ migrations/ # Database migrations
βββ graph/ # GraphQL generated code
βββ scripts/ # Helper scripts
- Go 1.21+
- PostgreSQL 15+
- Docker & Docker Compose
- golang-migrate CLI
- make (optional)
# Clone the repository
git clone https://github.com/rixtrayker/medical-rep.git
# Navigate to project directory
cd medical-rep
# Start development environment
make dev
# Run migrations
make migrate-up
# Start the server
make run# Run tests
make test
# Build binary
make build
# Run linter
make lintWe welcome contributions! Please see our Contributing Guide for details.
This project is licensed under the MIT License - see the LICENSE file for details.
- Go
- PostgreSQL
- gqlgen
- Casbin
- And all other open-source projects that made this possible!