136 lines
6.0 KiB
Markdown
136 lines
6.0 KiB
Markdown
# 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 |