How sousx-lab/portfolio works
This is a personal portfolio website with a home page and a contact workflow. A visitor opens the portfolio or submits the contact form; the contact controller validates the submitted data, delegates email delivery, and either reports an error or redirects home. The tree also shows browser-side interactions and styling, but the README and sampled source do not establish their exact wiring or the portfolio sections’ data sources.
Main entry points: ContactController.php Contact controller · ContactMailer.php Contact mailer · Kernel.php Symfony kernel · index.php HTTP entry point
Components 16
Web requests
- HTTP entry point
public/index.php - Symfony kernel
src/Kernel.php - Home controller
src/Controller/HomeController.php - Contact controller
src/Controller/ContactController/ContactController.php
Contact workflow
- Contact form
src/Form/ContactType.php - Contact data
src/Entity/Contact/ContactData.php - Contact mailer
src/Services/Contact/ContactMailer.php - Email template
templates/contact/email.contact.html.twig
Presentation
- Portfolio page
templates/home/homepage.html.twig - Contact page
templates/contact/contact.html.twig - Base layout
templates/base.html.twig - Home styles
assets/scss/HomePage/HomePage.scss - Contact styles
assets/scss/ContactPage/ContactPage.scss - Browser scripts
assets/js/app.js
Other components
- Visitor
- Mail transport
Connections 14
- Visitor → HTTP entry point: HTTP request
- HTTP entry point → Symfony kernel: creates kernel
- Symfony kernel → Home controller: routes home
- Symfony kernel → Contact controller: routes contact
- Home controller → Portfolio page: renders page
- Contact controller → Contact form: creates form
- Contact form → Contact data: binds data
- Contact controller → Contact page: renders form
- Contact controller → Contact mailer: sends valid submission
- Contact mailer → Contact data: reads fields
- Contact mailer → Email template: renders email
- Contact mailer → Mail transport: sends message
- Portfolio page → Base layout: extends layout
- Contact page → Base layout: extends layout