Billel Ezzamari / Développeur web juniorFront-end · Back-end

DÉVELOPPEURFULL-STACK.

Un problème, plusieurs chemins.
J’aime explorer les solutions et donner forme aux idées, une ligne de code à la fois.

React / Sass / Node.js / MongoDBDéfiler pour découvrir ↓

Du code aux projets.

01 — Sélection
Kasa — accueil et catalogue des logements.
Kasa — accueil et catalogue des logements.
Front-end / React · Sass

Kasa

Une interface de location, composant par composant.

Explorer le projet

Le contexte

Projet de formation : réaliser l’interface d’un site de location de logements avec React.

Les objectifs

Créer une interface responsive de location de logements et permettre de naviguer du catalogue aux fiches détaillées.

Mon travail

Organisation de l’interface en composants React et répartition des styles dans plusieurs fichiers Sass.

Les compétences développées

Découper une interface en composants React réutilisables, transmettre des données entre composants, organiser les imports et structurer les styles avec Sass.

Le résultat

Une interface organisée en composants réutilisables : catalogue de logements, fiches détaillées et navigation entre les pages.

La difficulté

Passer d’un fichier CSS unique à des styles répartis, comprendre les liens entre les composants et gérer leurs imports.

Ce que j’ai appris

Les cours, les explications de mon mentor et les essais successifs m’ont aidé à comprendre cette organisation et à corriger mes erreurs.

Pour aller plus loin

Poursuivre la documentation des composants et enrichir les tests des parcours utilisateurs.

Voir le code sur GitHub ↗
Écran de connexion du front-end fourni. Mon travail porte sur l’API.
Écran de connexion du front-end fourni. Mon travail porte sur l’API.
Back-end / Node.js · MongoDB

Mon Vieux Grimoire

Des livres, des notes et des accès maîtrisés.

Explorer le projet

Le contexte

Projet de formation : développer le back-end d’un site de notation de livres, à connecter à un front-end React fourni.

Les objectifs

Connecter le front-end fourni à une API permettant de gérer des livres et leurs notes, avec des accès protégés.

Mon travail

API de gestion des livres et des notes, authentification, contrôle des autorisations et traitement des images. Le dépôt documente JWT, bcrypt et Sharp.

Les compétences développées

Construire des routes API REST, contrôler les données et les autorisations, gérer les erreurs et hacher les mots de passe avec bcrypt.

Le résultat

Une API REST avec gestion des livres et des notes, contrôle du propriétaire avant modification ou suppression, mots de passe hachés et images converties en WebP.

La difficulté

Gérer les autorisations, contrôler les données reçues, traiter les différents cas d’erreur et comprendre le hachage des mots de passe.

Ce que j’ai appris

Je me suis appuyé sur les cours OpenClassrooms pour comprendre ces mécanismes et les mettre en pratique.

Pour aller plus loin

Renforcer les tests des cas d’erreur et documenter les réponses de l’API.

Voir le code sur GitHub ↗
Extrait du Kanban réalisé pour préparer le développement.
Extrait du Kanban réalisé pour préparer le développement.
Conception / Spécifications · Kanban · Veille

Menu Maker

Transformer un besoin en plan de développement.

Explorer le projet

Le contexte

Qwenta souhaite permettre aux restaurateurs de créer, personnaliser et exporter leurs menus. Ce projet de formation porte sur la préparation du développement.

Les objectifs

Préparer un développement réalisable à partir du besoin de Qwenta, en proposant des choix techniques et un ordre de réalisation des tâches.

Mon travail

Rédaction des spécifications, proposition d’architecture, Kanban de 28 tâches techniques et veille Feedly. Next.js, TypeScript, PostgreSQL et Prisma sont des choix proposés pour le futur développement.

Les compétences développées

Traduire des spécifications en tâches, identifier les dépendances, estimer la complexité et organiser une veille technique.

Le résultat

Un dossier de préparation avec spécifications techniques, 28 tâches estimées et une veille. L’application n’a pas été codée dans ce projet.

La difficulté

Traduire les spécifications en tâches concrètes, identifier leurs dépendances et estimer leur complexité pour construire une planification cohérente.

Ce que j’ai appris

Mon mentor m’a expliqué le travail en méthode agile. L’IA m’a aidé à comprendre les échelles d’estimation de la complexité des tâches.

Pour aller plus loin

Confirmer les accès aux API partenaires, puis confronter les choix techniques à un prototype.

Consulter le Kanban (PDF, 103 Ko) ↗

Changer de voie.
Construire la suite.

02 — Mon parcours

Avant le développement web, j’ai suivi un BTS Commerce international. La formation m’a plu et j’y ai obtenu de bons résultats, mais ses débouchés ne correspondaient pas à mes aspirations.

Une occasion de reconversion et les conseils d’un ami m’ont aidé à me lancer. Aujourd’hui, ce qui me plaît, c’est de chercher différentes solutions à un même problème et de voir le résultat évoluer au fil des modifications.

Je souhaite travailler en full-stack pour utiliser régulièrement mes compétences, consolider mes acquis et développer de bonnes pratiques professionnelles.

  1. Le point de départ

    Commerce international

    Un BTS, puis l’envie de trouver une voie qui me correspond davantage.

  2. Le changement

    Développement web

    Une reconversion avec OpenClassrooms, des projets et l’accompagnement de mon mentor.

  3. La suite

    Un rôle full-stack

    Contribuer côté interface comme côté serveur et continuer à apprendre.

Mes outils de travail.

03 — Compétences

Interface

HTML · CSS · Sass
JavaScript · React

Serveur

Node.js · MongoDB
API REST · Authentification

Méthode

Git · GitHub · Kanban
Spécifications · Veille

04 — Échangeons

Et si on écrivait
la suite ensemble ?

Je recherche un poste de développeur full-stack junior à Lyon, Grenoble ou dans leurs environs, plus largement en Auvergne-Rhône-Alpes. Je souhaite contribuer avec React, JavaScript et Node.js, et reste ouvert au télétravail.

billel.ezzamari@gmail.com

Retrouvez-moi sur GitHub

Préparer un message

Tous les champs sont obligatoires. Ce formulaire ouvre votre application de messagerie ; vous y confirmez l’envoi. Aucune donnée n’est enregistrée sur ce site.