Files
L-Ami-Fiduciaire/docs/source-tree-analysis.md
Saad Ibn-Ezzoubayr 35545c2a8f feat: L'Ami Fiduciaire V1.0.0 — full codebase with Story 0.1 complete
Initial commit of the L'Ami Fiduciaire SaaS platform built on Laravel 12,
Vue 3, Inertia.js 2, and Tailwind CSS 4.

Story 0.1 (rename folders to declarations in database) is implemented and
code-reviewed: migration, rollback, and 6 Pest tests all passing.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 23:33:10 +00:00

10 KiB

Source Tree Analysis — L'Ami Fiduciaire

Generated: 2026-03-08 | Scan Level: Quick | Repository Type: Monolith

Annotated Directory Tree

l'ami fiduciaire/
├── app/                            # Laravel application code (backend)
│   ├── Actions/
│   │   └── Fortify/                # Custom Fortify auth actions (CreateNewUser, ResetUserPassword)
│   ├── Concerns/                   # Shared traits (PasswordValidationRules, ProfileValidationRules)
│   ├── Enums/                      # Business domain enums (9 enums)
│   │   ├── ActorType.php
│   │   ├── ClientStatus.php
│   │   ├── FolderPriority.php
│   │   ├── FolderStatus.php
│   │   ├── FolderType.php
│   │   ├── LegalForm.php
│   │   ├── MessageType.php
│   │   ├── UserGroup.php
│   │   └── WorkspaceUserRole.php
│   ├── Http/
│   │   ├── Controllers/            # Inertia page controllers
│   │   │   ├── Client/             # Public client portal (Upload, Confirm, Refuse)
│   │   │   ├── Settings/           # User settings (Profile, Password, 2FA)
│   │   │   ├── ClientController.php
│   │   │   ├── DashboardController.php        ← Entry point (invokable)
│   │   │   ├── FolderController.php
│   │   │   ├── FolderMediaController.php
│   │   │   ├── FolderMessageController.php
│   │   │   ├── UserController.php             ← Admin only
│   │   │   ├── WorkspaceController.php        ← Admin only
│   │   │   └── WorkspaceSwitchController.php  ← Entry point (invokable)
│   │   ├── Middleware/             # Custom middleware
│   │   │   ├── EnsureUserHasWorkspace.php
│   │   │   ├── EnsureUserIsAdmin.php
│   │   │   ├── HandleAppearance.php
│   │   │   ├── HandleInertiaRequests.php
│   │   │   └── ValidateFolderInvitation.php
│   │   └── Requests/              # Form request validation (13 classes)
│   │       ├── Settings/          # Settings form requests
│   │       ├── StoreClientRequest.php
│   │       ├── StoreFolderMessageRequest.php
│   │       ├── StoreFolderRequest.php
│   │       ├── StoreUserRequest.php
│   │       ├── StoreWorkspaceRequest.php
│   │       ├── UpdateClientRequest.php
│   │       ├── UpdateFolderRequest.php
│   │       ├── UpdateUserRequest.php
│   │       └── UpdateWorkspaceRequest.php
│   ├── Mail/                       # Mailable classes (5 folder-related emails)
│   │   ├── FolderConfirmationMail.php
│   │   ├── FolderFileRequestMail.php
│   │   ├── FolderInviteMail.php
│   │   ├── FolderSituationMail.php
│   │   └── FolderTextMessageMail.php
│   ├── Models/                     # Eloquent models (7 models)
│   │   ├── Client.php
│   │   ├── Folder.php
│   │   ├── FolderInvitation.php
│   │   ├── Message.php
│   │   ├── User.php
│   │   ├── Workspace.php
│   │   └── WorkspaceUser.php       # Pivot model
│   └── Providers/                  # Service providers
├── bootstrap/                      # Laravel bootstrap & app configuration
│   ├── app.php                     ← Application bootstrap (middleware, routing, exceptions)
│   ├── providers.php               ← Service provider registration
│   └── cache/                      # Framework cache files
├── config/                         # Laravel configuration files
│   ├── app.php
│   ├── auth.php
│   ├── database.php
│   ├── fortify.php                 # Fortify auth configuration
│   ├── inertia.php                 # Inertia SSR configuration
│   ├── mail.php
│   ├── queue.php
│   ├── session.php
│   └── ...                         # Other standard Laravel config
├── database/
│   ├── factories/                  # Model factories for testing
│   ├── migrations/                 # 16 database migrations
│   └── seeders/                    # Database seeders
├── public/                         # Web-accessible public directory
├── resources/
│   ├── css/                        # Global CSS (Tailwind imports)
│   ├── js/                         # Frontend TypeScript/Vue source
│   │   ├── app.ts                  ← Frontend entry point
│   │   ├── ssr.ts                  ← SSR entry point
│   │   ├── components/             # Vue components
│   │   │   ├── ui/                 # shadcn-vue design system (20+ component groups)
│   │   │   ├── clients/            # Client-specific components
│   │   │   ├── folders/            # Folder-specific components
│   │   │   ├── ClientForm.vue
│   │   │   ├── FolderForm.vue
│   │   │   ├── UserForm.vue
│   │   │   ├── WorkspaceForm.vue
│   │   │   ├── WorkspaceSwitcher.vue
│   │   │   ├── Pagination.vue
│   │   │   └── ...                 # App shell, navigation, layout components
│   │   ├── composables/            # Vue composables (4 hooks)
│   │   │   ├── useAppearance.ts
│   │   │   ├── useCurrentUrl.ts
│   │   │   ├── useInitials.ts
│   │   │   └── useTwoFactorAuth.ts
│   │   ├── layouts/                # Page layouts (8 layouts)
│   │   │   ├── app/                # App layouts (Header, Sidebar)
│   │   │   ├── auth/               # Auth layouts (Card, Simple, Split)
│   │   │   ├── settings/           # Settings layout
│   │   │   ├── AppLayout.vue       ← Main app layout
│   │   │   └── AuthLayout.vue      ← Auth pages layout
│   │   ├── lib/                    # Utility functions
│   │   ├── pages/                  # Inertia page components (31 pages)
│   │   │   ├── auth/               # Auth pages (Login, Register, 2FA, etc.)
│   │   │   ├── client/             # Public client portal pages
│   │   │   ├── clients/            # Client management (CRUD)
│   │   │   ├── folders/            # Folder management (CRUD)
│   │   │   ├── settings/           # User settings pages
│   │   │   ├── users/              # User admin (CRUD)
│   │   │   ├── workspaces/         # Workspace admin (CRUD)
│   │   │   ├── Dashboard.vue
│   │   │   └── Welcome.vue
│   │   └── types/                  # TypeScript type definitions
│   │       ├── auth.ts
│   │       ├── index.ts
│   │       ├── navigation.ts
│   │       ├── ui.ts
│   │       └── global.d.ts
│   └── views/                      # Blade templates
│       ├── app.blade.php           ← Root Blade template for Inertia
│       └── emails/                 # Email Blade templates
├── routes/
│   ├── web.php                     ← Main web routes
│   ├── settings.php                ← Settings routes
│   └── console.php                 # Console/Artisan routes
├── storage/                        # Laravel storage (logs, cache, uploads)
├── tests/
│   ├── Pest.php                    # Pest configuration
│   ├── TestCase.php                # Base test case
│   ├── Feature/                    # Feature tests (13 test files)
│   │   ├── Auth/                   # Authentication tests
│   │   ├── Settings/               # Settings tests
│   │   ├── DashboardTest.php
│   │   └── UserGroupTest.php
│   └── Unit/                       # Unit tests
├── .github/workflows/              # CI/CD pipelines
│   ├── lint.yml                    # Linting (Pint + ESLint + Prettier)
│   └── tests.yml                   # Testing (Pest, PHP 8.4/8.5 matrix)
├── compose.yaml                    # Docker Compose (Sail + MySQL + Mailpit + Soketi)
├── composer.json                   # PHP dependencies
├── package.json                    # Node.js dependencies
├── vite.config.ts                  # Vite build configuration
├── tsconfig.json                   # TypeScript configuration
├── eslint.config.js                # ESLint configuration
├── phpunit.xml                     # PHPUnit/Pest configuration
├── pint.json                       # Laravel Pint code style config
├── artisan                         ← Laravel CLI entry point
└── AGENTS.md                       # Laravel Boost AI guidelines

Critical Folders Summary

Folder Purpose Key Files
app/Http/Controllers/ All Inertia page controllers (15 controllers) ClientController, FolderController, etc.
app/Models/ Eloquent ORM models (7 models) User, Client, Folder, Workspace, etc.
app/Enums/ Business domain enumerations (9 enums) ClientStatus, FolderStatus, FolderType, etc.
app/Mail/ Email notifications (5 mailables) Folder-related email notifications
app/Http/Middleware/ Request middleware (5 custom) Workspace, Admin, Invitation guards
app/Http/Requests/ Form validation (13 requests) Store/Update requests for all entities
resources/js/pages/ Vue page components (31 pages) CRUD pages for all entities
resources/js/components/ui/ shadcn-vue design system 20+ UI component groups
resources/js/composables/ Vue composables Appearance, URL, Initials, 2FA
resources/js/layouts/ Page layout templates (8 layouts) App, Auth, Settings layouts
database/migrations/ Schema migrations (16 files) Full database schema
routes/ Route definitions web.php, settings.php
.github/workflows/ CI/CD pipelines lint.yml, tests.yml