...
Cloner les sources disponibles sous gitHub GitHub https://github.com/univlorraine/esup-multi
| Bloc de code |
|---|
git clone git@githubhttps://github.com:/univlorraine/esup-multi.git |
...
Le CMS HeadLess va permettre de fournir du contenu dynamique au client mobile.
Plusieurs CMS sont possibles, celui par défaut est Wordpress.
| Développer | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
DirectusInstallationLe CMS se lance avec Docker. Par défaut, la configuration proposée utilise MySQL
Import
Permissions
pour plus d'explication consultez la page suivante |
Le Backend
Installation du CMS
Pour la mise en place de WordPress, se référer à la documentation suivante : Installer et configurer Wordpress
Notes :
- Le fichier docker-compose.yml est dans env/local/docker/wordpress
- Pour se connecter, les identifiants par défaut sont :
- Identifiant :
admin - Mot de passe :
password
- Identifiant :
Installation du connecteur CMS
Le choix du CMS n'étant pas imposé, un connecteur est nécessaire pour le relier au reste du projet.
Le code source du connecteur est fourni dans le projet Esup-Multi, au niveau de l'arborescence dev/connectors/multi-cms-connector
Commencez par installer les dépendances du connecteur : npm ci
Pour plus d'informations sur l'installation et la configuration du connecteur, se référer à la documentation suivante : Connecteur CMS Headless
Pour lancer le connecteur : npm start
Le Backend
Le backend doit disposer des briques suivantes Le backend doit disposer des briques suivantes (Voir l'installation des pré-requis) :
- Une base MongoDB
- Un serveur Nats
- Une base RedisInstance de Directus (cf. section Le CMS Headless)
- Un CMS
- Connecteur CMS
Configuration des variables d'environnement
Esup-Multi s'accompagne d'un serveur de mocks visant à simuler les connecteurs qui devront être branchés sur le SI de l'établissement. Esup-multi est donc pré-paramétré pour fonctionner avec ces mocks et les paramètres par défaut des services à installer en pré-requis.
Dans Dans dev/user-backend-nest copier et renommer chaque fichier .env.dist en .env pour :
...
Dans chaque µService utilisant directus le CMS positionner la variable <MICRO_SERVICE_NAME>_SERVICE_NAME>CMS_DIRECTUSCONNECTOR_API_BEARER_TOKEN avec le token obtenu pour le user directus (cf paragraphe précédentgénéré précédemment (voir Connecteur CMS Headless) dans le fichier fichier .env, ainsi que l'URL du connecteur CMS sur la variable <MICRO_SERVICE_NAME>_SERVICE_CMS_CONNECTOR_API_URL .
Exemple :
| Bloc de code |
|---|
SOCIAL_NETWORK_SERVICE_CMS_CONNECTOR_API_URL=http://localhost:4000
|
| Bloc de code |
SOCIAL_NETWORK_SERVICE_CMS_DIRECTUSCONNECTOR_API_BEARER_TOKEN=azertyqsdfg123456 |
Dans renseigner Renseigner dans /main/.env et dans /microservices/auth/.env un secret pour les JWT dans la variable AUTH_SERVICE_JWT_SECRET
...
L'application multi est fournie avec un serveur de mock. Il s'agit d'API qui renvoient des données statiques qui vous permettent d'émuler ce que retourneraient des connecteurs branchés sur votre système d'information. Esup-multi est donc pré-paramétré pour fonctionner avec ces mocks et les paramètres par défaut des services à installer en prérequis.
L'URL de chaque mock est précisée par défaut dans le fichier .env du microservice sous la forme :
...
| Développer | ||
|---|---|---|
| ||
|
...
| Bloc de code | ||
|---|---|---|
| ||
<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<supports-screens android:smallScreens="false"
android:normalScreens="true"
android:largeScreens="true"
android:xlargeScreens="true" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme"
android:hardwareAccelerated="true">
<activity
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|smallestScreenSize|screenLayout|uiMode|navigation"
android:name="fr.esupportail.mobile.multi.MainActivity"
android:label="@string/title_activity_main"
android:theme="@style/AppTheme.NoActionBarLaunch"
android:launchMode="singleTask"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="${applicationId}.fileprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/file_paths" />
</provider>
<meta-data
android:name="firebase_messaging_auto_init_enabled"
android:value="false" />
<meta-data
android:name="firebase_analytics_collection_enabled"
android:value="false" />
</application>
<queries>
<intent>
<action android:name="android.intent.action.SENDTO" />
<data android:scheme="mailto" />
</intent>
</queries>
<!-- Features -->
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.location.gps" />
<!-- Permissions -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<!-- Override Libraries -->
<uses-sdk tools:overrideLibrary="com.google.zxing.client.android" />
</manifest> |
...
