Développement d'un site de Mairie facile à administrer et plaisant à utiliser
Rôle
Développeur du projet, intégration d'un design pré-existant élaboré par Timothée Goguely
Commande / Objectifs
Création d'un site de commune. Chaque page du site peut-être créée, modifiée, supprimée via l'interface d'administration. Interface d'administration accessible & claire. Tout le contenu interne est recherchable via la barre de recherche. Formulaire de contact. Transitions fluides entre les pages.
Technologies utilisées
- Frontend : SvelteKit, HTML, TailwindCSS, Javascript, Pagefind
- Backend : NodeJS, Fastify, TinaCMS
- Déploiement : Fly.io, Vercel
Fonctionnalités
- Responsive : adapté à la navigation sur mobile.
- Administration simple & claire du site : permet à n'importe quelle personne de créer/modifier/supprimer toutes les pages
- Recherche interne : tout le contenu du site est accessible via la barre de recherche.
- Amélioration de l'expérience utilisateur via la pagination : pour éviter d'afficher une trop longue liste d'actualités, j'ai fait appel au composant "Pagination" de la librairie Shadcn-UI.
- Formulaire de contact : le formulaire adressé est transféré directement sur le mail de l'administrateur.
Ce que j'ai appris
- Utiliser un framework frontend : SvelteKit
- Implémenter un CMS Headless
- Requêter une API GraphQL
- Utiliser Tailwind et travailler avec un Design System existant
- Faire de l'amélioration progressive avec un menu hamburger qui n'a pas besoin de Javascript en utilisant la Popover API
- Faire appel à un composant externe d'une librarie UI
- Travailler avec des composants Svelte pour éviter les répétitions
- Customiser Svelte pour générer un site statique
- Appliquer les layouts partagé de SvelteKit
- Générer du HTML à partir de Markdown dans SvelteKit
Lien du projet et code source
- Projet en ligne : Mon projet déployé "Mairies"
- Code source du projet : Lien Github