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>
10 KiB
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 |