{"id":26504504,"url":"https://github.com/devoxx/callforpapers","last_synced_at":"2026-04-15T18:32:08.842Z","repository":{"id":69150813,"uuid":"92505920","full_name":"devoxx/CallForPapers","owner":"devoxx","description":"The Devoxx Call For Papers","archived":false,"fork":false,"pushed_at":"2019-01-10T13:37:47.000Z","size":29963,"stargazers_count":1,"open_issues_count":3,"forks_count":0,"subscribers_count":7,"default_branch":"dev-belgium","last_synced_at":"2025-06-04T00:53:33.946Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"CSS","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/devoxx.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-05-26T11:52:21.000Z","updated_at":"2023-12-15T19:58:09.000Z","dependencies_parsed_at":"2023-06-09T15:30:52.143Z","dependency_job_id":null,"html_url":"https://github.com/devoxx/CallForPapers","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/devoxx/CallForPapers","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devoxx%2FCallForPapers","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devoxx%2FCallForPapers/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devoxx%2FCallForPapers/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devoxx%2FCallForPapers/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/devoxx","download_url":"https://codeload.github.com/devoxx/CallForPapers/tar.gz/refs/heads/dev-belgium","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devoxx%2FCallForPapers/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31854730,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-15T15:24:51.572Z","status":"ssl_error","status_checked_at":"2026-04-15T15:24:39.138Z","response_time":63,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-03-20T20:11:44.949Z","updated_at":"2026-04-15T18:32:08.828Z","avatar_url":"https://github.com/devoxx.png","language":"CSS","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Call for Paper application for Devoxx\n\nOnline document\n===============\nhttps://docs.google.com/document/d/1X0q0limVxdIE65pTCjpz3y5wLznn_Ra1PsortYSDTOQ/edit?usp=sharing\n\n\nEnglish\n-------\n\nThe CFP is a Call for Papers application for Conferences. \n\nThe application allows a speaker to register with Github/Google+ or LinkedIn, then post one or more proposals for a Conference.\n\nA program committee can then vote, ask questions to speaker and finally, build an Agenda for a conference.\nThe CFP offers also a REST API with the list of selected talks, speakers and the schedules. \n\nIn 2015, the Devoxx France's CFP received 681 proposals for 220 slots. The 16 members of the technical committee for Devoxx FR did more than 6700 reviews in 2 months.\n\n# Contributors\n\nOriginal author: Nicolas Martignole [@nmartignole](http://www.twitter.com/nmartignole)\n\n- Gabriel Kastenbaum [@lambdadevfr](http://www.twitter.com/lambdadevfr)\n- Jean Helou [@jeanhelou](http://www.twitter.com/jeanhelou) pour la conférence Scala.IO\n- Frédéric Camblor [@fcamblor](http://www.twitter.com/fcamblor) pour la conférence BDX.IO\n- Nicolas de Loof [@ndeloof](http://www.twitter.com/ndeloof)\n- Stephan Janssen [@stephan007](https://www.twitter.com/stephan007) \n- Mani Sarkar [theNeomatrix369](http://www.twitter.com/theNeomatrix369)\n\n## License\n\nThe CFP application is licensed under the MIT License. See License.txt or [http://opensource.org/licenses/MIT](http://opensource.org/licenses/MIT)\n\nCopyright (c) 2013 Association du Paris Java User Group \u0026 [Nicolas Martignole](http://www.touilleur-express.fr/).\n\n## Background\n\nThe CFP was originally created in 2013 for the [Devoxx France](http://www.devoxx.fr/) 2014 edition. Devoxx France is one of the biggest conference for Developers in France with 2500 attendees in 2015.\nThe conference had top sponsors like Google, Oracle, IBM and Microsoft. The conference is organized by Nicolas Martignole, Antonio Goncalvès and Zouheir Cadi.\n \nThe CFP is implemented with Scala and Play Framework v2.2.3. Redis 2.8 is used for persistence. Elastic Search is integrated as a search engine and to calculate stats with Facets.\n \n## Which Conferences are using it?\n\n- [Devoxx France](http://www.devoxx.fr)\n- [Devoxx Belgium](http://www.devoxx.be)\n- [Devoxx Poland](http://www.devoxx.pl)\n- [Devoxx UK](http://www.devoxx.co.uk)\n- [Devoxx US](http://www.devoxx.us)\n- [Devoxx Morocco](http://www.devoxx.ma)\n- [Web2Day Tech2Day](http://cfp.web2day.co/)\n- [BDX.IO](http://cfp.bdx.io/)\n- [Scala.IO](http://cfp.scala.io/)\n- [Breizh Camp](http://cfp.breizhcamp.org/)\n- [Droidcon Paris](http://cfp.droidcon.fr/home/)\n- [Android Makers](http://cfp.androidmakers.fr)\n\nSend a message to (@nmartignole)[http://www.twitter.com/nmartignole) if you plan to use the CFP.\n\n## How to set-up a local and friendly developer environment ?\n\n- Install SBT\n- Install Play 2.2.3 (not the latest version with activator) or just launch sbt from the CFP folder\n- Install Redis 2.8.21 (or better, but NOT Redis 3.x), do not use \"brew install redis\" on Mac, as it would install 2.6, an older version of Redis\n- Read Redis documentation and learn Redis with http://try.redis.io\n- Read also the self-document redis.conf https://raw.githubusercontent.com/antirez/redis/2.8/redis.conf \n\nOptional but recommended for better user experience:\n\n- Install ElasticSearch (1.2.0 or better) This version uses Facets.\n- Create Github App and configure OAuth. See [the Github site](https://github.com/settings/applications) \n- Create an application using your [Google account](https://cloud.google.com/console#/project). Configure a URL for development, such as http://localhost:9000/ and prod URL as http://cfp.devoxx.fr/\n- Create a LinkedIn App and configure OAuth\n- a [Mailjet](http://www.mailjet.com) account for SMTP sending transactional emails \n\n## I'm using Docker and Docker-Machine\n\nA docker compose file is provided with Redis and Elastic Search configuration.\n\nTo connect to your local Redis Cli, you can use this command line as an example :\n\n```docker run -it --link cfpdevoxx_redis_1:redis --rm redis sh -c 'exec redis-cli -h \"$REDIS_PORT_6379_TCP_ADDR\" -p \"$REDIS_PORT_6379_TCP_PORT\"'```\n\n## Here's what you need to configure:\n\n- Rename the run.sh.sample file to run.sh\n- Generate a string for the security of the application \n   application.secret = \"a_unique_secret_long_enough\"\n- As the application uses play.api.libs.Crypto#encryptAES, this secret MUST be at least 16 chars long.\n- Configure the SMTP server using the parameters Mailjet OR use the smtp.mock mode in DEV\n- Configure the Github part\n- Set the Google party for authentication OAuth2.0\n- Configure also LinkedIn\n- configure the Redis server. Make sure to set a very long password for your Redis server\n- configure the address of a server ElasticSearch\n\n## Where do I start?\n\nFirst things first, you need to set-up your own conference. To do so, Frederic Camblor implemented a generic\nclass that contains most (but not all) importants details. Check ConferenceDescriptor.scala. This file defines\nthe configuration of your own conference. The Schedule/Slots is not mandatory when you start to configure your application. \nHowever if you plan to use the REST API then you should also configure this part. Check for the TODO's in the file.\n\nYou can then also translate and check messages/messages.fr from the conf file\n\n## How can I create a new user?\n\nTo create an admin:\n  - Start the CFP with a local Redis server\n  - Create a new User (http://localhost:9000/home) with the Registration system\n  - If you configured smtp.mock=\"yes\" in application.conf, check the console. You should see the \"please validate your email\" message\n  - Loads and validate your user\n  - Once authenticated, retrieve your UUID from the \"Edit my Profile\" page (/cfp/profile)\n  - Load the bootstrap URL http://localhost:9000/admin/bootstrapAdminUser?uuid=[your_uuid]. Please note that if there is already an admin, this won't work.\n  \nYou can also add an existing user to the Admin group directly from Redis console :\n   \n\n## In term of Git, how can I push a new feature?\n\nThe main development branch is dev. It' an out-of-the-box ready to use conference. This is also where I try to collect all features from all contributors.\n\nI created a branch dev-france for current development regarding Devoxx France. I did the same for BE.\nI work with one feature per branch, then do local merge.\n\nWhen you want to update your local branch (for instance, dev-poland) you should :\n\n    - do a checkout of dev\n    - do a git pull --rebase on dev\n    - switch to dev-poland\n    - do a git pull --rebase from dev to dev-poland so that you keep your local updates\n\n\n## How can I save my agenda and host the program as static content to a Wordpress ?\n  \nUse WGET and download all pages from your Publisher controller. This will save speakers, talks, schedule, etc.\n\n```wget --no-clobber --convert-links -r -p -E -e robots=off http://localhost:9000/2016/index.html```\n\n## Can you help me with Redis 2.8.x ?\n\nDownloading redis...tag.gz from http://download.redis.io/releases/redis-2.8.21.tar.gz\n\nThe CFP has been tested with Redis from version 2.8.4 to 2.8.19. Always check that your version is up-to-date in term\nof security [here](https://raw.githubusercontent.com/antirez/redis/2.8/00-RELEASENOTES). I plan to upgrade and to check \nthat the CFP code is OK with Redis 3.x before Devoxx France 2016.\n\nUnpack the archive\n\n    $ make \n    $ make install\n\nCreate a custom redis configuration file. Be sure to set a very strong password. Redis is written in C and is mono-core.\nOn my super Intel i7 it runs on one Core. Thus it's ok to have multiple Redis on differents ports. \n\nHow to run the redis server with custom config file ?\n\n    $ redis-server [xxx.conf-file]\n\nNote: ensure all paths in the .conf file exists otherwise, use touch to create those files / paths\n\nHow to run the redis client ?\n\nOnce the redis-server is up and running, do the following:\n\n$ redis-cli -p 6366\n\nSome commands to remember:\n\t\n\t\u003e INFO\n\t\u003e DBSIZE\n    \u003e SYNC - helps sync remote server with local server (cluster)\n\t\u003e MONITOR\n\t\u003e SMEMBERS Webuser:admin\n\t\u003e SADD Webuser:admin [sha1]\n\t\n\t\nOnce running on a local empty Redis, you will want to have a local user with admin privileges in the application.\n\n- Create a user and activate it\n- Play log will give you the activation link if running on smtp.mock=”yes”\n- Connect to the Redis instance\n- Find the UUID of the user you want to be admin\n- The command keys Webuser:UUID* will list all known user UUIDs\n- Find which one is your soon to be admin by running get Webuser:UUID:\u003cUUID\u003e and the output gives you the email.\n- Add the UUID to admin and cfp groups using redis-cli (the redis CLI). \n\n    \u003e SADD Webuser:admin \u003cUUID\u003e \n    \u003e SADD Webuser:cfp \u003cUUID\u003e\n\nIf you want to promote an existing user to admin on your PROD server, you can also use redis-cli to connect to the remote server\nLet's say you want to add John with ID=UUID_123456 to the remote PROD redis-prod.mydomain.com that is running on port 6393. The Master \npassword on this remote server is \"my_super_password_for_prod\". \n\n    nicolas@macbook :~/Dev/DevoxxFR/2014/RedisBackup\u003e redis-cli -h redis-prod.mydomain.com -p 6393\n    redis-prod.mydomain.com:6393\u003e info\n    NOAUTH Authentication required.\n    redis-prod.mydomain.com:6393\u003e AUTH my_super_password_for_prod\n    OK\n    redis-prod.mydomain.com:6393\u003e SADD Webuser:admin UUID_123456\n    redis-prod.mydomain.com:6393\u003e SADD Webuser:cfp UUID_123456\n    ...\n\n\n- Restart the application to clear its caches (or use /admin/clearCaches if you are already an admin and connected)\n\n\n## Redis is an in-memory server... How can I be sure that I won't loose my data ?\n\t\nFirst, read the Redis documentation. I use AOF and BGSAVE on my production servers. I also use Linux Dropbox client so that I can save some dump automatically. \nI have also configured my personal computer to be a slave of all my Redis servers. This is very practical, you get a live copy of Redis on your laptop. \n\t\nSee redis-sample-dev.conf and redis-sample-prod.conf for 2 valid configuration files for Redis.\t\n\t\nJust to give you an idea and some stats for our Devoxx France 2015 Redis database :\n \n    - Number of Speakers : 946\n    - Number of Proposals : 681 \n    - Number of Reviews : 6704\n    - Redis DB Size : 8388\n    - DUMP file size : 65M\n    - AOF file size : 73M\n    - Number of lines in the AOF file : 2,344,818\n    - Memory used by Redis : 142 Mo\n\n## Where do you host your CFP for Devoxx France?\n  \nThe Devoxx France CFP is hosted on [Clever-Cloud](http://www.clever-cloud). Clever Cloud is a Platform as a Service. Git push and voilà, your code is deployed.\nRedis and ElasticSearch are on a dedicated server.\n\n## Why do you use Play 2.2.x and not the latest version?\n\nI recommend [Play 2.2.6](https://downloads.typesafe.com/play/2.2.6/play-2.2.6.zip). I have a strong experience with Play since\n2011 and Play 1.x. I did more than 20 presentations of Play! Framework since 2010. \n\nI plan to evaluate the need to migrate to Play Framework 2.4. But I'm not a super-fan with this version and with what the core developers decided to do since early 2015.\n  \n## Contributing\n\n**[Pull requests](https://github.com/git-up/GitUp/pulls) are welcome but be aware that the CFP is really focus on Devoxx conferences.**\n\nThe following is a list of absolute requirements for PRs (not following them would result in immediate rejection):\n- You MUST use space for indentation instead of tabs\n- The coding style MUST be followed exactly (default IDEA IntelliJ 14 settings)\n- Each commit MUST be a single change (e.g. adding a function or fixing a bug, but not both at once)\n- Each commit MAY respect the Commit log convention (see below)\n- The pull request MUST contain as few commits as needed\n- The pull request MUST NOT contain fixup or revert commits (flatten them beforehand using GitUp!)\n- The pull request MUST be rebased on latest `dev` when sent\n\n## \u003ca name=\"commit\"\u003e\u003c/a\u003e Git Commit Guidelines (from AngularJS source code)\n\nWe have very precise rules over how our git commit messages can be formatted.  This leads to **more readable messages** that are easy to follow when looking through the **project history**. \n\n### Commit Message Format\nEach commit message consists of a **header**, a **body** and a **footer**.  The header has a special\nformat that includes a **type**, a **scope** and a **subject**:\n\n```\n\u003ctype\u003e(\u003cscope\u003e): \u003csubject\u003e\n\u003cBLANK LINE\u003e\n\u003cbody\u003e\n\u003cBLANK LINE\u003e\n\u003cfooter\u003e\n```\n\nThe **header** is mandatory and the **scope** of the header is optional.\n\nAny line of the commit message cannot be longer 100 characters! This allows the message to be easier to read on GitHub as well as in various git tools.\n\n### Revert\nIf the commit reverts a previous commit, it should begin with `revert: `, followed by the header of the reverted commit. In the body it should say: `This reverts commit \u003chash\u003e.`, where the hash is the SHA of the commit being reverted.\n\n### Type\nMust be one of the following:\n\n* **feat**: A new feature\n* **fix**: A bug fix\n* **docs**: Documentation only changes\n* **style**: Changes that do not affect the meaning of the code (white-space, formatting, missing\n  semi-colons, etc)\n* **refactor**: A code change that neither fixes a bug nor adds a feature\n* **perf**: A code change that improves performance\n* **test**: Adding missing tests\n* **chore**: Changes to the build process or auxiliary tools and libraries such as documentation\n  generation\n\n### Scope\nThe scope could be anything specifying place of the commit change, usually related to a Play Controller. For example `admin`,\n`api`, `publisher`, etc.\n\n### Subject\nThe subject contains succinct description of the change:\n\n* use the imperative, present tense: \"change\" not \"changed\" nor \"changes\"\n* don't capitalize first letter\n* no dot (.) at the end\n\n### Body\nJust as in the **subject**, use the imperative, present tense: \"change\" not \"changed\" nor \"changes\".\nThe body should include the motivation for the change and contrast this with previous behavior.\n\n### Footer\nThe footer should contain any information about **Breaking Changes** and is also the place to\nreference GitHub issues that this commit **Closes**.\n\n**Breaking Changes** should start with the word `BREAKING CHANGE:` with a space or two newlines. The rest of the commit message is then used for this.\n\nA detailed explanation can be found in the [AngularJS Git commit documentation](https://docs.google.com/document/d/1QrDFcIiPjSLDn3EL15IJygNPiHORgU1_OOAqWjiDU5Y/edit).\n\nFrench\n------\n\nLe CFP de Devoxx France est codé en Scala, avec le framework Play 2.2.x. Les données sont persistées sur Redis 2.8.\n\nJ'ai écris cette application en prenant soin de rester simple, pragmatique et productif.\n\n## Caractéristiques et idées du nouveau CFP :\n\n- Authentification et inscription possible via OpenID (Google et Github)\n- Utilisation du format Markdown pour saisir sa proposition de sujet\n- Les photos des speakers sont tirées du site Gravatar\n- Importation du profil Google+ ou Github pour accélérer la création du profil\n- Pas de framework JS côté client sauf si cela devient une nécessité\n- Du code Scala simple et facile à lire\n\n## Installer un environnement de développement local\n\nL'installation d'un environnement de dév est simple et s'effectue en quelques étapes :\n\n- installer Play 2.2.3\n- installer Redis 2.8.4\n- configurer son serveur Redis pour être \"slave\" de la prod\n- récupérer le code source du projet CFP Devoxx France de Bitbucket\n- lancer et commencer à contribuer\n\n## Installation de Play 2.2\n\nPré-requis : Java 7 fortement conseillé pour des raisons de performances.\n\n- Téléchargez Play 2.2.3 http://downloads.typesafe.com/play/2.2.3/play-2.2.3.zip\n- Décompressez dans un répertoire, ajouter le répertoire à votre PATH\n- Placez-vous dans un nouveau répertoire et vérifiez que Play2 est bien installé avec la commande \"play\"\n\n## Installation de Redis  2.8.4\n\nPré-requis : les utilitaires make, gcc correctement installés via XCode ou brew.\n\n- Téléchargez http://download.redis.io/releases/redis-2.8.4.tar.gz\n- Décompressez, et suivez les inscrutions du fichier README, pour compiler Redis\n- Effectuez un \"make install\" en tant que root afin d'installer Redis\n\nJe déconseille de tester les installations via Brew, qui ne sont pas correctement configurées. Vous allez perdre du temps.\n\n## Configurer votre serveur Redis\n\nLorsque vous développez sur votre machine, nous allons utiliser un serveur Redis local afin de pouvoir y écrire nos données, sans perturber la production.\nCependant, un des points forts de Redis, c'est qu'il est possible de synchroniser son serveur local avec un serveur Redis distant.\nPour cela, nous allons déclarer que la prod, le serveur Redis hébergé à distance, est MASTER. Votre installation de Redis\nlocale sera donc SLAVE de ce serveur. Redis synchronise rapidement, et vous aurez donc en permanence une copie de la prod sur votre machine locale.\n\nPour cela, il faut utiliser le fichier conf/redis-devoxxfr.conf que j'ai placé dans le répertoire conf du projet Play2.\nPrenez ce fichier, copiez-le vers le répertoire par défaut de Redis, /usr/local/etc sur MacOS X.\n\nVous pouvez alors démarrer le serveur redis local avec la commande suivante :\n\n    redis-server /usr/local/etc/redis-devoxxfr.conf\n\nPour arrêter proprement le serveur, il suffit d'envoyer la commande SHUTDOWN au serveur :\n\n    redis-cli -p 6363 SHUTDOWN\n\nVous pouvez vous amuser avec votre serveur Redis en local avec l'utilitaire \"redis-cli\"\n\nCelui-ci permet d'effectuer des commandes, je vous invite à suivre le petit tutorial http://try.redis.io/ pour mieux comprendre.\n\n# Reporter un bug\n\nLe projet est hébergé sur [Bitbucket](https://bitbucket.org/nicolas_martignole/cfp-devoxx-fr)\n\n# Dependency Tree\n[![Dependencies](https://app.updateimpact.com/badge/766661207762538496/cfp-devoxx.svg?config=compile)](https://app.updateimpact.com/latest/766661207762538496/cfp-devoxx)\n\n# Installer sa propre version du CFP\n\nImaginons que vous êtes Breton et que vous souhaitiez installer ce CFP pour votre conférence :-)\n\nPour pouvoir faire tourner en production votre propre application du CFP, il est nécessaire de configurer différents éléments dans le fichier **application.conf** de Play 2.2.\n\nVoici ce qu'il vous faut\n\n- un compte [Mailjet](http://www.mailjet.fr) pour l'envoi SMTP des emails transactionnels\n- un compte [Github](http://www.github.com) pour pouvoir créer une clé API pour l'authentification OpenID. Voir [https://github.com/settings/applications](cette page)\n- créer une application via votre compte Google sur [https://cloud.google.com/console#/project](https://cloud.google.com/console#/project) . Configurez une URL pour le développement, comme http://localhost:9000/ et une URL de prod comme http://cfp.devoxx.fr/\n- un serveur Redis protégé par un mot de passe très long\n- un serveur ElasticSearch\n\nVoici ce que vous devez configurer :\n\n- Renommez le fichier **application-please-customize-me.conf** en **application.conf**\n- Générez une chaîne de caractère pour la sécurité de l'application\n\n    application.secret=\"a_unique_secret\"\n\n- Configurez le serveur SMTP en prenant les paramètres de Mailjet\n- Configurez la partie Github\n- Configurez la partie Google pour l'authentification OAuth2.0\n- Configurez enfin le serveur Redis. Prenez soin de configurer un mot de passe très long pour votre serveur Redis\n- Configurez enfin l'adresse d'un serveur ElasticSearch\n\nAu moment de la mise à jour de cette documentation, la partie Trello n'est pas encore codée.\n\n# Contributeurs\n\n- Nicolas Martignole [@nmartignole](http://www.twitter.com/nmartignole)\n- Gabriel Kastenbaum [@lambdadevfr](http://www.twitter.com/lambdadevfr)\n- Jean Helou [@jeanhelou](http://www.twitter.com/jeanhelou) pour la conférence Scala.IO\n- Frédéric Camblor [@fcamblor](http://www.twitter.com/fcamblor) pour la conférence BDX.IO\n- Nicolas de Loof [@ndeloof](http://www.twitter.com/ndeloof)\n- Stephan Janssen [@stephan007](https://www.twitter.com/stephan007) Mobile push notifications and IDEA scala warnings cleanup\n- Mani Sarkar [theNeomatrix369](http://www.twitter.com/theNeomatrix369)\n\n# Hébergement\n\nLe CFP de Devoxx France est hébergé sur la plateforme [http://www.clever-cloud.com](Clever-Cloud)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevoxx%2Fcallforpapers","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdevoxx%2Fcallforpapers","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevoxx%2Fcallforpapers/lists"}