Projet de cartographie des emplois du numérique en France : https://ango-jobs.herokuapp.com/
ruby '2.1.3' avec rbenv ou un autre gestionnaire de versions
postgresql http://www.postgresql.org/
sudo apt-get install postgresql
sudo apt-get install postgresql-client-9.3
sudo apt-get install postgresql postgresql-contrib
bundler http://bundler.io/
gem install bundler
git clone https://github.com/simplonco/carto-emploi.git
Puis lancer l'installation des gem :
bundle install
Modifier le fichier congig/database.yml
avec vos propres données.
renommer les fichiers .envsample et /parser/.envsample en .env et remplacer les valeurs si nécessaire Ex :
DATABASE_PASSWORD=pole_emploi
DATABASE_USER_NAME="pole_emploi"
DATABASE_URL=postgres://..... #valeur donnée par heroku ou autre
RACK_ENV=development
puis modifier le ficher '/config/database.yml' si besoin est
lancer le terminal de postgres
sudo su postgres
puis
psql
ou sudo -u postgres psql
puis
create role pole_emploi with createdb login password 'pole_emploi';
Pour vérifier que le changement est OK et voir la liste des utilisateurs :
\dgh
\?
Pour sortir de la console PSQL et revenir à la ligne de commande du terminal Ctrl D (deux fois !).Pb : les données de database.yml ne sont pas prises en compte car la base n'a pas l'utilisateur pole_emploi comme owner :
rake dotenv
rake db:create RACK_ENV='development'
(essayer bundle exec rake db:create RACK_ENV='development')
puis rake db:structure:load
qui va charger la structure de la bdd
ou rake ango:create_tables
un script sql qui prend en compte l'environnement.
Lancer la tâche rake ango:create_tables
Ce script crée les tables dans la base pole_emploi avec comme owner pole_emploi.
Penser à modifier le fichier database.yml
si vous souhaitez modifier les paramètres.
Dans le terminal :
heroku pg:psql -a ango-jobs <db/structure.sql
( heroku pg:psql -a your-app-name <db/structure.sql )
Voir la liste des tâches disponibles rake -T
Lancer le premier script qui récupère les urls et id correspondant aux offres d'emplois pour les jobs du numérique
Attention : le script génère de nombreuses url !
Sachant que les départements vont de 1 à 95 et que le 20 n'existe pas, c'est la Corse et est remplacé par 2A et 2B
rake parser:url_parse_1_19
# insère les urls des offres des départements 1 à 19
rake parser:url_parse_21_95
# insère les urls des offres des départements 21 à 95
rake parser:url_parse_2A_2B
# insère les urls des offres disponibles en Corse
ou
rake ango:a_l_abordage
# insère les urls des offres de tous les départements
Depuis votre terminal, ajouter heroku run
avant la listes des tâches rake mentionnées au paragraphe précédant.
Exemple : heroku run rake -T
Une fois que l'on a rempli la base avec les urls, il faut nettoyer cette base. On dispose de 2 tâches rake.
rake clean_db:delete_urls_from_parse
On enlève les offres que l'on ne veut pas faire apparaître sur la carte et donc qu'on ne veut pas enregistrer dans la base de données. C'est un script un peu long qui nécessite l'analyse du contenu des offres (supprime les codes romes et adresses invalides ainsi que les offres non disponibles de la base de données d'url).
Ce script enlève de la bdd les url dont :
Alternative, sur Heroku on peut executer des script sql : heroku pg:psql -a ango-jobs <db/delete_from_parse.sql
rake clean_db:delete_offers
Une fois que la base d'url est propre on peut passer à l'étape suivant, l'insertion des données des offres d'emploi (titre du métier, code rome, etc.)
rake ango:insert_offers
# parse les urls et insère le détail des offres dans la base de données
Attention, c'est long quand la base est vide !!
Ces opérations de maintenance sont effectuées tous les jours afin de garantier une base d'offres pertinentes. Voir étape 2.
Dans le terminal :
shotgun
\admin
Les logins et mots de passe sont à modifier dans le fichier .env (voir le modèle .envsample)
Il faut également renseigner la variable SESSION_SECRET avec un mot de passe
Ex d'urls pour visualiser le fichier json généré :
Les pages de détail d'offres disponibles pole emploi étant mouvantes, j'ai créé des copies mais il faudrait les mettre à jour
ruby -run -e httpd . -p 8000
ruby body_parser_test.rb