Portfolio présentant mon parcours, mes compétences et mes projets. C'est une
application Rails classique en développement, exportée en site statique et
publiée sur GitHub Pages à chaque push sur main.
- Accueil : présentation et navigation
- Projets : quatre projets principaux avec leur fiche détaillée, plus une sélection de projets d'études
- À propos : parcours, évolution technique et technologies
- Contact : LinkedIn, e-mail, GitHub et CV
Les projets principaux sont NutriFlow, Vigie, NestioBnb et Scandela.
- Ruby on Rails 8 avec Propshaft et Importmap
- Hotwire (Turbo + Stimulus) pour les interactions
- Tailwind CSS v4
- Aucune base de données : le site n'en a pas besoin
bin/setup # installe les dépendances
bin/dev # lance le serveur et le watcher TailwindLe site est alors disponible sur http://localhost:3000.
Tout le contenu des projets vit dans config/projects.yml.
Une entrée dans featured génère à la fois la carte sur la page projets et sa
fiche détaillée, et le script de build y lit la liste des pages à produire. Il
n'y a rien d'autre à toucher.
Chaque push sur main déclenche le workflow, qui :
- précompile les assets ;
- démarre le serveur Rails en mode production ;
- exécute
script/build_static.rb, qui récupère chaque page et l'écrit dans_site/; - publie le résultat sur GitHub Pages.
Le script vérifie chaque page avant de l'écrire. Une réponse en erreur, une page vide ou une exception Rails interrompt le build au lieu d'être mise en ligne.
Le dépôt étant un site utilisateur servi à la racine du domaine, les chemins
absolus produits par Rails fonctionnent tels quels : aucune réécriture de liens
n'est nécessaire. Chaque page est écrite en <chemin>/index.html, avec une copie
en <chemin>.html pour les adresses publiées auparavant.
Pour reproduire le build en local :
export RAILS_ENV=production SECRET_KEY_BASE=peu-importe
bin/rails assets:precompile
bin/rails server -e production -p 3000 -b 127.0.0.1 &
bundle exec ruby script/build_static.rb
cd _site && python3 -m http.server 4000