Bonjour,
Je suis Joël, développeur de 22 ans, diplômé d'une licence d'informatique Conception et Développement en Environnement Distribué. On me retrouve le plus souvent sur le Web sous mon pseudo de Developpez.com : Voca Tinityl. Je vis actuellement en région Lyonnaise, mais suis originaire d'Alsace.

Au cours de mes études, j'ai toujours été plus attiré par les technologies liées au Web (J2EE, Ajax, PHP...) et j'ai par la suite continué de me renseigner sur les nouvelles technologies montantes, aussi bien côté client que côté serveur. Aussi, il ne m'a pas fallu longtemps pour tomber sur des articles traitant notamment de NodeJS, MongoDB ou AngularJS.
C'est donc sur ces technologies, liées à Javascript, que sont basées mes réalisations récentes.

C'est ainsi que je me suis lancé, il y quelques mois maintenant, dans un projet que je souhaitais mûr et abouti. Et je viens donc vers vous, après la rédaction d'une grande partie des spécifications de l'application, et au moment que j'estime le plus propice pour me lancer de plein pied dans le projet, afin de trouver des équipiers/collègues qui seraient prêts à se lancer dans cette aventure en ma compagnie.

En savoir plus sur le projet

Genèse

Au départ, le projet BrouK était un projet de rédaction d'actualités et de billets d'humeur sur les jeux vidéos. Je voulais laisser la parole aux joueurs, quelques soient leur niveau de jeu et leur vision des choses, sans que ceux-ci ne soient contraints par leur appartenance à une structure ou par un contrat.
Très vite, je me suis rendu compte que je souhaitai en faire quelque chose de plus grand. Même si le coeur du site restait sur les mêmes bases, je souhaitai créer une communauté gravitant autour de ce noyau dur rassemblant les acteurs du site, qu'ils soient administrateurs, modérateurs ou simples lecteurs. Cette communauté pourrait prendre plusieurs aspects :
  • Serveurs de jeux
  • Equipes de jeux
  • Salons de discussion en direct
  • ...

Mais avant d'en arriver là, il faut en revenir aux bases de ce que serait la communauté, et c'est ce qui vous est décrit dans la partie suivante.

Ma principale motivation dans le développement du projet BrouK est de fonder une communauté gaming. De plus, il s'agit en quelques sortes mon bébé, je l'ai vu naître, je le fais grandir et prendre de l'ampleur chaque jour par de nouvelles idées, de nouvelles orientations technologiques ou de nouvelles décisions. C'est également la raison pour laquelle je souhaite que ce site voit le jour.
Ensuite, je souhaite m'entourer d'une équipe de développement pérenne, que ce soit pour les développements, maintenances ou évolutions des projets que je vais décrire, ou pour l'élaboration de nouveaux projets. J'aimerai que les personnes qui m'accompagnent dans le développement du projet, le fasse évoluer avec moi et y prenne autant de plaisir que moi.

Généralités

Compte tenu du nombre d'idées que j'ai eu et du fait que je souhaite, dans un premier temps, me concentrer sur l'essentiel, je vais découper la suite en 3 sous-projets.
Ils sont étroitement liés, voire imbriqués, mais ne correspondent pas exactement aux même profils de développement.

BrouK

C'est le projet principal, le coeur de la communauté, l'élément autour duquel tout le monde se rassemble.

Un petite précision est nécessaire avant la suite de la lecture : la description du projet BrouK est volontairement simplifiée afin de faciliter la lecture. Vous pourrez donc avoir un aperçu des grandes lignes du projet sans trop de détails techniques.

Présentation

Il s'agit donc d'un site Web de rédaction et de lecture d'articles, d'actualités et de billets d'humeur sur les jeux vidéos. Le volonté essentielle est de laisser la plus grande liberté aux rédacteurs dans leurs propos tout en évitant les dérapages (propos injurieux, racistes, etc.). Ainsi, tous les articles publiés sont préalablement validés par une équipe de modérateurs.
Toujours dans le but du plus grand respect de chacun, nous nous tournons vers les utilisateurs du site qui ont la possibilité d'émettre des rapports concernant les utilisateurs, les articles ou les commentaires d'articles. Ces rapports sont également étudiés par une équipe de modérateurs.

Dans une démarche d'amélioration continue du site et de meilleure expérience utilisateur, on leur donne l'occasion de proposer des améliorations au site par le biais de tickets d'améliorations.

Articles

Les articles sont gérés comme des livres : il s'agit d'un ensemble de pages ayant un sujet commun.
Les articles traitent d'un jeu et sont attachés à des tags. Ceux-ci permettent d'effectuer des recherches avancées les concernant.

Les pages sont rédigées par des équipes de rédaction comprenant au moins un membre : le créateur de l'équipe. Il sera accompagné d'autres rédacteurs qu'il choisira sur candidature.

Utilisateurs

Le site regroupe des utilisateurs possédant plusieurs niveaux d'accréditation appelés "rôles". Quoiqu'il arrive un utilisateur doit être connecté, aussi bien pour s'occuper de son compte que pour lire un article. Les utilisateurs peuvent avoir plusieurs rôles parmi les suivants :
  • Utilisateur de base
    Tous les utilisateurs du site possèdent le rôle "Utilisateur de base".
  • Rédacteur
    Les rédacteurs sont les principaux moteurs du site. Ils sont regroupés dans des équipes de rédaction afin de proposer le meilleur contenu possible. Un utilisateur peut être seul dans son équipe de rédaction, toutefois, il est conseillé d'être à plusieurs afin de produire des articles à la fois intéressants, fiables et agréables à lire.
  • Modérateur des utilisateurs
    Il s'agit des utilisateurs qui veillent au bon comportement des membres de la communauté ainsi qu'à la bienséance de ceux-ci.
    En cas d'infraction aux règles de la vie en communauté, ils peuvent bannir les utilisateurs du site pour une durée variable.
  • Modérateur des articles
    Ce sont les utilisateurs qui s'occupent de la validation des pages d'articles soumises par les équipes de rédaction. Ils vérifient que le contenu des pages soit lisible, cohérent et qu'il ne contienne aucun propos déplacé. Ils font également attention aux informations attachées à l'article : icône, jeu, tags, ...
  • Administrateur
    Les administrateurs attribuent des rôles aux autres utilisateurs, ajoutent du contenu nécessaire à la rédactions d'articles (jeux, tags, ...) et suivent l'activité de la communauté au travers de graphiques et de tableaux contenant des statistiques générales (nombre d'articles publiés, nombre d'utilisateurs connectés la semaine/le mois passé(e), ...).
    Ils rédigent également des news pour les utilisateurs afin de les informer de changements ou d'évolutions concernant la communauté.

Divers

La page d'accueil du site contient principalement des liens vers tous les articles. Chacun est représenté par une tuile au sein d'une mosaïque.
L'aspect de la page d'accueil évolue en fonction des préférences des utilisateurs. En effet, ces derniers ayant la possibilités d'indiquer leurs jeux favoris et de suivre des équipes de rédaction, les tuiles de la mosaïque ont une taille adaptée à ces critères.

BrouK se dote d'un système de notifications permettant de prévenir l'utitlisateur de certains événements, notamment quand celui-ci attend un retour sur une action de longue durée (publication d'une page, nomination à un rôle, ...).

BrouK possède également un système de mise en relation de joueurs au sein d'équipes. Chaque utilisateur sera en mesure de créer ou de rechercher une équipe en fonction des jeux auxquels il souhaite jouer et de son niveau de jeu.

Avancement

Le projet BrouK en est à ses prémices :
  • La documentation fonctionnelle est quasiment complète
  • La documentation technique est en cours de rédaction
  • Le visuel des pages est en grande partie pensé et acté, mais la charte graphique reste à définir

Concernant les aspects techniques, aucun code n'a encore été rédigé et la base de données est prête à être mise en place

Objectifs et évolutions

Dans un premier temps, il s'agit de développer l'application décrite de manière à ce qu'elle soit stable et fonctionnelle ainsi que de former une communauté autour de l'application.

Par la suite un certain nombre d'objectifs secondaires ont été fixés dans l'ordre qui suit :
  1. Création d'un journal envoyé chaque semaine aux utilisateurs le souhaitant et comportant les articles publiés les plus lus et les plus susceptibles de les intéresser
  2. Mise en place de serveurs vocaux pour les équipes créées au sein de la communauté
  3. Mise en place de serveur de jeux (Minecraft, Trackmania, ...) pour les membres de la communauté
  4. ...

BrouK Editor

Présentation

Il s'agit de l'éditeur de texte utilisé dans BrouK. Après avoir cherché pendant un certain temps un éditeur Html "What You See Is What You Get" (abrégé plus loin WYSIWYG) gratuit intégrable à l'application comprenant des fonctionnalités avancées, notamment la possibilité d'insérer des graphiques, je me suis aperçu que l'objet de mes recherches n'existait tout simplement pas.
De ce fait, je me suis dit que le plus simple était de le développer par mes propres moyens.

L'objectif principal est de réaliser un éditeur modulaire. Pour moi, cela veut dire que la réalisation finale ne doit pas dépendre de l'environnement dans lequel on l'intègre, mais qu'elle doit répondre aux exigences du développeur qui s'en sert. Cette adaptation, aussi bien en termes de fonctionnalités que d'interfaces, devra passer par une phase de configuration de l'éditeur.

Le projet BrouK Editor devra comporter tous les élément essentiels d'un éditeur Html WYSIWYG, à savoir :
  • Mise en forme du texte : gras, italique, souligné, barré...
  • Colorisation du texte et du fond
  • Modification de la taille du texte
  • Alignement du texte : à droite, à gauche, centré ou justifié
  • Insertion des citations
  • Ajout de liens vers d'autre page web
  • Insertion de tableaux, d'images, de citations et de graphiques

Technologies

Le projet BrouK Editor sera réalisé entièrement via AngularJS et JQuery.
Les graphiques seront gérés via Angular-chart.

Avancement

Les spécifications fonctionnelles et techniques sont rédigées et le projet est prêt à être lancé.
Un visuel très simple a été imaginé et intégré aux spécifications
Aucun code n'a pour le moment été écrit.

Objectifs et évolutions

L'objectif premier est, comme énoncé plus haut, de créer un éditeur WYSIWYG possédant des fonctionnalités avancées, notamment la gestion des graphiques.

Dans un second temps, quelques évolutions sont envisagées, surtout :
La gestion du drag-and-drop pour l'ajout d'images
L'édition multiple simultanée : cela passera probablement par une refonte profonde du projet puisque cela nécessitera l'utilisation d'un serveur

ThoughtForChat

Présentation

Tout comme pour BrouK Editor, ThoughtForChat a été imaginé pour répondre à un besoin du projet BrouK : celui d'avoir un système de discussion instantanée au sein même du site.

Le concept n'est pas novateur et d'autres développeurs ont déjà réalisé ce genre de projet avec brio. Toutefois, ThoughtForChat a principalement été pensé pour permettre à des développeurs de se pencher sur un aspect de programmation Web très peu abordé (du moins d'après mon expérience) : le temps réel. Il s'agit donc plus, d'après moi, d'un projet d'apprentissage d'une technologie que d'un projet destiné à un expert.

ThoughtForChat verra le jour en contenant :
  • Un système de salons. Celui-ci sera basé sur une table en base de données permettant d'ouvrir ou de fermer des salons et surtout de maintenir des salons ouverts quand plus personne ne se trouve dedans.
  • Une gestion des émoticônes
  • Un système d'exclusion et de bannissement des utilisateur des salons

Afin de veiller sur les salons de discussions, un système de modération est mis en place. Les modérateurs du chat peuvent à tout moment exclure un utilisateur du chat (le force à quitter le chat), ou le bannir pour une durée spécifique.

Précisons que, dans le cas de BrouK, en plus des salons de discussion créés par les administrateurs du chat, un salon est ajouté pour chaque équipe de rédaction et équipe de jeu créée.

Il est important de noter que le contenu des discussions n'est pas enregistré.

Technologies

Pour répondre à la contrainte de temps réel de la meilleure des façons et afin de coller aux spécifications du projet BrouK, la partie serveur de l'application sera rédigée en Javascript en utilisant NodeJS et plus particulièrement SocketIO.
La partie client utilisera bien évidemment HTML5 et s'appuiera sur AngularJS.

Avancement

Les spécifications sont sur le point d'être terminées et aucun code n'a pour le moment été rédigé.

Objectifs et évolutions

L'objectif principal de l'application est d'être stable et pérenne.
De plus, très peu d'évolutions sont envisagées pour le moment.

Projet et originalité

Vous l'aurez sans doute compris, il s'agit d'un projet de relativement grande envergure, autant du point de vue des objectifs visés que de celui du développement.
Le thème des articles concernant les jeux vidéos est commun de nos jours. C'est un domaine en expansion et les jeux vidéos prennent une ampleur conséquente, il paraît donc normal de voir fleurir une myriade de sites en parlant. Toutefois, je pense que le petit plus de BrouK réside dans la volonté de laisser une certaine liberté aux rédacteurs et de permettre à un grand nombre de rédiger ce qu'il souhaite (sous couvert de validation) pour le partager à la communauté.

En ce qui concerne BrouK Editor et ThoughtForChat, ils sont des supports nécessaires au fonctionnement de BrouK.

Outils

Dans le cadre de développements en JavaScript, j'utilise habituellement l'éditeur de texte Brackets d'Adobe. Celui-ci est entièrement gratuit et possède un grand nombre d'extensions réalisées par la communauté.
J'utilise d'ailleurs l'extension Theseus qui permet de débugger le JavaScript.

N'ayant aucune compétence en dessin, je ne possède ni n'utilise aucun logiciel le concernant. De ce fait, je suis ouvert à toute proposition de logiciel que ce soit pour la production d'images et de logos ou pour la création de maquettes.

Du point de vue de la communication, un serveur Teamspeak sera mis à disposition afin de pouvoir discuter du projet ou d'autres choses.

Nous utiliserons un dépôt Git basé sur un serveur dédié pour la gestion des codes sources et Google Doc pour la gestion des documents de spécifications et les schémas d'application.

Concernant la phase de test, une solutions temporaire consiste en un modèle de documents Word sera mis en place pour l'émission de tickets de bugs et un document Google Doc sera créé pour établir un suivi.

Organisation

Un des objectifs de ce post étant de créer une équipe de développement fiable et stable, je pense qu'un élément important est la participation : tous les membres ont des points de vue différents, et peuvent faire des propositions. Toutes les propositions doivent être entendues, défendues, débattues poliement et examinées.
De plus, afin de bien s'accorder sur le projet, de faire un point sur les réalisations et d'acter les difficultés de chacun, une réunion hebdomadaire sera organisée avec l'ensemble des développeurs des trois projets.
Enfin, il sera possible, au travers du serveur de discussion évoqué précédemment, de communiquer à n'importe quel moment avec n'importe quel membre de l'équipe afin de répondre à des interrogations et de valider certaines prises de décisions à plusieurs.

Recrutement

Passons à présent à la description des profils que je recherche.

Le plus important pour moi, et j'insisterai là dessus, c'est le côté humain : la communication et le savoir vivre en groupe sont essentiels dans le déroulement d'un projet. Il est donc nécessaire de préciser que je cherche des personnes motivées et respectueuses aussi bien de leurs collègues/équipiers que de leurs idées. La bonne entente dans une équipe est un élément moteur d'un projet et les comportements sont mes principaux points de jugement.
Je tiens également à revenir sur le fait que ces projets sont sur le long terme. Envoyez votre candidature uniquement si vous vous sentez capables de vous engagez pour une longue durée. C'est important car cela permettra au projet et à l'équipe de perdurer.

Les profils transverses sont les bienvenus.

BrouK

Dans le cas de BrouK, je recherche les profils suivants :
  • [0/2] Développeurs Serveur qui devront avoir les compétences suivantes :
    • Connaissance de NodeJS et du framework ExpressJS
    • Connaissance de MongoDB et de l'ODM Mongoose
  • [0/1] Développeur Client qui devra avoir les compétences suivantes :
    • Connaissance des standards HTML5. Des connaissances concernant des templates de vues sont un plus
    • Connaissance de JQuery
    • Bonne connaissance d'AngularJS
    • Bases de CSS3
  • [0/1] Web Designer dédié à ce projet. Il devra posséder les compétences suivantes :
    • De bonnes bases de maquettage de sites
    • Connaissance des standards HTML5. Des connaissances concernant des templates de vues sont un plus
    • Connaissance de CSS3 et en Responsive Design (Bootstrap, Zurb Foundation, ...)
    • La veille technologique sur les derniers types de design à la mode est un plus
  • [0/1] Community Manager qui sera chargé de faire connaître le site au travers des réseaux sociaux. Il sera l'image des équipes de développement depuis l'extérieur et devra de ce fait :
    • Posséder une expérience dans le domaine
    • Ecrire dans un français parfait
    • Avoir un comportement irréprochable
    • Être capable de préparer des campagnes de "propagande" afin d'augmenter la visibilité du site

    Ce recrutement peut ne pas être immédiat
  • [0/1] Reponsable marketing et référencement qui s'occupera de construire des business plan et d'imaginer des manières de faire rentrer de l'argent. Il s'occupera également de la visibilité du site sur les principaux moteurs de recherche.
    Cette personne devra avoir une expérience dans le domaine du web marketing.
    Ce recrutement peut ne pas être immédiat

BrouK Editor

Pour le projet BrouK Editor, je recherche :
  • [0/2] Développeurs Client possédant les compétences suivantes :
    • Connaissance des standards HTML5
    • Connaissance de JQuery et bonne maîtrise d'AngularJS
    • Bases de CSS3

ThoughtForChat

Dans le cas de ThoughtForChat, je recherche une personne correspondant au profil suivant :
  • [0/1] Développeur polyvalent, capable de développer la partie client et la partie serveur, et possédant les compétences suivantes :
    • Connaissance des standards HTML5
    • Connaissance de JQuery et bonnes connaissances d'AngularJS
    • Connaissance de NodeJS et d'ExpressJS. Une vague connaissance de SocketIO peut s'avérer utile, mais n'est pas nécessaire
    • Bases de CSS3

Globalement

Pour compléter l'équipe, je recherche les profils suivants :
  • [0/1] Web Designer s'occupant principalement de BrouK Editor et de ThoughtForChat et pouvant être amener à apporter son aide et ses conseils dans le projet BrouK. Il devra avoir les compétences suivantes :
    • Connaissance des standards HTML5. Des connaissances concernant des templates de vues sont un plus
    • Connaissance de CSS3 et en Responsive Design (Bootstrap, Zurb Foundation, ...)
    • La veille technologique sur les derniers types de design à la mode est un plus
  • [0/1] Graphiste chargé de réaliser des logos, icônes et images de fond. Il officiera dans l'ensemble des projets et devra :
    • Maîtriser un outil de conception graphique (Photoshop, Illustrator, Gimp, ...)
    • Répondre rapidement aux besoins
    • Ordonner les tâches qu'on lui incombe
  • [0/1] Responsable des tests qui, comme son nom l'indique, s'occupera uniquement de la phase de tests. Celui-ci devra posséder les compétences suivantes :
    • Savoir rédiger et mettre en place des plans de tests
    • Savoir rédiger des tests unitaires
    • Connaissance de Grunt pour l'automatisation des tests
    • Un système de tickets de bug et de suivi des tickets sera mis en place.
    • Le responsable des tests devra également être apte à travailler de paire avec les développeurs dans le cadre de la résolution des bugs.

Pour ma part, je superviserai et coordonnerai les différents projets et développeurs. Je serai également disponible pour répondre à toutes les questions et demandes des collaborateurs.
Je prendrai également part aux développements et plus particulièrement à celui du projet BrouK et rédigerai les différents documents nécessaires à l'avancement des projets.

Conclusion

Je termine en évoquant un aspect qui peut s'avérer important pour certains : la rémunération.

Pour le moment, souhaitant laisser l'accès à BrouK entièrement gratuit, aucune participation n'est demandée aux utilisateurs. De plus, aucune publicité n'est pour le moment prévue.
Toutefois, je ne suis pas hermétique aux propositions. Si l'expérience utilisateur ne s'en retrouve que faiblement impactée, il n'est pas exclu que je change de point de vue à ce sujet.

Concernant BrouK Editor et ThoughtForChat l'objectif étant la modularité et de permettre de les mettre à disposition, il serait possible de faire payer l'accès aux applications. Mais encore une fois, ce sujet a été survolé pendant les rédactions des spécifications et reste entièrement à traiter.

Pour ces raisons, aucune rémunération n'est à envisager dans un premier temps, toutefois, cela est susceptible de changer.

Si vous vous reconnaissez dans un des profils et que vous souhaitez vous joindre à moi, n'hésitez pas à me contacter par mail à l'adresse joel.traband@gmail.com ou à m'ajouter sur Skype : naemesis675.
De plus, si vous avez des questions, ou si vous souhaitez des précisions sur certains éléments, laissez un message ici et je vous répondrai avec plaisir.

Quelque soit le moyen de contact choisi, n'hésitez pas à vous présenter rapidement et à préciser quel projet vous intéresse.