# Timebank.cc Library Reference Guide This document categorizes all packages and libraries used in the Timebank.cc application by importance and customization level. ## Critical Core Libraries *Essential for application functionality - removing these would break core features* ### Backend (PHP/Laravel) - **laravel/framework** (^10.0) - Application foundation - **livewire/livewire** (^3.0) - Reactive UI components, central to frontend architecture - **laravel/jetstream** (^4.0) - Authentication, teams, profile management - *Customized*: `app/Overrides/Laravel/Jetstream/Src/HasProfilePhoto.php` - Modified to handle multiple profile types and default images per profile type - **laravel/fortify** (^1.21) - Authentication backend for Jetstream - **laravel/scout** (^10.6) - Search abstraction layer - **matchish/laravel-scout-elasticsearch** (^7.5) - Elasticsearch integration - *Customized*: `app/Overrides/Matchish/ScoutElasticSearch/ElasticSearch/EloquentHitsIteratorAggregate.php` - Modified to merge highlights into search results - **spatie/laravel-permission** (^6.0) - Role-based access control for multi-profile system ### Frontend - **alpinejs** (^3.14.3) - Client-side reactivity, used extensively throughout UI - **tailwindcss** (^3.4.7) - Primary CSS framework - **@yaireo/tagify** (^4.17.8) - Skill tagging system interface - **laravel-echo** (^1.19.0) + **pusher-js** (^7.6.0) - Real-time communication foundation ## Important Feature Libraries *Significant functionality - removing would disable major features* ### Backend - **laravel/reverb** (@beta) - WebSocket server for real-time messaging - **namu/wirechat** (^0.2.10) - Chat/messaging system - *Customized*: Configured for multi-guard authentication in `config/wirechat.php` - **cviebrock/eloquent-taggable** (^10.0) - Tagging system backbone - *Extended*: Custom `Tag` model with locale support via `TaggableWithLocale` trait - **cybercog/laravel-love** (^10.0) - Reaction system (stars, bookmarks) - **mcamara/laravel-localization** (^2.0) - Multi-language routing and localization - **stevebauman/location** (^6.6) - IP-based location detection - **spatie/laravel-activitylog** (^4.7) - User activity tracking ### Frontend - **wireui/wireui** (^2.0) - Pre-built Tailwind components - *Customized*: Extensive published views in `resources/views/vendor/wireui/` - **@tailwindcss/forms** (^0.5.3) - Form styling foundation - **vite** (^6.3.5) - Modern asset bundling and development server ## Supporting Libraries *Enhance functionality but not critical for core operations* ### Backend - **maatwebsite/excel** (^3.1) - Export functionality - **dompdf/dompdf** (^3.0) - PDF generation - **spatie/laravel-medialibrary** (^11.0.0) - File upload management - **robsontenorio/mary** (^1.35) - Additional UI components - **propaganistas/laravel-phone** (^5.0) - Phone number validation - **simplesoftwareio/simple-qrcode** (~4) - QR code generation - **enflow/laravel-social-share** (^3.3) - Social media sharing links generation ### Frontend - **@fortawesome/fontawesome-free** (^6.2.1) - Icon library - **datatables.net** (^2.3.2) - Data table functionality - **bootstrap** (^4.6.2) - Legacy CSS framework (being phased out) - **dayjs** (^1.11.13) - Date manipulation - **toastr** (^2.1.4) - Notification system ## Custom Extensions & Helpers ### Custom Helper Classes - **TimeFormat.php** - Time formatting functions (`tbFormat()`, `dbFormat()`, `hoursAndMinutes()`) - Critical for time-based currency display - **StyleHelper.php** - Tailwind to hex color conversion (`tailwindColorToHex()`) - Essential for dynamic color generation - **SearchOptimizationHelper.php** - Advanced search optimization with location-based boosting - Enhances Elasticsearch results with custom scoring - **ProfileHelper.php**, **AuthHelper.php**, **StringHelper.php** - Core utilities ### Custom Traits - **SwitchGuardTrait** - Multi-profile authentication switching - **TaggableWithLocale** - Extends eloquent-taggable for multi-language support - **HasPresence** - Real-time presence tracking - **AccountInfoTrait**, **ProfilePermissionTrait** - Profile-specific functionality ## Development & Build Tools ### Build System - **vite** (^6.3.5) - Modern asset bundling and development server (primary) - **sass** (^1.56.1) - CSS preprocessing - **autoprefixer** (^10.4.20) - CSS vendor prefixing ### Development - **barryvdh/laravel-debugbar** (^3.7) - Development debugging - **laradumps/laradumps** (^2.2) - Enhanced debugging - **spatie/laravel-web-tinker** (^1.8) - Browser-based REPL ## Legacy & Migration Dependencies ### Phase-out Candidates - **bootstrap** (^4.6.2) - Being replaced by Tailwind CSS - **jquery** (via Bootstrap) - Being replaced by Alpine.js ### Specialized Libraries - **staudenmeir/*** packages - Advanced Eloquent relationship handling - **orangehill/iseed** (^3.0) - Database seeding from existing data - **pear/text_languagedetect** (^1.0) - Automatic language detection ## Configuration Notes ### Excluded from Autoloading Two vendor classes are excluded and overridden: - `vendor/laravel/jetstream/src/HasProfilePhoto.php` - `vendor/matchish/laravel-scout-elasticsearch/src/ElasticSearch/EloquentHitsIteratorAggregate.php` ### Key Customizations 1. **Multi-guard Authentication**: WireChat configured for 4 guard types 2. **Search Enhancement**: Custom search optimization with location boosting 3. **Tagging System**: Extended with locale support and category hierarchies 4. **Profile Photos**: Modified for multiple profile types with different defaults 5. **Time Formatting**: Custom currency formatting for time-based transactions ## Importance for New Features ### Must Understand - Livewire component architecture - Multi-profile authentication system - Tagging and categorization system - Search optimization patterns ### Can Ignore Initially - Legacy Bootstrap components - Excel export functionality - PDF generation - QR code features ### Critical for Real-time Features - Laravel Reverb configuration - WireChat integration - Presence tracking system - Echo/Pusher setup