Arvak

Le Projet !


Projet en cours de développement. Ce projet personnel répond à un besoin d'organiser et de structurer efficacement ma veille technologique. L'application web permet d'enregistrer, de catégoriser et de lister les articles, sites web et autres ressources intéressantes que je rencontre. L'objectif est d'avoir un espace clair et consultable pour retrouver rapidement les informations pertinentes et, si besoin, de les partager avec d'autres personnes

Logo du projet Arvak

Technologies Utilisées

Laravel

Laravel

Livewire

Livewire

TailwindCSS

TailwindCSS

AlpineJs

AlpineJs

Filament

Filament

Exigences Fonctionnels

Authentification

L'application doit permettre aux utilisateurs de créer un compte et de se connecter via une authentification classique (nom d'utilisateur et mot de passe), ainsi qu'à travers des fournisseurs tiers comme GitHub et Google.

Ajout d'articles

Les utilisateurs pourront enregistrer de nouvelles ressources en fournissant un titre (idéalement récupéré de la page), une courte description et l'URL de la ressource.

Catégorisation et thèmes

Chaque article enregistré pourra être associé à une ou plusieurs catégories définies par l'utilisateur, qui pourront ensuite être regroupées en thématiques plus larges pour une organisation avancée du contenu.

Partage public de ressources

L'application offrira la possibilité de rendre des ressources publiques.

Regroupement d'articles en listes

Les utilisateurs pourront créer des listes personnalisées pour regrouper des articles spécifiques selon leurs besoins ou leurs centres d'intérêt et rendre ses listes publique ou non

Affichage de type "embed"

L'affichage des articles au sein de l'application adoptera un format "embed", similaire à celui utilisé sur des plateformes comme Twitter ou Facebook, afin de fournir un aperçu visuel attrayant du contenu (titre, image, description).

Fonctionnalités futures : Suivi et Popularité

Les prochaines évolutions incluront la possibilité pour les utilisateurs de **suivre d'autres utilisateurs, des listes, des catégories et des thématiques**. Un système de **popularité des articles**, basé sur les liens internes, sera également mis en place pour faciliter la découverte de contenu pertinent.

Gestion des utilisateurs plus avancée

Les utilisateurs enregistrés pourront modifier les informations de leur profil (nom d'utilisateur, e-mail, biographie, avatar). Un processus de réinitialisation du mot de passe sera disponible. La suppression définitive du compte et des données sera également possible.

Fonctionnalités de recherche et de filtrage

Une barre de recherche globale permettra de trouver des articles par mots-clés (titre, description, URL, catégorie). Des filtres avancés seront disponibles par catégorie, thématique, date d'ajout et potentiellement popularité.

Interaction avec les ressources partagées publiquement

Les utilisateurs connectés pourront commenter les ressources publiques, les marquer comme favorites et signaler les contenus inappropriés.

Gestion des listes plus poussée

Les listes pourront être collaboratives, permettant à plusieurs utilisateurs d'ajouter/supprimer des articles. Une description pourra être ajoutée aux listes, et l'ordre des articles sera personnalisable.

Notifications

Les utilisateurs recevront des notifications lors de l'ajout de nouveaux articles dans les catégories/thématiques suivies, ou lors de la création de nouvelles listes publiques par les utilisateurs suivis.

Specifications Techniques

Utilisation de la "TALL Stack"

L'application est développée en utilisant la "Tall Stack", une combinaison puissante et moderne de technologies PHP : Laravel, Livewire, Alpine.js et Tailwind CSS.

Interface d'administration

L'administration et la gestion du contenu de l'application sont facilitées par Filament PHP, un framework d'administration élégant et intuitif basé sur Laravel.

Gestion de base de données

Les données de l'application sont stockées et gérées à l'aide de MariaDB, un système de gestion de base de données relationnelle open source performant et fiable.

Conception orientée objet

L'architecture de l'application repose sur les principes de la programmation orientée objet (POO), utilisant des classes, des interfaces et des traits pour une structure modulaire et maintenable, en complément du pattern MVC de Laravel.

Stratégie de tests

Des tests unitaires et fonctionnels seront développés en utilisant Pest, un framework de test PHP, pour assurer la qualité et la fiabilité de l'application.

Sécurité de l'application

L'application intégrera des mesures de sécurité pour protéger contre les vulnérabilités courantes telles que les attaques XSS (Cross-Site Scripting), CSRF (Cross-Site Request Forgery) et les injections SQL. Les mots de passe des utilisateurs seront stockés de manière sécurisée. Une attention particulière sera portée à la validation des entrées utilisateur et à la protection des données sensibles.