Dream Glimpse est une application web développée avec Symfony 6.4 qui permet aux utilisateurs de partager leurs rêves et de générer automatiquement des illustrations pour ces rêves (fonctionnalité non implémentée dans cette version MVP).
- Inscription et authentification des utilisateurs
- Publication de rêves avec upload d'images
- Affichage des rêves récents sur la page d'accueil
- Pagination des listes de rêves et d'utilisateurs
- Gestion des profils utilisateurs
- Système de newsletter
- PHP 8.1 ou supérieur
- Composer
- Symfony CLI
- MySQL
-
Clonez le dépôt :
git clone https://github.com/timlapov/dream-glimpse.git cd dream-glimpse -
Installez les dépendances :
composer install -
Configurez votre base de données et le server SMTP dans le fichier
.env.local:DATABASE_URL="mysql://username:[email protected]:3306/dream_glimpse?serverVersion=8.0" MAILER_DSN=smtp://localhost:1025 -
Créez la base de données :
php bin/console doctrine:database:create -
Appliquez les migrations :
php bin/console doctrine:migrations:migrate -
Chargez les fixtures (données de test) :
php bin/console doctrine:fixtures:load -
Lancez le serveur de développement (vous devez également lancer votre serveur SMTP pour tester la réception des courriels) :
symfony serve --no-tls
L'application devrait maintenant être accessible à l'adresse http://localhost:8000. Vérifiez la sortie de la ligne de commande (vous pouvez avoir un port différent)
La page d'accueil affiche les derniers rêves publiés et permet aux utilisateurs de s'inscrire ou de se connecter. En bas de la page, une option permet de s'abonner aux newsletters. Lorsque vous vous abonnez, un message de bienvenue est envoyé à votre adresse email.
Les utilisateurs connectés peuvent publier leurs rêves en fournissant une description et en téléchargeant une image.
La publication peut être visualisée dans son intégralité. Si l'utilisateur a des droits d'administrateur ou est l'auteur de la publication, il peut également voir les boutons "supprimer" et "modifier".
Une page listant tous les utilisateurs inscrits est disponible.Les administrateurs disposent d'un bouton pour modifier les utilisateurs (en cliquant dessus, ils peuvent modifier leurs données ou les supprimer). Ce bouton est également disponible pour l'utilisateur connecté.
Chaque utilisateur a un profil qui affiche ses informations et ses rêves publiés. Il peut modifier ses coordonnées en cliquant sur l'icône du stylo à côté de son nom.
assets/: Contient les fichiers front-end (JavaScript, CSS, images) et les configurations de Webpack.bin/: Contient les fichiers binaires utilisés par Symfony, tels que le console.config/: Contient les fichiers de configuration de l'application Symfony.data/: Peut contenir des fichiers de données, captures d'écran pour readme.md.migrations/: Contient les fichiers de migration de la base de données pour Doctrine.public/: Contient les fichiers publics accessibles via le navigateur (images, CSS, JS, etc.).src/: Dossier source contenant le code PHP du projetController/: Contient les contrôleurs de l'application.DataFixtures/: Contient les fixtures de données pour le peuplement de la base de données.Entity/: Définit les entités Doctrine.EventListener/: Contient les écouteurs d'événements pour la gestion des événements spécifiques de l'application.Form/: Contient les classes de formulaires.Newsletter/: Contient la logique liée aux newsletters.Repository/: Contient les repository pour l'accès aux données.Security/: Contient la logique de sécurité (voters, etc.).Service/: Services personnalisés (ex: FileUploader).Kernel.php: Le point d'entrée de l'application Symfony.
templates/: Contient les templates Twig..env: Fichier de configuration des variables d'environnement.composer.json: Fichier de configuration de Composer, contenant les dépendances du projet.composer.lock: Fichier généré par Composer, verrouillant les versions exactes des dépendances installées.README.md: Fichier de documentation du projet.symfony.lock: Fichier généré par Symfony, verrouillant les versions exactes des composants installés.
- Génération d'images avec l'IA via une API externe
- Intégration d'un service externe pour générer des illustrations basées sur les descriptions de rêves fournies par les utilisateurs.
- Utilisation d'API pour obtenir des images uniques et personnalisées.
- Système de likes
- Mise en place d'un système de likes permettant aux utilisateurs d'aimer les rêves partagés.
- Affichage du nombre de likes pour chaque rêve et possibilité de retirer un like.
Les contributions sont les bienvenues ! N'hésitez pas à ouvrir une issue ou à soumettre une pull request.
Ce projet est sous licence Creative Commons Attribution-NonCommercial 4.0 International License.