Files
L-Ami-Fiduciaire/docs/source-tree-analysis.md

179 lines
10 KiB
Markdown
Raw Normal View History

# 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 |