All projects

Professional work

Collaborative task manager · ALTEN 2024

My first project in a company: independently designing a collaborative task management application with Symfony, starting from a solid domain model.

  • Internship project
  • Individual project
  • Confidential

01Starting point

Context & mission

The problem

August 2024, my first internship, at ALTEN in Fes. The subject: a collaborative task management application, where several people share and follow the same work.

The mission

Design and build the application independently, starting from the domain model, in an MVC architecture.

My role

I ran the design and development independently. This confidential project is separate from my public “gestionnaire-tache” repository.

02Execution

What I did

  1. Model first

    Before writing a single view, I modelled the domain: entities and their relationships, set before the screens.

  2. JOINED inheritance

    Doctrine inheritance with the JOINED strategy: one table per type, shared data factored out, no empty columns.

  3. Enumerations

    Business values typed with enumerations instead of free strings.

  4. MVC architecture

    A Symfony application structured as MVC: Doctrine ORM for persistence on MySQL, Twig for the views.

03Design

Architecture

Symfony as MVC: controllers orchestrate, Doctrine entities carry the domain model (JOINED inheritance, enumerations) and are persisted in MySQL, Twig renders the views.

MVC architecture
  1. ControllersSymfony
  2. Domain modelEntities · JOINED · enums
  3. Doctrine ORMPersistence
  4. MySQL
Supported by
  • TwigViews

04Impact

Results

  • A collaborative task management application designed independently, on a domain modelled before the screens.
  • A first complete experience in a company: from subject to application, with Symfony, Doctrine, Twig and MySQL.

05Wrap-up

Takeaways

What this project proves

That from my very first internship, I could move a subject forward independently and lay a clean data model before building.

Learnings and next steps

First internship, first lasting habit: start from a well-designed data model before building the screens.

06Technology

Full stack

  • PHP
  • Symfony
  • Doctrine
  • Twig
  • MySQL
  • MVC