DevOps - Développeur Web


DevSecOps -Développeur Web - Développeur d'application PHP/Symfony

Portfolio


Chalets & Caviar

  • WordPress
  • |
  • CSS
  • |
  • HTML

Contexte

L'agence "Chalets et caviar" à Courchevel nous a missionné pour créer son site web. Elle possède une quinzaine de chalets de luxe à la vente ainsi que d'autres chalets de luxe en location.
Elle souhaite un design "clair, épuré, qui respire la ligne luxe de l'agence". A nous de le trouver, de l'installer et de le configurer. Nous devions personnaliser le thème de telle sorte que l'agence se sente "chez elle" et qu'on n'ait pas l'impression d'avoir un thème en anglais à moitié intégré. Il fallait donc veiller tout particulièrement aux détails.

Pour la démo, nous devions ajouter :

  • Une dizaine de chalets à vendre et à louer (en séparant bien les deux)
  • Une page de contact avec les coordonnées et un formulaire de contact fonctionnel
  • Le site web sera mis en ligne pour que l'agence puisse le consulter et le valider.

Compétences validées

  • Adapter un thème Wordpress pour respecter les exigences du client
  • Rédiger une documentation à l'intention d'utilisateurs non spécialistes
  • Sélectionner un thème Wordpress adapté aux besoins du client

Ressources

Fermer le projet

Les films de plein air

  • BootStrap
  • |
  • CSS
  • |
  • HTML

Jennifer Viala est l'organisatrice du Festival des Films de Plein Air. Elle ambitionne de sélectionner et projeter des films d'auteur en plein air du 5 au 8 août au parc Monceau à Paris.

Son association vient juste d'être créée et elle dispose d'un budget limité. Elle a besoin de communiquer en ligne sur son festival, d'annoncer les films projetés et de recueillir les réservations.

En tant que développeur, on nous demande donc de lister les fonctionnalités dont a besoin la cliente et de proposer une solution technique adaptée. Nous devions donc sélectionner la solution qui nous semblait la plus à même de répondre à son besoin. Nous devions ensuite réaliser une première version de ce site correspondant à ses attentes.‌

Compétences validées

  • Lister les fonctionnalités demandées par un client
  • Analyser un cahier des charges
  • Rédiger les spécifications détaillées du projet
  • Choisir une solution technique adaptée parmi les solutions existantes si cela est pertinent

Ressources

Fermer le projet

Blog

  • BootStrap
  • |
  • CSS
  • |
  • HTML
  • |
  • PHP POO
  • |
  • GitHub
  • |
  • MySQL
  • |
  • UML

Le projet est donc de développer son blog professionnel. Ce site web se décompose en deux grands groupes de pages :

  • les pages utiles à tous les visiteurs ;
  • les pages permettant d’administrer votre blog.

Voici la liste des pages qui devront être accessibles depuis le site web :

  • la page d'accueil ;
  • la page listant l’ensemble des blogs posts ;
  • la page affichant un blog post ;
  • la page permettant d’ajouter un blog post ;
  • la page permettant de modifier un blog post.
  • les pages permettant de modifier/supprimer un blog post ;
  • les pages de connexion/enregistrement des utilisateurs.

Vous développerez une partie administration qui devra être accessible uniquement aux utilisateurs inscrits et validés.
Les pages d’administration seront donc accessible sur conditions et vous veillerez à la sécurité de la partie administration.

Identifiants de connexion au panel d'administration :

  • Role Super Administrateur (Login/Mdp = "superadmin")
  • Role Administrateur (Login/Mdp = "admin")
  • Role utilisateur (Login/Mdp = "subscriber")

Compétences validées

  • Assurer le suivi qualité d’un projet
  • Proposer un code propre et facilement évolutif
  • Créer et maintenir l’architecture technique du site
  • Créer une page web permettant de recueillir les informations saisies par un internaute
  • Estimer une tâche et tenir les délais
  • Gérer ses données avec une base de données
  • Rédiger les spécifications détaillées du projet
  • Analyser un cahier des charges
  • Choisir une solution technique adaptée parmi les solutions existantes si cela est pertinent
  • Conceptualiser l'ensemble de son application en décrivant sa structure (Entités)

Ressources

Fermer le projet

Snowtricks

  • BootStrap
  • |
  • CSS
  • |
  • HTML
  • |
  • PHP
  • |
  • Symfony 3.4
  • |
  • Sensiolabs Insight
  • |
  • GitHub
  • |
  • Twig
  • |
  • Doctrine
  • |
  • UML

Jimmy Sweat est un entrepreneur ambitieux passionné de snowboard. Son objectif est la création d'un site collaboratif pour faire connaitre ce sport auprès du grand public et aider à l'apprentissage des figures (tricks).

Il souhaite capitaliser sur du contenu apporté par les internautes afin de développer un contenu riche et suscitant l’intérêt des utilisateurs du site. Par la suite, Jimmy souhaite développer un business de mise en relation avec les marques de snowboard grâce au trafic que le contenu aura généré.

Nous sommmes chargé de développer le site répondant aux besoins de Jimmy et donc implémenter les fonctionnalités suivantes :

  • un annuaire des figures de snowboard. Vous pouvez vous inspirer de la liste des figures sur Wikipédia avec un jeu de donnée de 10 figures,
  • la gestion des figures (création, modification, consultation),
  • un espace de discussion commun à toutes les figures.

Pour implémenter ces fonctionnalités, vous devez créer les pages suivantes :

  • la page d’accueil où figurera la liste des figures
  • la page de création d'une nouvelle figure
  • la page de modification d'une figure
  • la page de présentation d’une figure (contenant l’espace de discussion commun autour d’une figure).

Identifiants de connexion au panel d'administration :

  • Utilisateur (Login/Mdp = "userdemo")

Compétences validées

  • Développer une application proposant les fonctionnalités attendues par le client
  • Gérer une base de données MySQL avec Doctrine
  • Organiser son code pour garantir la lisibilité et la maintenabilité
  • Prendre en main le moteur de templating Twig
  • Respecter les bonnes pratiques de développement en vigueur
  • Sélectionner les langages de programmation adaptés pour le développement de l’application
  • Prendre en main le framework Symfony

Ressources

Fermer le projet

API REST

  • Symfony 4
  • |
  • Blackfire
  • |
  • Sensiolabs Insight
  • |
  • RFC
  • |
  • CircleCI
  • |
  • Swagger
  • |
  • APCu
  • |
  • GitHub
  • |
  • Doctrine
  • |
  • UML

Nous sommes en charge du développement de la vitrine de téléphones mobiles de l’entreprise BileMo. Le business modèle de BileMo n’est pas de vendre directement ses produits sur le site web, mais de fournir à toutes les plateformes qui le souhaitent l’accès au catalogue via une API (Application Programming Interface). Il s’agit donc de vente exclusivement en B2B (business to business).

Nous sommmes chargé de développer le site répondant aux besoins du client et donc implémenter les fonctionnalités suivantes :

  • consulter la liste des produits BileMo
  • consulter les détails d’un produit BileMo
  • consulter la liste des utilisateurs inscrits liés à un client sur le site web
  • consulter le détail d’un utilisateur inscrit lié à un client
  • ajouter un nouvel utilisateur lié à un client
  • supprimer un utilisateur ajouté par un client

Seuls les clients référencés peuvent accéder aux API. Les clients de l’API doivent être authentifiés via Oauth ou JWT.

Il faudra exposer les données en suivant les règles des niveaux 1, 2 et 3 du modèle de Richardson et les servir en JSON. Les réponses devront être mises en cache afin d’optimiser les performances des requêtes en direction de l’API.

Compétences validées

  • Analyser et optimiser les performances d’une application (Blackfire)
  • Concevoir une architecture efficace et adaptée
  • Suivre la qualité d’un projet
  • Exposer une API REST avec Symfony
  • Lancer une authentification à chaque requête HTTP
  • Produire une documentation technique

Ressources

Fermer le projet

TodoList

  • Symfony 3
  • |
  • Blackfire
  • |
  • Sensiolabs Insight
  • |
  • Redis
  • |
  • GitHub
  • |
  • Doctrine
  • |
  • PhpMetrics
  • |
  • UML

Nous venons d’intégrer une startup dont le coeur de métier est une application permettant de gérer ses tâches quotidiennes. L’entreprise vient tout juste d’être montée, et l’application a dû être développée à toute vitesse pour permettre de montrer à de potentiels investisseurs que le concept est viable.

Notre rôle ici est donc d’améliorer la qualité de l’application. La qualité est un concept qui englobe bon nombre de sujets : on parle souvent de qualité de code, mais il y a également la qualité perçue par l’utilisateur de l’application ou encore la qualité perçue par les collaborateurs de l’entreprise et enfin la qualité que vous percevez lorsqu’il vous faut travailler sur le projet.

Ainsi, pour ce dernier projet de spécialisation, nous sommes dans la peau d’un développeur expérimenté en charge des tâches suivantes :

  • l’implémentation de nouvelles fonctionnalités
  • la correction de quelques anomalies
  • et l’implémentation de tests automatisés.

Il nous est également demandé d’analyser le projet grâce à des outils vous permettant d’avoir une vision d’ensemble de la qualité du code et des différents axes de performance de l’application et de mettre en place les corrections nécessaires.

Identifiants de connexion au panel d'administration :

  • Role Administrateur (Login/Mdp = "admin")
  • Role Utilisateur (Login/Mdp = "user")

Compétences validées

  • Proposer une série d’améliorations
  • Implémenter de nouvelles fonctionnalités au sein d’une application déjà initiée en suivant un plan de collaboration clair
  • Lire et retranscrire le fonctionnement d’un morceau de code écrit par d’autres développeurs
  • Mettre en oeuvre des tests unitaires et fonctionnels
  • Produire un rapport de l’exécution des tests
  • Analyser la qualité de code et la performance d’une application
  • Établir un plan pour réduire la dette technique d’une application
  • Fournir des patchs correctifs lorsque les tests le suggèrent

Ressources

Fermer le projet

MyWebSiteDown.com

  • Symfony 7.1
  • |
  • Symfony Scheduler
  • |
  • PHP 8.2
  • |
  • GitHub
  • |
  • Doctrine

MyWebSiteDown est un service en ligne gratuit qui permet de vérifier l'état de vos sites web et de recevoir des alertes automatiques par e-mail en cas d'indisponibilité.

Fonctionnalités principales :

  • Surveillance de sites multiples : Ajoutez jusqu'à 10 sites web à votre compte pour une surveillance centralisée.
  • Alertes automatiques : Recevez des notifications par e-mail dès qu'un de vos sites devient inaccessible.
  • Historique et graphiques : Consultez l'historique de disponibilité de vos sites grâce à des graphiques détaillés.
  • Interface conviviale : Profitez d'une interface simple et intuitive pour gérer la surveillance de vos sites.

Pour commencer, il vous suffit de créer un compte gratuitement sur le site.

Ressources

Fermer le projet

AUTOMATISATION INFRASTRUCTURE DOLIBARR

  • Devops
  • |
  • Terraform
  • |
  • Ansible
  • |
  • Gitlab CI/CD
  • |
  • Docker

dolibarr infra gitlab

Automatiser la création complète de l'infrastructure nécessaire au développement et test de l'application Dolibarr (ERP/CRM en PHP) en utilisant les outils DevOps modernes.

Livrables attendus :

  • Infrastructure entièrement automatisée (Terraform)
  • Configuration automatisée des serveurs (Ansible)
  • Pipeline CI/CD (GitLab)
  • Documentation technique complète
  • Environnement de développement complet

Spécifications matérielles :

  • | Serveur | IP | vCPU | RAM | Disque | OS | Rôle |
  • **GitLab** | 192.168.1.10 | 4 | 8GB | 50GB | Ubuntu 22.04 | Git + CI/CD + Registry
  • **Management** | 192.168.1.11 | 2 | 4GB | 50GB | Ubuntu 22.04 | Terraform + Ansible
  • **Dev** | 192.168.1.12 | 2 | 4GB | 50GB | Ubuntu 22.04 | Apache + PHP + Dolibarr
  • **Test** | 192.168.1.13 | 2 | 6GB | 50GB | Ubuntu 22.04 | Apache + PHP + Dolibarr
  • **Database** | 192.168.1.14 | 2 | 8GB | 50GB | Ubuntu 22.04 | MySQL 8.0 + PHPMyAdmin
  • **Proxy** | 192.168.1.15 | 1 | 4GB | 30GB | Ubuntu 22.04 | Nginx + SSL

Contraintes techniques :

  • Utiliser exclusivement le provider `telmate/proxmox` version 3.x pour Terraform
  • Authentification par clés SSH uniquement (pas de mots de passe)
  • Configuration réseau statique pour tous les serveurs

Ressources

Fermer le projet

Eshop (2015)

  • PHP 5.6
  • |
  • Apache
  • |
  • CodeIgniter
  • |
  • MySQL 5.7
  • |
  • HTML
  • |
  • CSS
  • |
  • Docker
  • |
  • GitHub

Eshop - Boutique de jeux vidéo

Eshop est un site e-commerce de jeux vidéo réalisé en 2015 pour mon portfolio. Le site propose un parcours complet simulé : création de compte, ajout au panier, commande, remises, modes de livraison (sans paiement réel) et un back-office complet d’administration.

Fonctionnalités principales

  • Front-office : catalogue de jeux, fiches produits avec images et avis, panier, codes promo, modes de livraison simulés, création de compte client et passage de commande.
  • Back-office : gestion des produits (CRUD, stock, images), catégories, utilisateurs, commandes (liste et statuts), codes promo et frais de livraison.

Comptes de démo

  • Admin : admin / admin
  • Utilisateur : user / user

Stack technique

  • PHP 5.6 + Apache (Framework CodeIgniter)
  • MySQL 5.7 avec import automatique via ecommerce.sql
  • Configuration applicative via config.ini
  • Docker Compose pour orchestrer les services web et base de données

Compétences développées :

  • Développer une boutique en ligne complète avec gestion front et back-office
  • Gérer la persistance des données avec MySQL et PHP
  • Implémenter une architecture MVC avec CodeIgniter
  • Créer un environnement isolé avec Docker Compose
  • Mettre en œuvre un système CRUD et une interface d’administration

Ressources

Fermer le projet

À propos


Passionné par le web depuis plus de 15 ans, j’ai évolué à travers de nombreux projets personnels et professionnels dans la création, la gestion et l’optimisation de sites internet. Fort de 6 années d’expérience en développement PHP/Symfony et WordPress, j’allie savoir-faire technique et vision globale des projets digitaux.

Aujourd’hui, je mets mes compétences au service d’entreprises et de clients en tant que Développeur PHP/Symfony et DevSecOps junior, que ce soit en freelance ou dans le cadre d’un poste salarié (CDD/CDI). Ma priorité est de continuer à monter en compétences tout en apportant des solutions fiables, sécurisées et performantes.

Contactez-moi