Kiyoshi

web
Opale - Un réseau social open-source

21 messages dans ce sujet

Bon-matin, bonjour, bonsoir.
Je suis venu ici pour vous présenter mon projet (absolument aucun rapport avec Minecraft), donc n'attendons plus et affichons un superbe header.

header.png

presentation.png

Opale est un projet de réseautage social totalement libre d'accès. Un réseautage social qu'est-ce que c'est? C'est très simple: c'est un outil de création de réseaux sociaux. Des exemples de réseautages sociaux, il y en a plein; les plus connus sont Facebook, Twitter, Google+, YouTube, Snapchat, Skype, Telegram, Myspace, Windows Live Messenger,... Bref ce sont des applications qui permettent de donner une interface de communication à diverses communautés. Chacune a sa particularité la rendant utile. Par exemple, Facebook sert de journal interactif permettant à des amis ou de la famille de communiquer. Twitter, lui permet d'avoir un flux d'informations constant et rapide surfant sur l'actualité.
Opale veut permettre à des gens de rassembler facilement des communautés, et solidifier ces communautés et ce de façon totalement gratuite. 

concept.png

A l'inscription, l'humain doit faire un test qui lui définira une couleur: cette couleur est sa couleur primaire, elle correspond normalement à un type de personnalité. Il choisit ensuite une couleur secondaire, sa couleur préférée. L'interface aura cette belle couleur. Ces deux couleurs forment une opale, qui permet normalement d'identifier une personne. Pour les chaînes et les groupes, la couleur primaire sera l'ajout de toutes les couleurs des membres et la couleur secondaire correspondra à un thème choisi pour former cette communauté. Voilà pour les opales.
Il sera possible de rejoindre un groupe ou un chaîne; la différence entre les deux est la place de la communauté dans la vie de l'entité. En effet, pour une chaîne, les messages seront postés par des administrateurs de la chaîne, tandis que pour le groupe, tout le monde peut participer.

 

philosophie.png

Opale est un projet avec des principes éthiques très importants quant à la continuité du fonctionnement du réseautage:
- L'utilisateur garde le contrôle sur ses données: ainsi, toutes les données le concernant forment une entité propre, de sa propriété intellectuelle.
- L'utilisateur a un droit d'accès, de suppression ou de rectification complet de ses données.
- Opale ne peut restreindre des fonctionnalités utilitaires de façon payante

- La publicité gratuite aura une grande importance sur la plateforme.
- S'il le souhaite, l'utilisateur peut reprendre et rectifier le réseautage de façon locale, et peut proposer des modifications du code d'Opale.


Pourquoi ces choix assez complexes à mettre en place? Tout simplement parce que ça me paraît normal d'avoir le contrôle sur son existence numérique; on fait trop souvent face à des organisations qui font absolument ce qu'elles veulent de nos données. On peut citer Microsoft qui récupère toutes nos données avec Windows 10, ou encore Facebook qui stocke des données très très sensibles quant à nos existences, et ce sans qu'on connaisse réellement ces données. Bref c'est anormal et Opale veut faire face à ce genre de problèmes éthiques.

financement.png

Pour fonctionner, Opale utilisera un modèle économique basé sur les dons; ainsi, chacun peut donner ce qu'il veut pour contribuer au fonctionnement du système, à la manière de Wikipedia. Ce modèle s'appuie sur les personnes qui feront des dons, mais s'il ne fonctionne pas rien n'empêche l'utilisation d'un autre modèle, ajoutant des petits avantages cosmétiques.

fonctionnement.png

Opale est porté comme une application web, et utilise le combo JS/HTML/CSS pour la partie client. Server-side, Node.JS + Meteor, pour des fonctionnalités à jour, sécurisées et dans l'air du temps . Pour le stockage des données, il sera utilisé MongoDB, et MySQL pour la base d'index (annuaire). Voyons comment cela fonctionne précisément.
Le système se divise en trois parties bien distinctes:
- La première, c'est le front. Cette partie est celle qui interagit avec l'utilisateur, par le biais d'une interface et de l'organisation des données stockées. Elle lance des requêtes à l'annuaire et à l'encyclopédie et rassemble tout ce qui est nécessaire. Cette partie est la plus complexe, puisqu'elle fait l'identité et les fonctionnalités d'Opale.
- La seconde est l'annuaire. L'annuaire est l'index de toutes les personnes/groupes/entités inscrites sur Opale, celui-ci permet donc d'avoir une liste d'éléments trouvables lorsque l'on fait une recherche. Egalement, il permet de localiser l'emplacement du document formant les données de l'entité recherchée: ainsi, il pourrait être possible plus tard de modifier l'emplacement des données d'un groupe ou d'une personne.
- La troisième partie est la bibliothèque. Cette partie est celle qui stocke les données de chaque entité dans des documents.

J'ai évoqué plus haut des "entités". Mais qu'est-ce qu'une entité ici? C'est tout simplement une existence liée à un humain ou un groupe d'humains.
Pour en savoir plus sur les types d'entités, j'ai fait une petite page à cette adresse.
Voilà, en gros le fonctionnement global d'Opale.
Voici un schéma résumant les interactions entre les trois parties.
*Va faire ce schéma espèce de bleh*

recrutement.png

Ce projet est complexe à mettre en place, et j'aurais besoin de développeurs motivés pour participer sur le projet.
Si vous êtes intéressé et que vous maîtrisez le Javascript, n'hésitez pas à me contacter:
- Par Telegram (je suis très présent), @Donokami
- Par e-mail (donokami896[wow]gmail.com)
- Via Facebook (donokami.666)
- Par Skype (kiyoshi896), mais bof bof
- Ou tout simplement sur ce topic, en donnant vos moyens de contact c:

Voilà pour ce topic, je rajouterai des infos au fur et à mesure c:
Si vous avez des questions, n'hésitez pas à les poser ! c;
A plus !

5

Partager ce message


Lien à poster
Partager sur d’autres sites

Je suis le projet de très près ça ma l'air super intéressant !

0

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci, je n'hésiterai pas à donner des nouvelles du projet dès qu'il y aura de l'avancement c:

0

Partager ce message


Lien à poster
Partager sur d’autres sites

Très bon concept et très bonne idée.
J’apprécie particulièrement la partie à propos du contrôle des données.

Sinon, utilisez/utiliserez-vous un framework ou quelque chose ?

0

Partager ce message


Lien à poster
Partager sur d’autres sites

Concernant les frameworks, je sais pas trop.
J'attends de trouver au moins un développeur pour pouvoir se poser cette question qui est tout à fait intéressante ! c:

0

Partager ce message


Lien à poster
Partager sur d’autres sites

Je trouve ce concept intéressant.

Il y a du potentiel (vraiment), et je pense que j'y contribuerai si il n'était pas codé en PHP. La plupart des grosses boîtes et des services sérieux en reviennent un peu, parce que même si le langage s'améliore, il traîne des lacunes dues au manque de standardisation qui n'a été comblé que très récemment.

En utilisant un framework, pourquoi pas, mais je pense sincèrement qu'un langage aussi unsafe que PHP n'est pas (plus?) une bonne idée pour un réseau social qui stockera - entre autres - des données privées.

Pour finir, as-tu déjà entendu parler de diaspora? C'est un réseau social libre et décentralisé, qui solutionne de manière très efficace le problème de la confiance dans le prestataire: le réseau n'est pas une entité monolithique, mais un ensemble constitué d'un grand nombre de serveurs qui échangent les informations entre eux.

Opale optera t-il pour la décentralisation ou n'existera t'il qu'un serveur/parc de serveurs possédé par une seule et même personne, au commande du projet _et_ des données?

0

Partager ce message


Lien à poster
Partager sur d’autres sites

Yep, je sais, on m'a fait plusieurs fois la remarque.
Je voudrais bien bosser en Javascript, avec Meteor par exemple qui semble vraiment adapté pour ce genre de projets, mais je ne suis personnellement pas du tout à l'aise avec le Javascript (hélas).
Du coup, je fait face à un dilemme: Utiliser un langage plein d'avenir et avec des capacités très importantes, mais que je ne maîtrise absolument pas, ou alors bosser avec un langage où tout est à faire pour optimiser, mais avec un contrôle total sur ce qu'on fait?
Honnêtement, je ne sais pas trop; mais je me dit que bosser avec un langage maîtrisé et relativement puissant permettrait de faire des trucs sympas.
Si d'autres personnes ont leur avis là dessus, n'hésitez pas à participer au débat !

 

Il y a 11 heures , super_paschat said:

Pour finir, as-tu déjà entendu parler de diaspora? C'est un réseau social libre et décentralisé, qui solutionne de manière très efficace le problème de la confiance dans le prestataire: le réseau n'est pas une entité monolithique, mais un ensemble constitué d'un grand nombre de serveurs qui échangent les informations entre eux.

Yep ! C'est un projet vraiment sympa, mais vraiment peu ergonomique, et c'est bien dommage. Opale et Diaspora* sont fondamentalement différents; l'un se veut complètement connecté (Opale) et permet de faire partie de plusieurs communautés en même temps, tandis que l'autre retranche les utilisateurs sur le système de pods; les utilisateurs se retrouvent au final déconnectés les uns les autres, retranchés sur leur pod.
Opale permet une centralisation comme un décentralisation des données, elles seront tout de même indexées pour que tout le monde puisse pouvoir se connecter, sans limite.
Toutefois, rien n'empêche la non-indexation et la création de réseaux totalement indépendants, c'est une liberté permise grâce à Opale.

 

 

Il y a 12 heures , super_paschat said:

Opale optera t-il pour la décentralisation ou n'existera t'il qu'un serveur/parc de serveurs possédé par une seule et même personne, au commande du projet _et_ des données?

Opale mettra à la disposition des utilisateurs des serveurs officiels, nous appartenant. Du coup, ce sera officiellement centralisé, tout en laissant la liberté aux utilisateurs de stocker leurs données sur leur propre plateforme back. Toutefois, si y'a des soucis économiques, je pense que le réseau sera retranché officiellement en version décentralisée, à voir. Donc nan, on optera pas pour la décentralisation, mais nous la permettrons au sein du réseau, car les gens doivent pouvoir choisir où se situent leur données.

 

 

Il y a 11 heures , Ourten said:

Je viens appuyer la remarque sur le php, c'est clairement pas un choix en vogue pour des gros sites.

https://en.wikipedia.org/wiki/Programming_languages_used_in_most_popular_websites

Yep c'est sûr, mais bon des grosses plateformes fonctionnent bien avec PHP, même si celles-ci sont vielles.

0

Partager ce message


Lien à poster
Partager sur d’autres sites

Sa a l'air vraiment sympa, je suis le sujet pour voir ce que sa va donner.

Bonne chance ! :p

0

Partager ce message


Lien à poster
Partager sur d’autres sites

PHP est très utilisé malgré la présence d'autres langages de programmation. Facebook a même utilisé PHP et Hacklang (ressemble bcp au php) afin de faire HHVM.

En quoi PHP serait Unsafe ?

Concernant NodeJS, je pense pas que ce soit une réelle bonne idée mais après, chacun ses goûts.

 

0

Partager ce message


Lien à poster
Partager sur d’autres sites
il y a 5 minutes, Vavaballz said:

PHP est très utilisé malgré la présence d'autres langages de programmation. Facebook a même utilisé PHP et Hacklang (ressemble bcp au php) afin de faire HHVM.

En quoi PHP serait Unsafe ?

Concernant NodeJS, je pense pas que ce soit une réelle bonne idée mais après, chacun ses goûts.

 

Concernant NodeJS, je te propose d'argumenter (simple curiosité, je reste loin du JS autant que possible).

PHP est unsafe à cause de son transtypage implicite. Cela nécessite de très bien tester son code, car des comportements émergents peuvent apparaître dans les cas où un type de donnée ressemble à un autre. L'interpréteur décide parfois de transtyper, parce que… ben parce que.

Ensuite, il y a le manque de standardisation, qui fait qu'il faut rester très à jour sur les évolutions du moment, car des changements qui cassent la rétrocompatibilité vont commencer à faire leur apparition (cf les fonctions explode et split qui faisaient la même chose, mais différemment).

Pour finir, l'argument de Facebook ne tient pas: ils avaient tellement de problèmes de typage qu'ils ont créé hack, qui compile vers PHP (leurs code monkeys n'écrivent jamais du PHP directement, ils profitent de la simplicité d'installation de PHP sans subir les problèmes de maintenabilité qu'il pose).

0

Partager ce message


Lien à poster
Partager sur d’autres sites

Je veux pas remettre de l'eau sur le feu, mais les aficionados du php sont quand même très marrants "très utilisé", vous avez vu le tableau dans le lien que j'ai envoyé ? C'est le java qui est très utilisé en backend surement pas le php.

Oui eux ce sont des gros sites, tout ça, tout ça, mais en attendant leurs choix de tech valent quelque chose de part leur taille et leur traffic immense.

1

Partager ce message


Lien à poster
Partager sur d’autres sites

Oui mais comme tu l'as toi même dis, c'est pour de "très gros sites". Même si beaucoup utilisent des technologies comme du Ruby, du Java ou même du Python, le PHP reste un langage web. Beaucoup d’hébergeurs proposent des hébergements n'ayant QUE php. Plus, PHP 7 change beaucoup de choses, surtout dans le typage de variables.
Opale n'est pas, du moins pour le moment, un "très gros site" donc je ne pense pas que ce soit une bonne idée, après, c'est leurs choix. Après, ce n'est qu'un avis personnel mais là n'est pas le sujet.
PS: Vous naviguez sur un forum IPB -> PHP. 

PS 2: C'est pas avec une liste de 10 sites que tu vas pouvoir prouver que Java > machin ou machin > *, même si les autres langages se valent.
(Je me prépare au haters qui diront que je ne suis qu'une merde à penser cela mais ràf)

Il y a 2 heures , super_paschat said:

Concernant NodeJS, je te propose d'argumenter (simple curiosité, je reste loin du JS autant que possible).

Je ne peux pas, je ne me suis pas préparé é_è. (Ce ne sont que des raisons personnelles, rien de très valable aux yeux des autres)

0

Partager ce message


Lien à poster
Partager sur d’autres sites

Alors, tu as raison sur ce point, PHP 7 est un bon début d'amélioration. Il ne représente pas seulement un gain de performance.

Ensuite, le tableau sur wikipédia démontre d'une chose: la maintenabilité permise par le langage. Si des grosses équipes travaillant pour d'énormes entreprises ne peuvent pas maintenir ensemble un projet en PHP, il y a fort à parier que ce sera pire pour un projet libre qui recherche des contributeurs.

Oui, on trouve de l'hébergement PHP partout: c'est conjoncturel, PHP a effectivement été fait pour un environnement web, c'est à ce titre qu'il a été usé jusqu'à la corde partout et pour tout depuis qu'il est devenu populaire. En revanche, les gens en reviennent de plus en plus, et des solutions comme uWSGI standardisent les échanges entre un serveur web et un langage (qu'il s'agisse de python, perl ou même PHP).

Se dire que «Opale ne sera pas un gros site», c'est non seulement présumer de son succès (même si je pense comme toi), mais également laisser entendre que si il devient grand par la suite, il faudra rester coller au choix initial qu'est PHP car le succès et le besoin de scalabilité feront qu'il ne sera pas possible de tout ré-écrire dans un autre langage.

De toutes façons, cette décision revient au mainteneur du projet, qui reste, à l'heure actuelle, à trouver.

0

Partager ce message


Lien à poster
Partager sur d’autres sites

Bon, pour m'aider à faire ce choix, j'ai rajouté un sondage, vous n'avez qu'à participer pour trancher c:

0

Partager ce message


Lien à poster
Partager sur d’autres sites

C'est meteor tout court hein, pas besoin d'utiliser nodejs hein, il s'en charge lui-même :)

0

Partager ce message


Lien à poster
Partager sur d’autres sites
Il y a 10 heures , Technowix said:

C'est meteor tout court hein, pas besoin d'utiliser nodejs hein, il s'en charge lui-même :)

Meteor est un framework basé sur NodeJS, je me devais de préciser pour ceux qui ne connaissent pas ^^

1

Partager ce message


Lien à poster
Partager sur d’autres sites

Bon, vu les résultats du sondage et après mûre réflexion, tout sera en Javascript, avec l'utilisation de Node.JS et de Meteor !
Du coup, si vous maîtrisez le Javascript et que vous êtes intéressé, n'hésitez pas à me contacter.

0

Partager ce message


Lien à poster
Partager sur d’autres sites

J'annonce l'arrivée de Revax16 (Xavier) sur le projet, en tant que Développeur Javascript !
Si vous aussi souhaitez rejoindre le projet activement, n'hésitez surtout pas à me contacter.
Sinon, je tiens à vous informer qu'une description complète du fonctionnement d'Opale devrait arriver dans la semaine, alors soyez prêts !

0

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !


Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.


Connectez-vous maintenant