# will99919/lecoinpop architecture

> Architecture diagram of the GitHub repository will99919/lecoinpop, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-26). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/will99919/lecoinpop
- Repository: https://github.com/will99919/lecoinpop

## Overview

This is a Symfony web application for “Le coin pop,” with public film, series, news, home and contact pages, plus account registration/login and an admin area for users and categories. The principal evidenced workflow is registration: a visitor submits a form, the controller validates and hashes the password, then persists the user. README content is absent and sampled application source is limited, so connections among the content pages and their data sources are not inferred.

Main entry points: [`src/Kernel.php`](https://github.com/will99919/lecoinpop/blob/main/src/Kernel.php) (Symfony kernel), [`src/Controller/ResgisterController.php`](https://github.com/will99919/lecoinpop/blob/main/src/Controller/ResgisterController.php) (Registration), [`src/Controller/Admin/DashboardController.php`](https://github.com/will99919/lecoinpop/blob/main/src/Controller/Admin/DashboardController.php) (Admin dashboard), [`public/index.php`](https://github.com/will99919/lecoinpop/blob/main/public/index.php) (HTTP entry)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Web entry"]
  node_front["HTTP entry<br/>[index.php]"]
  node_kernel["Symfony kernel<br/>[Kernel.php]"]
end

subgraph group_content["Public content"]
  node_home["Home page<br/>[HomeController.php]"]
  node_films["Film page<br/>[FilmController.php]"]
  node_series["Series page"]
  node_news["News page<br/>[NewsController.php]"]
  node_contact["Contact page"]
  node_contact_form["Contact form<br/>[ContactType.php]"]
end

subgraph group_identity["Accounts"]
  node_register["Registration"]
  node_register_form["Registration form<br/>[RegisterType.php]"]
  node_login["Login and logout"]
  node_authenticator["Login authenticator"]
  node_account["Account page"]
  node_user["User model<br/>[User.php]"]
  node_user_repository["User repository<br/>[UserRepository.php]"]
end

subgraph group_admin["Administration"]
  node_dashboard["Admin dashboard"]
  node_user_admin["User management"]
  node_category_admin["Category management"]
  node_category["Category model<br/>[Category.php]"]
  node_category_repository["Category repository"]
end

node_visitor(("Visitor"))
node_database[("Doctrine database")]

node_visitor -->|"sends request"| node_front
node_front -->|"boots"| node_kernel
node_kernel -->|"routes requests"| node_home
node_kernel -->|"routes requests"| node_films
node_kernel -->|"routes requests"| node_series
node_kernel -->|"routes requests"| node_news
node_kernel -->|"routes requests"| node_contact
node_kernel -->|"routes requests"| node_register
node_kernel -->|"routes requests"| node_login
node_kernel -->|"routes requests"| node_account
node_kernel -->|"routes requests"| node_dashboard
node_contact -->|"builds form"| node_contact_form
node_register -->|"builds form"| node_register_form
node_register -->|"creates"| node_user
node_register -->|"persists user"| node_database
node_login -->|"authenticates with"| node_authenticator
node_dashboard -->|"offers CRUD"| node_user_admin
node_dashboard -->|"offers CRUD"| node_category_admin
node_user_admin -->|"manages"| node_user
node_category_admin -->|"manages"| node_category
node_user_repository -->|"queries"| node_database
node_category_repository -->|"queries"| node_database

click node_front "https://github.com/will99919/lecoinpop/blob/main/public/index.php"
click node_kernel "https://github.com/will99919/lecoinpop/blob/main/src/Kernel.php"
click node_home "https://github.com/will99919/lecoinpop/blob/main/src/Controller/HomeController.php"
click node_films "https://github.com/will99919/lecoinpop/blob/main/src/Controller/FilmController.php"
click node_series "https://github.com/will99919/lecoinpop/blob/main/src/Controller/SerieController.php"
click node_news "https://github.com/will99919/lecoinpop/blob/main/src/Controller/NewsController.php"
click node_contact "https://github.com/will99919/lecoinpop/blob/main/src/Controller/ContactController.php"
click node_contact_form "https://github.com/will99919/lecoinpop/blob/main/src/Form/ContactType.php"
click node_register "https://github.com/will99919/lecoinpop/blob/main/src/Controller/ResgisterController.php"
click node_register_form "https://github.com/will99919/lecoinpop/blob/main/src/Form/RegisterType.php"
click node_login "https://github.com/will99919/lecoinpop/blob/main/src/Controller/SecurityController.php"
click node_authenticator "https://github.com/will99919/lecoinpop/blob/main/src/Security/LoginFormAuthenticator.php"
click node_account "https://github.com/will99919/lecoinpop/blob/main/src/Controller/AccountController.php"
click node_user "https://github.com/will99919/lecoinpop/blob/main/src/Entity/User.php"
click node_user_repository "https://github.com/will99919/lecoinpop/blob/main/src/Repository/UserRepository.php"
click node_dashboard "https://github.com/will99919/lecoinpop/blob/main/src/Controller/Admin/DashboardController.php"
click node_user_admin "https://github.com/will99919/lecoinpop/blob/main/src/Controller/Admin/UserCrudController.php"
click node_category_admin "https://github.com/will99919/lecoinpop/blob/main/src/Controller/Admin/CategoryCrudController.php"
click node_category "https://github.com/will99919/lecoinpop/blob/main/src/Entity/Category.php"
click node_category_repository "https://github.com/will99919/lecoinpop/blob/main/src/Repository/CategoryRepository.php"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_front,node_kernel toneBlue
class node_home,node_films,node_series,node_news,node_contact,node_contact_form,node_database toneAmber
class node_register,node_register_form,node_login,node_authenticator,node_account,node_user,node_user_repository toneMint
class node_dashboard,node_user_admin,node_category_admin,node_category,node_category_repository toneRose
class node_visitor toneIndigo
```

## Components

### Web entry

- [HTTP entry](https://github.com/will99919/lecoinpop/blob/main/public/index.php): `public/index.php`
- [Symfony kernel](https://github.com/will99919/lecoinpop/blob/main/src/Kernel.php): `src/Kernel.php`

### Public content

- [Home page](https://github.com/will99919/lecoinpop/blob/main/src/Controller/HomeController.php): `src/Controller/HomeController.php`
- [Film page](https://github.com/will99919/lecoinpop/blob/main/src/Controller/FilmController.php): `src/Controller/FilmController.php`
- [Series page](https://github.com/will99919/lecoinpop/blob/main/src/Controller/SerieController.php): `src/Controller/SerieController.php`
- [News page](https://github.com/will99919/lecoinpop/blob/main/src/Controller/NewsController.php): `src/Controller/NewsController.php`
- [Contact page](https://github.com/will99919/lecoinpop/blob/main/src/Controller/ContactController.php): `src/Controller/ContactController.php`
- [Contact form](https://github.com/will99919/lecoinpop/blob/main/src/Form/ContactType.php): `src/Form/ContactType.php`

### Accounts

- [Registration](https://github.com/will99919/lecoinpop/blob/main/src/Controller/ResgisterController.php): `src/Controller/ResgisterController.php`
- [Registration form](https://github.com/will99919/lecoinpop/blob/main/src/Form/RegisterType.php): `src/Form/RegisterType.php`
- [Login and logout](https://github.com/will99919/lecoinpop/blob/main/src/Controller/SecurityController.php): `src/Controller/SecurityController.php`
- [Login authenticator](https://github.com/will99919/lecoinpop/blob/main/src/Security/LoginFormAuthenticator.php): `src/Security/LoginFormAuthenticator.php`
- [Account page](https://github.com/will99919/lecoinpop/blob/main/src/Controller/AccountController.php): `src/Controller/AccountController.php`
- [User model](https://github.com/will99919/lecoinpop/blob/main/src/Entity/User.php): `src/Entity/User.php`
- [User repository](https://github.com/will99919/lecoinpop/blob/main/src/Repository/UserRepository.php): `src/Repository/UserRepository.php`

### Administration

- [Admin dashboard](https://github.com/will99919/lecoinpop/blob/main/src/Controller/Admin/DashboardController.php): `src/Controller/Admin/DashboardController.php`
- [User management](https://github.com/will99919/lecoinpop/blob/main/src/Controller/Admin/UserCrudController.php): `src/Controller/Admin/UserCrudController.php`
- [Category management](https://github.com/will99919/lecoinpop/blob/main/src/Controller/Admin/CategoryCrudController.php): `src/Controller/Admin/CategoryCrudController.php`
- [Category model](https://github.com/will99919/lecoinpop/blob/main/src/Entity/Category.php): `src/Entity/Category.php`
- [Category repository](https://github.com/will99919/lecoinpop/blob/main/src/Repository/CategoryRepository.php): `src/Repository/CategoryRepository.php`

### Other components

- **Visitor**
- **Doctrine database**

## Connections

- Visitor → HTTP entry: sends request
- HTTP entry → Symfony kernel: boots
- Symfony kernel → Home page: routes requests
- Symfony kernel → Film page: routes requests
- Symfony kernel → Series page: routes requests
- Symfony kernel → News page: routes requests
- Symfony kernel → Contact page: routes requests
- Symfony kernel → Registration: routes requests
- Symfony kernel → Login and logout: routes requests
- Symfony kernel → Account page: routes requests
- Symfony kernel → Admin dashboard: routes requests
- Contact page → Contact form: builds form
- Registration → Registration form: builds form
- Registration → User model: creates
- Registration → Doctrine database: persists user
- Login and logout → Login authenticator: authenticates with
- Admin dashboard → User management: offers CRUD
- Admin dashboard → Category management: offers CRUD
- User management → User model: manages
- Category management → Category model: manages
- User repository → Doctrine database: queries
- Category repository → Doctrine database: queries
