Files
timebank-cc-public/references/LIBRARY_REFERENCE.md
Ronald Huynen 2547717edb Initial commit
2026-03-23 21:37:59 +01:00

6.0 KiB

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