$ show monicahq/monica
Monica is an open source personal relationship management system (PRM) built with Laravel and Vue.js that functions as a 'CRM for your friends and family'. The system features comprehensive contact management, relationship tracking, activity logging (notes, calls, tasks), life event tracking, document management, and journaling capabilities. It implements a modular domain-driven architecture with clear separation between backend services, view helpers for data preparation, and frontend components. The application includes CardDAV synchronization for external contact sync, multi-vault/user support, notification systems (email/Telegram), reporting features, and extensive internationalization (27+ languages). Built with modern Laravel practices including service contracts, queueable jobs, event-driven architecture, and comprehensive testing.
The LLM identified 3 files worth highlighting for reuse:
Base service class providing a consistent pattern for business logic execution with built-in validation helpers (valueOrNull, valueOrTrue) and separation of concerns between validation, permissions, and execution logic. Demonstrates clean architectural separation that could be extracted to other projects.
View helper responsible for preparing data for the vault show page, encapsulating all data transformation logic in a single place. Shows clean separation between data preparation and presentation concerns, making it easy to modify how data is presented without affecting business logic.
Isolated utility class for handling monetary values with proper precision, preventing floating-point errors in financial calculations. Demonstrates attention to domain-specific details that are often overlooked in applications handling money.