diff --git a/app/Models/Activite.php b/app/Models/Activite.php new file mode 100644 index 0000000..2723f8a --- /dev/null +++ b/app/Models/Activite.php @@ -0,0 +1,10 @@ +belongsTo(Utilisateur::class, 'ID_Utilisateur'); + } + + // Relation récursive pour les réponses aux commentaires [cite: 60, 275] + public function reponses() { + return $this->hasMany(Commentaire::class, 'ID_Parent_Commentaire'); + } +} \ No newline at end of file diff --git a/app/Models/Ressource.php b/app/Models/Ressource.php new file mode 100644 index 0000000..7d51091 --- /dev/null +++ b/app/Models/Ressource.php @@ -0,0 +1,26 @@ +belongsTo(TypeRessource::class, 'ID_Type_Ressource'); + } + + public function categories() { + // Relation Many-to-Many via la table pivot Ressource_Categorie [cite: 175] + return $this->belongsToMany(Categorie::class, 'Ressource_Categorie', 'ID_Ressource', 'ID_Categorie'); + } + + public function createur() { + return $this->belongsTo(Utilisateur::class, 'ID_Utilisateur_Createur'); + } + + public function commentaires() { + return $this->hasMany(Commentaire::class, 'ID_Ressource'); + } +} \ No newline at end of file diff --git a/app/Models/Role.php b/app/Models/Role.php new file mode 100644 index 0000000..3f2c7fc --- /dev/null +++ b/app/Models/Role.php @@ -0,0 +1,10 @@ + */ - use HasFactory, Notifiable; - - /** - * The attributes that are mass assignable. - * - * @var list - */ - protected $fillable = [ - 'name', - 'email', - 'password', - ]; - - /** - * The attributes that should be hidden for serialization. - * - * @var list - */ - protected $hidden = [ - 'password', - 'remember_token', - ]; - - /** - * Get the attributes that should be cast. - * - * @return array - */ - protected function casts(): array - { - return [ - 'email_verified_at' => 'datetime', - 'password' => 'hashed', - ]; - } -} diff --git a/app/Models/Utilisateur.php b/app/Models/Utilisateur.php new file mode 100644 index 0000000..3c06406 --- /dev/null +++ b/app/Models/Utilisateur.php @@ -0,0 +1,42 @@ + 'encrypted', + 'MotDePasse' => 'hashed', + 'DateInscription' => 'datetime', + ]; +} \ No newline at end of file diff --git a/database/migrations/2026_03_23_211437_create_roles_table.php b/database/migrations/2026_03_23_211437_create_roles_table.php new file mode 100644 index 0000000..0b4fe21 --- /dev/null +++ b/database/migrations/2026_03_23_211437_create_roles_table.php @@ -0,0 +1,27 @@ +id(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('roles'); + } +}; diff --git a/database/migrations/2026_03_23_211437_create_utilisateurs_table.php b/database/migrations/2026_03_23_211437_create_utilisateurs_table.php new file mode 100644 index 0000000..beb9019 --- /dev/null +++ b/database/migrations/2026_03_23_211437_create_utilisateurs_table.php @@ -0,0 +1,27 @@ +id(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('utilisateurs'); + } +}; diff --git a/database/migrations/2026_03_23_211438_create_activites_table.php b/database/migrations/2026_03_23_211438_create_activites_table.php new file mode 100644 index 0000000..71a9ef9 --- /dev/null +++ b/database/migrations/2026_03_23_211438_create_activites_table.php @@ -0,0 +1,27 @@ +id(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('activites'); + } +}; diff --git a/database/migrations/2026_03_23_211438_create_categories_table.php b/database/migrations/2026_03_23_211438_create_categories_table.php new file mode 100644 index 0000000..24c1532 --- /dev/null +++ b/database/migrations/2026_03_23_211438_create_categories_table.php @@ -0,0 +1,27 @@ +id(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('categories'); + } +}; diff --git a/database/migrations/2026_03_23_211438_create_commentaires_table.php b/database/migrations/2026_03_23_211438_create_commentaires_table.php new file mode 100644 index 0000000..92f55d9 --- /dev/null +++ b/database/migrations/2026_03_23_211438_create_commentaires_table.php @@ -0,0 +1,27 @@ +id(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('commentaires'); + } +}; diff --git a/database/migrations/2026_03_23_211438_create_ressources_table.php b/database/migrations/2026_03_23_211438_create_ressources_table.php new file mode 100644 index 0000000..71d31fa --- /dev/null +++ b/database/migrations/2026_03_23_211438_create_ressources_table.php @@ -0,0 +1,27 @@ +id(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('ressources'); + } +}; diff --git a/database/migrations/2026_03_23_211438_create_type_ressources_table.php b/database/migrations/2026_03_23_211438_create_type_ressources_table.php new file mode 100644 index 0000000..16b8c3c --- /dev/null +++ b/database/migrations/2026_03_23_211438_create_type_ressources_table.php @@ -0,0 +1,27 @@ +id(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('type_ressources'); + } +}; diff --git a/public/img/logo-ministere.png b/public/img/logo-ministere.png new file mode 100644 index 0000000..3a27865 Binary files /dev/null and b/public/img/logo-ministere.png differ diff --git a/resources/views/layout/footer.blade.php b/resources/views/layout/footer.blade.php new file mode 100644 index 0000000..8eb1653 --- /dev/null +++ b/resources/views/layout/footer.blade.php @@ -0,0 +1,13 @@ + \ No newline at end of file diff --git a/resources/views/layout/header.blade.php b/resources/views/layout/header.blade.php new file mode 100644 index 0000000..fa0b09a --- /dev/null +++ b/resources/views/layout/header.blade.php @@ -0,0 +1,34 @@ +
+
+
+
+
+

Gouvernement

+

Liberté
Égalité
Fraternité

+
+
+

+ Logo du Ministère des Solidarités et de la Santé +

+
+ + + + +
+
\ No newline at end of file diff --git a/resources/views/resources.blade.php b/resources/views/resources.blade.php new file mode 100644 index 0000000..5907c0f --- /dev/null +++ b/resources/views/resources.blade.php @@ -0,0 +1,131 @@ + + + + + + Catalogue - (RE)Sources Relationnelles + + + + + + @include('layout.header') + +
+
+

Catalogue des Ressources

+

Accédez à des outils et conseils pour renforcer vos liens. Filtrez les ressources selon vos besoins.

+
+ +
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
+ +
+ +
+
📖
+
+
+ Article +
+ + +
+
+

L'écoute active en famille

+

Découvrez comment la méthode de l'écoute active peut transformer vos échanges avec vos enfants et réduire les tensions quotidiennes.

+
+ Famille + Communication +
+
+ +
+ +
+
🎲
+
+
+ Activité Collective +
NOUVEAU
+
+

Le Jeu des Complices

+

Un jeu de cartes interactif à faire en couple ou entre amis pour redécouvrir vos forces communes et vos meilleurs souvenirs.

+
+ Couple + Jeu +
+
+
+ +
+
+ +
+
🎥
+
+
+ Vidéo + +
+

Gérer les conflits au bureau

+

10 minutes pour apprendre à désamorcer une situation tendue avec un collègue sans sacrifier votre bien-être.

+
+ Pro + Médiation +
+
+
+ Visionner +
+
+ +
+
+ + @include('layout.footer') + + + \ No newline at end of file diff --git a/resources/views/welcome.blade.php b/resources/views/welcome.blade.php index 45eeb7c..9b45a94 100644 --- a/resources/views/welcome.blade.php +++ b/resources/views/welcome.blade.php @@ -36,34 +36,7 @@ Aller au contenu principal -
-
-
-
-

Gouvernement

-

Liberté
Égalité
Fraternité

-
-

- Ministère des Solidarités et de la Santé -

-
- - - - -
-
+ @include('layout.header')
@@ -76,7 +49,7 @@ La plateforme citoyenne dédiée à la qualité des liens : famille, amis, couple ou collègues.

- + Explorer les ressources
- - + @include('layout.footer') \ No newline at end of file diff --git a/routes/web.php b/routes/web.php index 86a06c5..1948474 100644 --- a/routes/web.php +++ b/routes/web.php @@ -5,3 +5,7 @@ use Illuminate\Support\Facades\Route; Route::get('/', function () { return view('welcome'); }); + +Route::get('/resources', function () { + return view('resources'); +});