Partage
  • Partager sur Facebook
  • Partager sur Twitter

[C++] Nex - gestionnaire de données universel

Navigateur et gestionnaire de ressources évolutif (compatible web)

    22 avril 2013 à 16:48:31

    Bonjour, je programme depuis une dizaine d'année, j'ai commencé avec le basic puis le VB ensuite j'ai un peu touché à tout (DB, C, C++, OpenGL, ASM, Flash, PHP, JS) mais ce qui m'intéresse dans la programmation ce ne sont pas ses concepts en eux-même mais la possibilité de créer des choses. J'ai réalisé de nombreux projets dans une certaine optique que je recommençais à chaque fois pour arriver à une idée finale : Nex

    Windows 32bits : nex_1.0.418.63_windows_x32.zip update 30/05/2015

    Windows 64bits : nex_1.0.97.19_windows_x64.zip update 07/02/2015

    Linux 64bits : nex_0.1_linux_x64.zip

    En savoir plus sur le projet

    Genèse

    Cette idée est venue de l'observation de plusieurs contraintes et du perfectionnement d'anciens projets.

    Généralités et avancement

    Chaque information ou ensemble d'informations sera organisée dans une structure appelée ressource.


    Caractéristiques principales
    - contrôle de la fiabilité, qualité et accessibilité de l'information
    - ressources, types de données et interfaces personnalisables
    - connectivité des ressources
    - mise en place de structures de données et réseaux d'informations simple et rapide
    - sécurité de l'accès à l'information
    - partage simple et rapide
    - gestion des utilisateurs et groupes d'utilisateurs
    - synchronisation multiple des données
    - recherche avancée (types, propriétés, tags, ressources parents) (la popularité n'est pas imposée)
    - modules (client/serveur) permettant d’interagir avec les données et interchangeables
    - privatisation, pas de contrôle des données par une seule organisation, vous choisissez ou et avec qui vous partagez vos données
    - vous choisissez quelles informations vous voulez surveiller quelque soit son emplacement (notification)
    - redondance minimale des données
    - possibilité de repartir les données sur plusieurs serveurs physiques grâce a la virtualisation de serveurs nex

     Screenshot : Propriétés d'une ressource de type movie utilisant les interfaces movie et stream (affiché sous l'interface nxi)

    _______________________Concept

    Nex est donc un système de gestion de ressources organisé comme ceci :

    Structure globale

     - ressources : elles stockent les informations

     - modules : ils permettent d'ajouter des fonctionnalités et de traiter les ressources

     - interfaces : elles permettent de visualiser les ressources

    Ressources

    Les ressources permettent de stocker une information sous une structure définie, le but est de représenter une idée (qui peut utiliser plusieurs informations) avec une seule entité. Par exemple, une ressource "film" contiendra comme données une image (l'affiche), une vidéo (le film), du texte (réalisateur / acteurs etc ..)

    Une ressource peut avoir :

    - des types (identification de l'information)

    - des connexions (liens logiques)

    - des modules (applications de fonctions)

    - des interfaces (affichage des informations)

    Connexions

    Ces ressources peuvent être connectées entre elles par différents types de connexion. Par exemple, sur un forum, on pourrait connecter une ressource de type "message" à une autre avec la connexion "résolution" ou deux questions similaire avec "similitude". On peut ensuite à partir de n'importe quel message retrouver les connexion résolutions en utilisant la connexion "similitude".

    Un autre exemple, la connexion "phonétique" qui permet de trouver une information quand on ne connait pas l'orthographe lors de la recherche.

    Le but est donc que l'utilisateur puisse chercher et trouver des informations de la même manière qu'il le fait avec sa mémoire.

    Module

    Le module noyau est "nxs", il permet la gestion de base des ressources, par exemple pour lister les ressources, on utilise la commande "res_list" de du module "nxs"

    Chaque module peut utiliser les fonctions des autres modules, un module pourra donc utiliser les fonctions de nxs

    Un module peut être exécuté côté serveur ou client, on peut donc utiliser une ressource distante avec un module local ou inversement. Par exemple pour exécuter une requête sur un serveur, on peut écrire : nxs::request::execute("nxs::res_list;id:0;", adresse_serveur);

    On peut ainsi lister les ressources (root) locales ou d'un serveur spécifié puis les utiliser dans un module ou une interface.

    Interface

    Similaire aux modules, leur but est de gérer l'affichage

    Actuellement les interfaces sont en C++ et génèrent du html, l'ajout du python est prévu.

    Serveur

    Le serveur peut gérer plusieurs protocoles (actuellement http et nex), il sera possible d'en ajouter par la suite (ws, ftp ..)

    Actuellement, le protocole nex permet aux serveurs de communiquer entre eux, d'envoyer des données (binaire / texte / texte serialisé). Les données peuvent être envoyées en stream, la requête sera donc exécutée à chaque réception des données.

    Partage

    La gestion des transferts et partage de ressources / fichiers sera géré par le module nxs.


    Il y aura plusieurs façon de partager des ressources :

     - ajout de connexions

     - transfert des données

     - synchronisation des ressources

    On peut donc créer de nombreuses applications en combinant ces différents éléments, par exemple une application mail se fera assez rapidement en combinant le partage via connexion, la synchronisation et la gestion des autorisations

    _______________________Le projet et son originalité

    La modularité de Nex permettra de viser n'importe quel client utilisant internet.

    Le but est de gérer, organiser et contrôler(fiabilité, source) l'information circulant sur internet dans le but d'augmenter la pertinence des recherches,
    de réduire le temps de mise en place de nouvelles données et d'avoir un système de partage simple et complet.

    _______________________Recrutement

    Devs C++ (système / interface / modules)

    Webmaster (site de présentation / documentation)

    Graphiste (présentation du projet / réalisation de maquettes pour l'interface graphique)

    Webdesigner (interface)

    Je recherche des personnes sérieuses capable de s'investir un minimum et de travailler dans une ambiance agréable.


    Il n'y a pas de rémunération pour le développement même du projet mais une fois finalisé, il y aura de nombreuses possibilités de rentabilisation.

    Pour plus d'informations sur le projet, sa conception, ses applications et son évolution future, contactez moi par MP.


    Je fournirais tous les éléments (schémas, présentation, commercialisation ...) aux personnes décidant de se lancer dans ce projet. Le but étant de former une équipe, nous parlerons des étapes de développement de la conception au déploiement plus en détail.

    -
    Edité par ads00 16 avril 2016 à 0:10:16

    • Partager sur Facebook
    • Partager sur Twitter
      24 avril 2013 à 0:26:22

      Je pense que c'est un projet qui a de l'avenir.

      Bon courage ads00 pour trouver des personnes pour t'épauler.

      • Partager sur Facebook
      • Partager sur Twitter
        26 avril 2013 à 7:29:00

        Salut,

        Bon courage pour réaliser ton projet. Je bosse sur quelque chose d'extrêmement similaire (quoi que tout de même plus fou ^^) depuis un moment déjà (bien que l'on me l'est déconseillé car ça ne peut pas être fini dans mon cas) et je peux t'assurer qu'il y a du taff.

        Je vais quand même suivre ton projet, voir comment ça évolue.

        Bye

        -
        Edité par 3ch0 26 avril 2013 à 7:29:17

        • Partager sur Facebook
        • Partager sur Twitter
          29 avril 2013 à 20:27:53

          Up

          Avancement :

          DB terminée

          Début du serveur, mise en place des commandes

          Requêtes principales terminées

          • Partager sur Facebook
          • Partager sur Twitter
            23 mai 2013 à 4:46:59

            Module principal en cours de dev

            Possibilité de dev d'autres modules en utilsiant d'autres modules

            Accessibilité depuis un client web

            Interface web en cours de dev (utilisant n'importe quel module)

            Recherche dev pour l'interface principale (JS, HTML, C++)

            Recherche d'aide pour la création de types, de propriétés et de connexions principales (pas de connaissances en programmation requise)

            -
            Edité par ads00 23 mai 2013 à 4:48:39

            • Partager sur Facebook
            • Partager sur Twitter
              17 juin 2013 à 11:22:55

              Salut, moi je suis opé pour le poste de webmaster si c'est toujours disponible.
              • Partager sur Facebook
              • Partager sur Twitter
                19 juin 2013 à 17:00:53

                Je t'ai envoyé un MP.

                Besoins actuels : dev C++ pour avancer plus vite

                dev JS pour l'interface

                • Partager sur Facebook
                • Partager sur Twitter
                  23 juin 2013 à 16:18:18

                  up pour des dev C++

                  Actuellement, le serveur est géré en ligne de commandes via un navigateur web

                  • Partager sur Facebook
                  • Partager sur Twitter
                    24 juillet 2013 à 2:05:10

                    up :

                    Dev C++ en prio ou alors quelqu'un capable de gérer le projet pour que je puisse me concentrer sur le code (nécessite de conceptualiser tout le projet)

                    Ou simplement quelqu'un pouvant m'assister pour de nombreuses tâches simple (nécessite juste quelques bases en prog)

                    • Partager sur Facebook
                    • Partager sur Twitter
                      24 juillet 2013 à 2:30:06

                      un dev c++ pour finaliser la conception et l'architecture ? Mhh c'est un peu tard a ce niveau la non ? :)

                      Sinon, bon projet a suivre.

                      • Partager sur Facebook
                      • Partager sur Twitter
                      www.creationjeuxjava.fr - Unity3D - LibGDX - Tutoriels de Jeux vidéo !
                        24 juillet 2013 à 3:43:04

                        Pas forcément, la base est établie mais vu que c'est un gros projet, il y a certaines parties qui peuvent être améliorées.

                        Par exemple au niveau des modules, j'ai pas fait grand chose, juste un rapidement pour tester.

                        Puis bon, je cherche n'importe qui pouvant aider quel que soit la tâche :)

                        • Partager sur Facebook
                        • Partager sur Twitter
                          24 juillet 2013 à 20:59:56

                          Ben moi sa m'a l'air intéréssant même si j'ai pas tout compris au concept :euh:

                          Envoi un MP si tu veux un Dev C++. Cependant, autant je suis expert avec la librairie Qt, autant  pour le reste je ne suis pas sûr de pouvoir t'aider. De plus, il est vrai qu'avec ma formation en DUT informatique, si le code devient trop complexe, il se peut que j'ai du mal a suivre le rythme.

                          • Partager sur Facebook
                          • Partager sur Twitter
                          "A tous les optimistes, parfois la lumière au bout du tunnel, c'est un train ! Cordialement, un pessimiste"
                            25 juillet 2013 à 2:06:43

                            Salut, ça m’intéresserais de participer au projet mais j'avoue que comme OxyyxO j'ai pas tout compris et je ne promet rien. Je veux bien tenter.
                            • Partager sur Facebook
                            • Partager sur Twitter
                              25 juillet 2013 à 2:12:03

                              Pour l'instant un seul si c'est ma motivation qui t'inquiète, sache que coder la totalité d'un site en PHP ne devrais pas me prendre plus d'une semaine de travail. La création d'une maquette pour un autre site web, une soirée. Le seul projet où j'ai postulé et qui devrait me demander un temps de travail conséquent, c'est le tient. Cependant je n'ai dit oui qu'a une seule personne pour le moment car il m'a convaincu du bien fondé de son idée et que son design pourrait être intéressant. Pour le travail de rédaction de news j'ai dit non car cela me demanderais trop d'implication. 

                              Sans vouloir te vexer , au lieu de t'inquiéter de la masse de travail qui m'attend, tu ferais mieux de m'expliquer ton projet plus en détail et le rôle que j'y jouerais et ce par MP car par skype c'est impossible en conversation directe. (Tout cela dans l'optique où tu souhaite toujours une aide de ma part) 

                              Pour finir postuler pour un projet intéressant n'est pas y prendre part.

                              Si tu veux des explications sur mes capacités réelles, je maîtrise le C++ même si j'utilise dans 100% des cas le framework Qt. Je connais tout de même les principes fondamentaux. Je suis bon en anglais aussi si sa peut aider ...

                              • Partager sur Facebook
                              • Partager sur Twitter
                              "A tous les optimistes, parfois la lumière au bout du tunnel, c'est un train ! Cordialement, un pessimiste"
                                25 juillet 2013 à 3:27:12

                                Ce qui m'inquiète, ce sont les gens qui se lancent dans un projet puis arrêtent rapidement, c'est plus une perte de temps qu'un gain, c'est pour ça que je m'interrogeais.

                                Ce serait plus pratique pour moi de savoir ce que vous ne comprenez pas pour mieux expliquer, je vais essayer de vous présenter l'idée autrement.

                                Imaginons qu'au lieu de stocker des mots dans un dictionnaire, on stocke des idées / informations sur un réseau. Une ressource est le support de ces idées.

                                Ensuite, au lieu de classer des mots par lettres, on connecte les idées entre elles en spécifiant un type pour la connexion.

                                On obtient donc un réseau de ressources interconnectés.

                                On peut donc par exemple retrouver une idée à partir d'une autre idée en suivant différentes logiques. Ces connexions permettent de trouver un chemin dans le réseau pour trouver l'idée selon la logique de l'utilisateur.

                                J’espère que ce sera un peu plus clair, sinon n'hésitez pas à demander.

                                • Partager sur Facebook
                                • Partager sur Twitter
                                  25 juillet 2013 à 13:28:51

                                  Salut,

                                  J'ai un peu de mal à voir ce que tu veut faire, et plus précisément ce que tu entend par ressource.

                                  Est-ce que les ressources sont stockées sur les serveurs, sur internet ou chez les clients ? Une ressources c'est quoi ? une information ? (auquel cas on peut voir ça comme une grande encyclopédie) Des fichiers à partager entre collaborateurs ? (par exemple SharePoint, et bien d'autres soft de partage de documents à destination des entreprises) Est-ce qu'on peut partager et publier des musiques /vidéos ? Y'a t'il un coté social, avec suivi de catégorie/ressources/personnes ? possibilité de commenter une ressource ?

                                  Le projet semble sympathique, mais j'aimerais bien avoir plus de détails :)

                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    25 juillet 2013 à 13:36:40

                                    Voila ce qui manque à tes explications ! Du concret. Que va faire ton soft au final ? Comme BAKfr l'a dit, quelle visée ? Quel type d'information ? Je trouve cela très confus en fait ...
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                    "A tous les optimistes, parfois la lumière au bout du tunnel, c'est un train ! Cordialement, un pessimiste"
                                      25 juillet 2013 à 19:16:07

                                      Est-ce que les ressources sont stockées sur les serveurs, sur internet ou chez les clients ?

                                      Les ressources sont gérées par des serveurs, lorsqu'un client envoi une ressource par exemple, c'est le serveur du client qui envoi la ressource vers un autre serveur. Un utilisateur qui veut gérer ses informations dispose donc d'un client et d'un serveur. Lorsqu'un utilisateur veut ajouter des ressources à son serveur, les données physiques peuvent être stockées n'importe où, sur son PC ou sur internet.


                                      Une ressources c'est quoi ? une information ?

                                      "Chaque information ou ensemble d'informations sera organisée dans une structure appelée ressource."

                                      Je vois pas comment le dire autrement, c'est une information structurée, tu as le schémas ici : http://nex.neuroshok.com/data/res_struct.jpg

                                      Tu peux voir ça comme une grande encyclopédie oui mais qui ne s'arrête pas qu'aux connaissances. Par exemple, une ressource peut stocker une image, ce qui peut ne pas être forcément une connaissance.

                                      Des fichiers à partager entre collaborateurs ?

                                      Tu peux partager des ressources oui, donc la différence avec un partage de fichier : si une idée est représentée par une image et une légende, tu partages l'ensemble (1 ressource) ce qui correspond à 2 fichiers. Tu peux aussi les synchroniser pour que 3 personnes qui travaillent ensembles par exemple aient une base commune de travail.


                                      Est-ce qu'on peut partager et publier des musiques /vidéos ?

                                      Oui une ressource peut être de type musique ou vidéo, tu peux les partager ou tu veux avec les autorisations que tu veux comme n'importe quelle autre ressource.

                                      Y'a t'il un coté social, avec suivi de catégorie/ressources/personnes ? possibilité de commenter une ressource ?

                                      Oui un système de notification permet d'être prévenu lorsqu'une des propriétés de la ressource surveillée change, par exemple si une vidéo est ajoutée sur un serveur, on peut demander une notification si cette vidéo est ajoutée par le membre Z dans la langue Y.

                                      Oui tu peux commenter une ressource tout simplement en connectant une ressource de type 'commentaire' à la ressource que tu veux commenter.

                                      Tu peux aussi contrôler la fiabilité d'une ressource, n'importe quel user peut juger de la fiabilité de l'information (par exemple une vidéo d'un poulet qui comporte des tags sur les chats aura une fiabilité basse)

                                      Tu peux aussi créer une ressource qui sera synchronisée à la ressource d'un ami qui te permettra d'être à jour avec ses ressources.

                                      Que va faire ton soft au final ? Comme BAKfr l'a dit, quelle visée ? Quel type d'information ?

                                      Le but n'est pas d'avoir une seule fonctionnalité mais permettre pour chaque utilisateur de créer son modèle de gestion de ses informations. ça peut donc viser n'importe qui qui gère des informations quel que soit le type car n'importe quel utilisateur peut créer des types de ressources, des interfaces ou des modules.

                                      Voila voila j'espère que c'est un peu plus clair sinon demandez moi ce qui ne l'est pas.


                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        29 juillet 2013 à 14:06:13

                                        En résumé, tu veux un soft qui puisse indexer et présenter tout type de données.

                                        Le fait est qu'il n'est pas possible de créer un logiciel qui puisse résoudre toutes les attentes. Soit on traite un problème, et on le fait bien, soit on essaye de trouver un format générique pour toutes les données, mais moins personnalisé. J'ai compris que tu souhaitais pouvoir ajouter des "modules" pour chaque type de données, très bien.

                                        Dans ce cas, sur quels types de données vas-tu commencer ? Et quelles seront les relations possibles entre ces données (ce que tu appelles "connexion de ressources") ? Les quelques exemples que tu proposes laissent penser que tu veux garder comme ressources des définitions de mots, ou bien te concentrer sur le côté linguistique (tu proposes "orthographe" et "synonyme" comme type de liaison).

                                        Dans une application comme celle-ci, le plus important est la façon dont tu va présenter ça à l'utilisateur, et comment celui-ci va le percevoir. Exemple: Pour envoyer des messages à une ou plusieurs personnes, on a différentes technologies: les SMS, IRC, les mails, les systèmes de messagerie style Skype ou encore les newsgroups. Chacune de ces possibilités à ses particularités, qui font que je vais utiliser l'une ou l'autre en fonction de mes besoins. Pourtant, tous font la même chose.
                                        Donc la question est: comment ton logiciel veut-il nous inciter à utiliser nos données ? L'idéal serait que tu nous présentes des cas d'utilisations concrets, qui montrent l'avantage d'utiliser ta solution.


                                        J'apprécie ton idée, et j'ai moi-même pensé à développer une interface web similaire pour centraliser tous mes flux de données sur le web, mais je sais que j'ai une vision très spécifique de ce que je veux, et que cela ne conviendrait pas à un autre.
                                        J’espère que tu réussiras à développer ton projet.

                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          29 juillet 2013 à 17:44:52

                                          Soit on traite un problème, et on le fait bien, soit on essaye de trouver un format générique pour toutes les données, mais moins personnalisé.

                                          Les ressources ont des structures et elles sont personnalisables, ce ne sont pas les structures qui sont personnalisables.

                                          Dans ce cas, sur quels types de données vas-tu commencer ?

                                          Les modules vont agir sur les ressources, on peut créer ce que l'on veut donc je prendrais un type au hasard pour l'exemple.

                                          Et quelles seront les relations possibles entre ces données (ce que tu appelles "connexion de ressources") ?


                                          Les connexions sont créees par l'utilisateur, ce la dépend de ses besoins, si tu veux un autre exemple, une ressource de type 'problème' peut être connectée à une ressource 'solution'

                                          Chacune de ces possibilités à ses particularités, qui font que je vais utiliser l'une ou l'autre en fonction de mes besoins. Pourtant, tous font la même chose.


                                          Le but est justement de pouvoir utiliser chaque fonctionnalité en centralisant les informations. L'avantage sera par exemple de pouvoir transmettre un message Skype sur IRC, de connecter un mail à un SMS, de synchroniser ses mails etc ..

                                          Par exemple, si tu as une ressource 'profil', tu spécifies les accès des modules aux propriétés, ensuite tu utilises le(s) module(s) dont tu as besoin et l'information est transmise sur tout les modes de communication selon tes paramètres.

                                          Donc la question est: comment ton logiciel veut-il nous inciter à utiliser nos données ?


                                          Comme d'habitude sauf que les possibilités de gestion seront plus nombreuses et plus rapides.

                                          Je met pas trop d'exemple en général car sinon les gens ne lisent que les exemples et se limitent à ça sans penser à toutes les possibilités d'utilisation.

                                          La plupart du temps quand quelqu'un comprend bien le concept, il trouve des possibilités qui serait pratique pour lui tout seul.

                                          Un exemple qu'un ami a trouvé récemment : il voulait gérer sa bibliothèque et pouvoir mettre en vente certains livres.

                                          Concrètement :

                                          - Il ajoute les ressources de type 'livre' dans sa bibliothèque avec ses propriétés

                                          - Il installe le module de vente

                                          - Il sélectionne un livre puis lance la commande 'vente' du module

                                          - Il renseigne les champs manquants si besoin (par exemple prix de vente)

                                          * Le module convertit la ressource 'livre' en ressource 'annonce' puis l'envoi sur le site d'annonce choisit

                                          Je pourrais en faire des milliers d'exemple mais je pense que le mieux est de bien comprendre le concept pour pouvoir les imaginer soit même.

                                          Je te laisse trouver l'exemple pour les flux de données :)

                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            14 octobre 2013 à 18:36:05

                                            cherche dev pour la création d'un module de chat et tester la connexion des ressources
                                            • Partager sur Facebook
                                            • Partager sur Twitter

                                            [C++] Nex - gestionnaire de données universel

                                            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                            • Editeur
                                            • Markdown