Skip to content
AgonisSh edited this page Nov 29, 2024 · 11 revisions

🚀 FreelyForm Backend

🌟 Présentation

FreelyForm Backend est une interface conçue pour communiquer avec l'application frontend via une API REST. Développée en Java, elle sert de pont entre l'utilisateur et les données en permettant des échanges entre les deux parties. Les données sont stockées sous le format JSON, et l'application se connecte à Docker pour gérer les environnements et les conteneurs de manière flexible et scalable.

✨ Principales fonctionnalités

  • ✍️ Création et gestion des formulaires avec différents types de champs.
  • 🔐 Gestion des utilisateurs en assurant l'authentification, et la gestion des rôles et des autorisations de l'utilisateur.
  • Soumission et validation des réponses des formulaires selon les différentes contraintes du formulaire.
  • 💾 Stockage des données dans une base de données sous le format JSON.
  • 📊 Possibilité d'exporter les réponses sous le format Excel.

Pour plus d'informations, vous pouvez accéder aux détails des fonctionnalités

🛠️ Comment lancer l'application ?

Lancer le projet en quelques étapes seulement:

  1. Démarrer l'application Dockerisée:

    docker compose up
  2. Utiliser le mode de débogage ou démarrer l'application localement:

    docker compose up mongo

    Exécutez ensuite l'application à partir de votre IDE.

  3. Pour lancer l'application en mode production :

    docker-compose -f docker-compose.prod.yml up
  4. Lancer le projet sur codespace : The container will build automatically and after completion, mongodb will ask for a connection, use this connection : mongodb://admin:pass@localhost:27017/freelyform?authSource=admin

After the connection is done launch project :

./mvnw package
 java -jar target/freelyform-0.0.1-SNAPSHOT.jar
🛠️ If you have a 502 error while visiting port 8080, put the port visibity to public.
🛠️ If you have a 403 error, it's working, it's just spring security blocking your way.

👩‍💻 Pour les développeurs

🔥 Se connecter en tant qu'admin

Information about admin login will show in red in the terminal when launching the app for the first time, the password will be shown only once. You can delete the current admin account if needed via the mongo express UI.


🔥 Hot Reload avec IntelliJ IDEA

Rendez votre flux de développement plus fluide avec hot reload ! Voici comment l'installer dans IntelliJ:

  1. Activer la construction automatique du projet:

    • Allez dans SettingsBuild, Execution, DeploymentCompilerEnable "Build le projet automatiquement"
  2. Autoriser l'auto-make pendant l'exécution:

    • Allez dans SettingsAdvanced SettingsCompilerEnable "Autoriser le démarrage de l'auto-make même si une application développée est en cours d'exécution"

Désormais, vous pouvez apporter des modifications et les voir instantanément sans redémarrer l'application! 🧑‍💻


📊 Accéder aux données de MongoDB

Vous souhaitez vérifier ou manipuler les données de MongoDB ? Pas de problème ! Il vous suffit de vous rendre sur:

🌐 Mongo Express UI

Il s'agit d'une interface facile à utiliser pour les opérations de la base de données. 🗃️


📚 Documentation API

Interagissez avec les endpoints de manière transparente grâce à Swagger UI ! Explorer, tester et expérimenter:

🔗 Swagger UI - API Documentation

Cliquez sur le lien pour accéder à la documentation interactive et commencer à faire des demandes directement à partir de votre navigateur! 🚀

📚 Documentation