Comment déployer une application symfony sur Heroku!

# 🌐 Projet Front-Back End Easy_Admin_YouTube_NewsLetter_Firebase![GitHub](https://github.com/vertingo/Easy_Admin_YouTube_Newsletter_Firebase)
=======================

Front:
Vertin Go Website Design By Mobirise(http://mobirise.com) + Front File Manager

Back end:
Api YouTube + FireBase(Push Notification) + NewsLetters + File Manager

#### Illustrations

Front-End

————————————

————————————

#### Ci-dessus tous vos fichiers upload sur le file manager regroupés sous forme de carousel automatique!

————————————
————————————
————————————
————————————
————————————
————————————
————————————

Ci-dessous un aperçu de la page Playlist Youtube généré automatiquement une fois votre compte synchronisé avec YouTube!

Back-End

————————————
————————————
————————————
————————————
————————————
Personnaliser votre Panel Football LiveScore en choississant votre championnat, joueur et club favori!
————————————
————————————
————————————
————————————
————————————
————————————
————————————
————————————
————————————
————————————

#### Installation Localement avec Xampp

Prérequis:

– *Gestionnaire de commande composer with xampp! ==> https://www.youtube.com/watch?v=v7uCji-WhjY

Une fois xampp installé il faut lancer le serveur apache et mysql illustré ci-dessous:

Assurer vous que les références à votre base de donnée sont bien renseignés dans parameters.yml.dist et parameters.yml. A priori les valeurs sont déjà correct pour l’environnement de dev! A noter qu’il faut bien distinguer config_dev.yml et config_prod.yml qui comme son nom l’indique sont deux fichiers de config propre à leur environnement dans lequelle l’application évolue! Soit local pour config_dev.yml et en ligne config_prod.yml!

Cliquer sur admin pour accéder à l’interface phpMyAdmin:

Une fois vos bases de données recréés elles seront accessibles dans PhpMyAdmin!

Pour les recréer voir les commandes ci-dessous:

composer install
php bin/console doctrine:database:create (Ou créer la base de donnée easy_admin directement dans phpmyadmin)
php bin/console doctrine:schema:create (Création des tables dans la base de donnée easy_admin)
php bin/console fos:user:create name test@example.com password (Utilisation du bundle fosuserbundle)
php bin/console fos:user:promote user ROLE_ADMIN (Afin de vous logger sur l'interface admin)
Page de login de l'admin interface ==> http://localhost/easyadmin-master/web/app_dev.php/login
Page de front interface ==> http://localhost/easyadmin-master/web/app_dev.php/intro

How to deploy on Heroku
Prérequis avant la phase de déploiement:Ajout des lignes suivantes dans le front controller de prod donc app.php dans le dossier web:

Request::setTrustedProxies(array($request->server->get(‘REMOTE_ADDR’)));
Request::setTrustedHeaderName(Request::HEADER_FORWARDED, null);
Request::setTrustedHeaderName(Request::HEADER_CLIENT_HOST, null);

Ajout d’un fichier procfile avec le contenu suivant spécifique pour les applications symfony dans le dossier web:web: vendor/bin/heroku-php-apache2 web/Ajouter une extension postgre pour la persistance des données:

Cliquer sur votre extension dans le sous menu du champs recherche:

Rendez-vous ensuite sur settings:

Aller sur view credentials:

Les différents champs doivent être ajouter dans le parameters.yml et parameters.yml.dist dans app/config dans les variables d’environnements prod donc database_host_prod. Pour database_host_mandanta et b il faut ajouter une fois de plus la même extension postgre! Il faut également préciser la variable d’environnement database url dans composer.json disponible une fois l’ajout de l’extension postgre effectué:

"incenteev-parameters": {
"file": "app/config/parameters.yml",
"env-map": {
"database_url": "DATABASE_URL",
"database_url2": "HEROKU_POSTGRESQL_BLUE_URL",
"database_url3": "HEROKU_POSTGRESQL_ONYX_URL",
"monolog_action_level": "LOG_LEVEL"
} }

Commande de Déploiement:
Prérequis installation des gestionnaires de commandes:
– *Git!(Git Cli)
– *Composer!(Composer Cli)
– *Heroku!(Heroku Cli)

Créer un projet sur Heroku, installer le gestionnaire de commande Heroku en local et taper les commandes suivantes:

heroku login
heroku create (Créer un nom d'app aléatoire sinon créer la sur Heroku directement!)
heroku git:remote -a nom_de_votre_app_heroku
heroku config:set ENV=PRODUCTION
git add .
git commit -am "make it better"
git push heroku master

Une fois déployé sur le serveur Heroku:
Il faut recréer la base donnée en se connectant à distance sur le terminal du serveur:

heroku run bash
php bin/console doctrine:schema:create (Création des tables dans la base de donnée easy_admin)
php bin/console fos:user:create name test@example.com password (Utilisation du bundle FosUserbundle)
php bin/console fos:user:promote user ROLE_ADMIN (Afin de vous logger sur l'interface admin)
Page de login de l'admin interface ==> https://platform-media.herokuapp.com/login
Page de front interface ==> https://platform-media.herokuapp.com/intro

Suppléments de configuration pour la connexion à YouTube:Créer un projet dans Google Cloud Console! Activer YouTube Data Api V3Cliquer sur créer des identifiants Id Client AuthOrigines JavaScript autorisées:
– http://votre_heroku_app.herokuapp.comEt URI de redirection autorisés:
– http://votre_heroku_app.herokuapp.com/admin/dashboard/
– http://localhost/easyadmin-master/web/app_dev.php/admin/dashboard/Une fois la clé créé copier coller cette clé puis renseigné la dans web/youtube:
– auth.js ligne 5
– analytics_codelab.js ligne 4

Ensuite si votre connexion via Google est bien configuré loger vous sur votre Interface Admin afin de synchroniser votre compte avec YouTube et ensuite accédez à la page: https://votre_heroku_app.herokuapp.com/listplaylist?pseudo=votre_nom_d_utilisateur
Voici l’exemple de ma page playlist automatiquement généré une fois connecté sur mon espace administrateur et la connexion établi via YouTube Api V3: https://platform-media.herokuapp.com/listplaylist?pseudo=vertingo

Ci-dessous la page Playlist Youtube généré une fois synchronisé avec YouTube!

#### Synchroniser avec l’application mobile:

– Des fichiers uploads sur le File Manager.
– Des vidéos et playlist de votre chaîne YouTube.
– Google Cloud Messaging pour réception de notification push. Ci-dessous illustration de la synchronisation avec l’application mobile TopsiteApp et réception de notification push!

Comment ajouter le SDK Facebook à votre application Android!

Ajout du SDK Facebook + Bouton de partage!

1)Importation du SDK à votre projet Android!

Télécharger le SDK à l’adresse suivante : https://developers.facebook.com/docs/android/downloads/?locale=fr_FR

Dézipper le contenu et dans votre projet Android en sélectionnant le dossier app + clic droit dans votre arborescence de votre projet à gauche! Faites New → Module → Import an existing JAR package → Sélectionner le fichier .JAR du SDK télécharger normalement appelé :

facebook-android-sdk4.26.0

Android_Library

Ajout du SDK Facebook + Bouton de partage!

Après l’importation de votre library .JAR aller sur File → Project Structure

Project Structure
Et dans Module App Dependencies indiquer les chemins vers le fichier .JAR spécifier à l’étape précédente !

Project Structure Dependancy

Ajout du SDK Facebook + Bouton de partage!

2) Ajout des dépendances dans votre projet et importation des packages sdk Facebook !

Dans votre fichier build.gradle (Module : app)

Ajouter repositories{ mavenCentra() } dans repositories au dessus de dependencies:

Ajouter également dans dependencies: compile ‘com.facebook.android:facebook-android-sdk:[4,5)’

Importer les packages suivant dans votre class ou vous souhaitez configurer une connexion via facebook par exemple:

import com.facebook.FacebookSdk;

import com.facebook.login.LoginResult;

Ajout du SDK Facebook + Bouton de partage!

Ajout dans le fichier Android Manifest:

<uses-permission android:name= »android.permission.INTERNET » />    

<meta-data    android:name= »com.facebook.sdk.ApplicationId »    android:value= »@string/facebook_app_id » />    

<provider    android:name= »com.facebook.FacebookContentProvider »    android:authorities= »com.facebook.app.FacebookContentProvider{fb_app_id} »    android:exported= »true » />    

<activity    android:name= »com.facebook.FacebookActivity »    android:configChanges= »keyboard|keyboardHidden|screenLayout|screenSize|orientation »    android:label= »@string/app_name » />    

<activity    android:name= »com.facebook.CustomTabActivity »    android:exported= »true »>    

<intent-filter>        <action android:name= »android.intent.action.VIEW » />        

<category android:name= »android.intent.category.DEFAULT » />        

<category android:name= »android.intent.category.BROWSABLE » />  

 <data android:scheme= »@string/fb_login_protocol_scheme » />    </intent-filter>    </activity>

Ajout du SDK Facebook + Bouton de partage!

Ajout dans les ressources strings !

<string name= »facebook_app_id »>votre_app_id</string>

<string name= »fb_login_protocol_scheme »>fb|votre_app_id</string>

Ajout du SDK Facebook + Bouton de partage!

3)Générez une clé de hachage et renseigné la sur votre gestionnaire d’application sur votre compte Facebook afin d’établir un lien fiable entre votre application et Facebook!

(Taper cmd dans le champs recherche + Ctrl + Shift + Entrée et placez-vous dans le dossier : C:\Program Files\Java\jre1.8.0_144\bin avec l’outil keytool illustrer ci-dessous afin d’exécuter les commandes de génération de clé de hachage!)

keytool
Continue reading « Comment ajouter le SDK Facebook à votre application Android! »