How josepbacardit/peluqueriajenver works
1. Overall shape
- This is a Laravel monolith for a hair salon site (“Peluquería Jenver”).
- The repo is currently page-oriented and content-heavy rather than a feature-rich CRUD system: the tree shows mostly Blade pages, partials, a sitemap controller, and default Laravel infrastructure.
2. Request entrypoint and framework boundary
- All HTTP traffic enters through public/index.php, which boots Laravel via bootstrap/app.php.
- Routing is centralized in routes/web.php for browser pages, with routes/console.php for artisan/CLI hooks.
3. Controller layer
- The app has a very small controller surface:
- app/Http/Controllers/SitemapController.php for sitemap output.
- The base Controller.php.
- This suggests the app mostly serves rendered pages directly from routes, with minimal server-side business logic.
4. View/presentation subsystem
- The main UI is built with Blade templates in resources/views.
- There is a shared layout at resources/views/layouts/app.blade.php and reusable fragments in resources/views/partials/:
- header/footer
- cookie banner
- FAQ
- pricing
- schema/local structured-data snippet
- Page templates include:
- home
- contact
- legal/privacy/cookies
- service detail pages
- sitemap view
5. Content structure
- The page set is organized around a public-facing salon website:
- home page
- service catalog pages such as haircut/treatments, color/highlights, beauty/aesthetics, event styling
- legal/compliance pages
- contact page
- resources/views/pages/services/* indicates the service catalog is split into dedicated views, likely each rendered as an individual route.
6. Static assets pipeline
- Frontend assets live in resources/css/app.css and resources/js/app.js, with Vite configured in vite.config.js.
- JavaScript bootstrap is split into resources/js/bootstrap.js, following standard Laravel asset initialization.
- Compiled assets are served from public/, which also contains robots.txt, .htaccess, and images.
7. Media and public files
- public/images/galeria/ suggests a static gallery directory for salon imagery.
- Because images are under public/, they are treated as directly web-accessible assets, not managed uploads.
8. Localization/content language boundary
- The app is partially localized:
- lang/es/* contains Spanish site content keys such as home, navigation, servicios.
- lang/en/* contains standard Laravel auth/validation messages.
- This indicates a Spanish-facing public site with some Laravel defaults preserved in English.
9. Data and persistence layer
- The database layer is mostly Laravel defaults:
- users
- cache table
- jobs table
- There are no custom domain migrations/models beyond app/Models/User.php, so current persistence appears limited to framework/user/auth support rather than appointments, clients, or services in code.
10. Infrastructure services
- Config files cover the usual Laravel subsystems:
- database.php
- cache.php
- session.php
- queue.php
- mail.php
- filesystems.php
- auth.php
- services.php
- The README notes SQLite/MySQL/PostgreSQL support, but the code tree suggests these are enabling services, not yet heavily used by custom business logic.
11. Background work and runtime support
- composer run dev is described as starting:
- Laravel HTTP server
- queue worker
- Vite asset watcher/build
- That means the local architecture includes three cooperating processes: web, background jobs, and frontend compilation.
12. Storage and runtime state
- storage/ is the boundary for logs, cache, sessions, and any file uploads.
- The presence of storage/app/public and storage/logs indicates standard Laravel separation between persistent runtime state and web-served assets.
13. Testing and quality boundary
- Tests are split into Feature and Unit using Pest/PHPUnit (tests/Pest.php, tests/TestCase.php).
- The included example tests imply the test suite is still lightweight and mostly scaffolded.
14. Important architecture note for diagramming
- The README describes bookings, clients, employees, reports, and notifications, but the repository tree does not yet show corresponding controllers/models/migrations.
- For an accurate architecture diagram, treat those as intended future domain capabilities, while the current implemented system is a Laravel-rendered marketing/information site with sitemap and localized content.
Main entry points: web.php web routes · app.blade.php main layout · home.blade.php home · config config stack
Components 23
Entry & Framework
HTTP bootstrap, routing, and controller boundary.
- index.php · Web entrypoint that boots the Laravel app.
public/index.php - bootstrap app · Creates and configures the application instance.
bootstrap/app.php - web routes · Browser-facing route definitions.
routes/web.php - console routes · Artisan and console command hooks.
routes/console.php - base controller · Shared controller superclass.
app/Http/Controllers/Controller.php - sitemap controller · Serves sitemap output.
app/Http/Controllers/SitemapController.php
Presentation
Blade layouts, pages, and reusable UI fragments.
- main layout · Shared site shell used by pages.
resources/views/layouts/app.blade.php - partials · Shared header, footer, cookie, FAQ, pricing, and schema fragments.
resources/views/partials - home · Public homepage content.
resources/views/pages/home.blade.php - contact · Contact and inquiry page.
resources/views/pages/contacto.blade.php - legal pages · Privacy, cookies, and legal notices.
resources/views/pages/privacidad.blade.php - service pages · Dedicated salon service detail views.
resources/views/pages/services - sitemap view · Rendered sitemap page/template.
resources/views/sitemap.blade.php
Content & Language
Localized site copy and public media assets.
- es content · Spanish navigation, home, and services strings.
lang/es - en defaults · Laravel auth and validation messages in English.
lang/en - gallery · Public salon imagery served directly by the web server.
public/images/galeria - public assets · Web-served static files and server entry directory.
public
Platform Services
Laravel runtime, persistence, config, and developer tooling.
- user model · Default application user entity.
app/Models/User.php - config stack · Framework configuration for auth, database, cache, session, mail, queue, filesystems, and services.
config - database · Default migrations, factory, and seeder scaffolding.
database - storage · Logs, cache, sessions, and private/public storage boundary.
storage - vite assets · CSS/JS entrypoints and Vite configuration.
resources - tests · Feature and unit test scaffolding.
tests
Connections 24
- index.php → bootstrap app: boots · HTTP requests start by bootstrapping the application.
- index.php → web routes: dispatches to · Web traffic is routed through the browser route map.
- web routes → home: renders · Routes return the homepage view.
- web routes → contact: renders · Routes return the contact page.
- web routes → legal pages: renders · Routes serve legal and compliance pages.
- web routes → service pages: renders · Routes serve individual service pages.
- web routes → sitemap controller: invokes · One route likely delegates sitemap generation to the controller.
- sitemap controller → sitemap view: returns · Controller produces the sitemap page.
- base controller → sitemap controller: extends · Sitemap controller uses the shared base controller.
- home → main layout: uses · Pages are wrapped by the shared layout.
- contact → main layout: uses · Pages are wrapped by the shared layout.
- legal pages → main layout: uses · Pages are wrapped by the shared layout.
- service pages → main layout: uses · Service pages are wrapped by the shared layout.
- main layout → partials: includes · The layout composes shared header/footer and utility fragments.
- home → es content: loads copy · Site content keys are localized in Spanish.
- main layout → public assets: serves from · Rendered assets are delivered through the public web root.
- public assets → gallery: exposes · Gallery images are directly web-accessible.
- user model → database: persists via · User data is backed by the default database schema.
- config stack → database: configures · Database settings control the persistence backend.
- config stack → storage: configures · Runtime settings govern cache, sessions, logs, mail, queue, and files.
- vite assets → public assets: builds into · Frontend resources are compiled for public serving.
- tests → base controller: covers · Tests target the Laravel application boundary.
- tests → web routes: covers · Feature tests likely exercise route responses.
- console routes → config stack: uses · Console hooks run within the configured Laravel environment.