[WIP] Colllect

Your visual bookmark manager

a marqué ce sujet comme résolu.

Salutations !

Je suis Alex-D, développeur fullstack ayant notamment designé et intégré Zeste de Savoir dans sa première version.

Me faisant discret ces derniers temps par ici, je travaille sur plusieurs projets dont celui que je vais vous présenter ici : Colllect.

Ce projet est en cours de développement, ce qui est décrit ici est susceptible d’évoluer



Qu’est-ce que c’est ?

Il s’agit là d’une application Web Open Source de gestion visuelle de "marque pages" qui gère différent éléments : images (jpg, png, gif), notes (markdown), palettes de couleurs et évidemment des liens.

L’outil est principalement orienté vers le design et tout ce qui est graphique, mais est tout à fait utilisable pour d’autres usages, par exemple dans mon cas pour faire de la veille technique.

Le but est de pouvoir déposer des éléments, de les ranger dans des Colllections qui seront potentiellement collaboratives, d’appliquer des tags aux éléments, de pouvoir les filtrer…

Objectifs

Des outils du genre, il en existe tout un tas, notamment pas mal qui sont morts. Si vous en étiez utilisateur, vous avez perdu tout votre travail de veille et de recherche graphique. Colllect propose de tout baser sur des fichiers que vous stockez où bon vous semble. Pas de base de données "propriétaire" au format illisible. Tout est fait pour que l’on puisse gérer les bookmarks à partir de l’interface ou des fichiers eux-mêmes.

En résumé :

  • c’est open source, licence MIT
  • tout est fichier et lisible pour un humain
  • l’interface et le stockage sont dissociables
  • API REST ouverte
  • pérennité de la veille

Du point de vue de l’utilisateur, comment ça marche ?

Stockage

Par défaut, nous proposons quelques Mo d’espace gratuits pour tester l’application. Pour aller plus loin il faudra choisir un stockage : Colllect (payant), Dropbox, (S)FTP. Nous prévoyons de rajouter d’autres services tels Google Drive, Amazon Drive… mais nous procédons par étape.

Tout étant fichier, vous pouvez profiter par exemple de "fonctionnalités" supplémentaire avec Dropbox par exemple : dans le train en étant hors ligne, mettez les fichiers dans votre Dropbox, une fois reconnecté à internet, accédez à l’interface de Colllect et vous y verrez les éléments que vous avez mis de côté :)

Interface

Vous voulez tout héberger vous-même ? Téléchargez le zip depuis GitHub, suivez les instructions, vous voilà sur votre propre instance et vous pouvez vous reconnecter à votre Dropbox précédemment utilisée ou bien en local ou sur un autre (S)FTP…

Votre entreprise ne souhaite pas s’embêter avec l’installation et la maintenance d’une instance dédiée ni gérer le stockage : souscrivez un abonnement à notre application, nous gérons cela pour vous !

Du point de vue technique, comment ça marche ?

Pour l’instant, le back-end est écrit en PHP (pour la simplicité de déploiement pour les utilisateurs qui voudraient leur propre instance). J’utilise notamment Symfony et Flysystem. Optionnellement, un Redis pour le cache, sinon cache fichier.

Le back-end de l’application est une API REST, qui sera ouverte à qui le veut à terme, pour que chacun puisse développer des extensions / scripts ou que sais-je. Nous prévoyons nous-mêmes de développer des extensions pour navigateurs afin d’ajouter des choses facilement à vos colllections.

Stockage

Comme dit plus haut, tout est fichier. Il a fallu trouver une astuce pour réussir à faire tout fonctionner sans base de données. Ainsi le nom du fichier comporte le nom de l’élément, les tags et son extension défini son type.

Les colllections sont des dossiers. Rien de plus compliqué.

J’ai du mettre en place une grosse couche d’abstraction, notamment grâce à Flysystem, pour pouvoir manipuler indifféremment les différents types de stockage, actuellement : Dropbox, FTP, SFTP, Amazon AWS S3, local.

Interface

De ce côté c’est encore pas mal en travaux, mais on part sur du Vue.js + masonry, le tout responsive.

Interface de Colllect (mockup WIP)
Interface de Colllect (mockup WIP)

Pour en voir un peu plus sur l’interface, vous pouvez aller voir le projet Colllect sur le portfolio de mon compère Adrien Gervaix.

Vous avez dit Open Source ?

On s’est dit que c’était la meilleure façon de rendre le projet pérenne pour les utilisateurs. Si par malheur nous devions fermer notre instance, les utilisateurs pourront récupérer leur veille voire continuer d’utiliser l’outil en installant leur propre instance.

Community Edition vs Enterprise Edition

Pour l’instant on est partis sur l’idée du modèle de GitLab : le projet est Open Source, licence MIT. C’est la Community Edition. Puis, de notre côté on fait un fork pour créer l'Enterprise Edition. On y rajoute des fonctionnalités qui ont un coût important ou qui sont très lourdes à gérer au niveau de l’installation. Le but étant que l’installation de sa propre instance de Colllect (Community Edition, donc) se fasse très simplement : téléchargement du zip, dé-zip, upload sur son serveur, on suit quelques instructions => ça tourne !

A ce niveau là on a pas encore beaucoup creusé car on se concentre déjà à créer le noyau dur du projet qui sera la Community Edition.

Tout notre code est déjà sur GitHub ici : https://github.com/Colllect/Colllect

Conclusion

Encore une fois, tout ceci est sujet à évolutions, mais nous commençons à bien avancer \o/

J’essayerais de maintenir sur sujet à jour au fur et à mesure du développement.

Si vous avez des remarques / questions, n’hésitez pas, c’est aussi pour ça que je crée ce sujet !

Je ne pense pas qu’on ira dans le sens de Zotero.

On se penche plutôt sur le côté graphique/visuel, donc ça sera plutôt créer et partager des collections, créer des moodboards…

Par contre, je ne vois pas ce que tu veux dire par "possibilité d’exporter". Vu que tout est potentiellement déjà stocké chez toi. Tu parles du cas où on utiliserait Collect.io comme stockage ?

Hello ça paraît super intéressant, plusieurs questions :

  • est-il possible d’installer "on premise" pour une utilisation chez soi ? J’imagine que : "pour la simplicité de déploiement pour les utilisateurs qui voudraient leur propre instance" ça veut dire oui (du docker prévu ?)
  • peut-on se brancher sur un fournisseur d’authentification (OAuth2, Google ou autres, LDAP, …)
  • peut-on l’utiliser depuis le navigateur (qui dit API REST ouverte, dit "oui si tu développes un plugin" j’imagine)
  • la recherche : si vous vous basez sur un FileSystem (local ou cloud) comment vous indexez les bookmarks pour qu’on puisse rechercher facilement dedans ? (ah zut, j’avais bookmarké "Snoopy" et je le retrouve plus :'( )

Quel état d’avancement sur le projet du coup ? Le GitHub dit que vous venez tout juste de démarrer, vous avez une idée à la louche de quand vous pourriez arriver à une version stable ?

Bon courage en tout cas, c’est un beau projet et ça me serait bien utile.

+0 -0

Hey !

Chacun pourra installer sa propre instance basée sur la version Open Source. Comme pour GitLab en gros. Et du coup oui je vais voir pour avoir du Docker qui nous servira aussi pour la mise en prod :) On pourra aussi installer ça sur un serveur qui a PHP7 + Apache juste en y dézipant le projet : pour faire court, on aura un livrable avec les vendors et le front "compilé".

Pour l’instant il n’y a aucune gestion de connexion via un service extérieur. Je ne sais pas si ça vaut le coup pour l’instant de gérer du LDAP par exemple. Pour le coup GitLab le fait. Mais je pense que si ça arrive, ça sera dans un second temps.

C’est une webapp, donc ça ne s’utilise QUE dans le navigateur en fait. On n’exclut pas la possibilité de faire un client bureau avec Electron. Et si par "depuis le navigateur" tu entends extension, c’est prévu mais pas prioritaire pour l’instant.

Pour la recherche je n’ai encore rien fait mais on va construire un index qu’on stockera sous forme de fichier dans l’espace de stockage. Il faut que je me penche sur ce côté là.


Pour l’avancement, j’ai le coeur de l’outil côté back, côté front je ne m’y suis pas encore mis mais l’ami Grafikart a construit la base aussi et est capable d’afficher l’Inbox, ajout d’éléments, …

Il reste du boulot mais disons qu’en gros on a un POC back et un POC front qui fonctionnent :)

Ça devrait arriver en alpha dans les mois qui viennent, c’est un side project pour l’instant donc difficile d’évaluer la disponibilité de chacun. Si ça fonctionne, on pourrait passer à mi-temps voire plein temps dessus… L’avenir nous le dira :)

J’espère avoir répondu à tes questions :)

C’est une webapp, donc ça ne s’utilise QUE dans le navigateur en fait.

Désolé, ma question n’était pas claire : je sous-entendais un plugin pour les navigateurs qui permettent d’ajouter directement la page en cours de consultation dans l’annuaire de bookmarks partagés. (raccourci clavier, bouton, etc.). Voire l’automatisation / l’import-export de ses propres bookmarks ? Bref, quelles interactions avec nos propres bookmarks, persos, de nos navigateurs.

+0 -0

Merci pour la réponse !

Dommage si ce n’est pas haut dans votre liste de prios. Mais pensez-y quand même. Quand on a 50 bookmarks ou "trucs à lire plus tard qui traînent", ça peut. Eaucoup beaucoup aider à l’adoption de l’outil que de les y ajouter automatiquement. Surtout que si vous disposez déjà d’une API l’effort est sans doute moindre.

Bonne chance et bon courage ! C’est un chouette projet !

+0 -0

Salut !

C’est amusant, je suis tombé hier sur votre projet Github par hasard en regardant les projets qui avaient bookmark dans leurs tags Github et là @tleb m’a pingé sur Mastodon vers cette page lorsque j’ai "tooté" que je cherchais une solution de "knowledge base"/"bookmark manager".

De ce que je comprends de votre projet, vous ciblez plutôt les graphistes et designers qui souhaitent stocker des inspirations trouvées sur Dribbble et Behance. Ça m’a l’air pas mal, et je vais faire passer ça aux designers que je connais. Mais donc vous n’aurez pas les fonctionnalités qui m’intéresseraient comme les annotations et la possibilité de transformer des photos de texte en fichier texte par OCR. Dommage :)

En tout cas, super travail de conception d’interface et de graphisme, le site web donne envie et Adrien Gervaix fait du beau boulot ! Il faudra que l’implémentation technique suive le même chemin ;)

+0 -0

Oui pour les annotations, c’est permettre de mettre des commentaires au contenu qu’on a ajouté dans le logiciel. Je suis pour ma part plutôt intéressé par mettre des liens et des contenus textuels qu’on peut ensuite annoter et prendre des citations importantes pour résumer un long texte. C’est utile pour rédiger un mémoire par exemple.

Pour l’OCR, un cas concret que j’ai c’est que je peux lire des journaux papiers et j’aimerais pouvoir archiver un article intéressant. Donc je pourrais le prendre en photo avec le téléphone, l’uploader sur le service, et le service le convertirai en texte que je pourrais ensuite traiter comme un texte normal donc faire des annotations, des citations comme je disais plus haut.

Je ne pense pas faire partie de votre cible car j’ai compris que vous vous concentrez sur de la veille graphique, or je fais de la veille avec des contenus textuels. Donc je pense devoir chercher ailleurs pour trouver ces fonctionnalités dont je parle. :)

+0 -0

Petite question : est-ce que le markdown des notes est un markdown basique ou enrichi qui supporte par exemple les diagrames, le code et surtout les maths via latex/katex ?

+2 -0

Salut !

Vu que c’est un projet à côté du boulot, il met du temps à arriver. Mais on travaille toujours dessus.

J’ai terminé l’API. J’ai mis en place toute la structure du front avec Vue + TypeScript.

Par ailleurs je travaille en ce moment même sur le cache du proxy afin d’éviter que nos coûts serveur n’explosent. Vu que les utilisateurs peuvent stocker les éléments où ils veulent, on doit avoir un proxy qui va renvoyer les éléments seulement si on en a les droits.

On a aussi commencé à se pencher sur la question du légal, parce que tout ça va nous amener à créer une société.

A ce propos, le domaine collect.io n’était pas disponible, nous avons décidé de changer de nom à la sortie pour Colllect à l’adresse colllect.io donc. Ça sera mieux que getcollect.io. On a donc un nouveau logo et on retravaille les UIs pour faire quelque chose de mieux.

Je sais bien qu’on est plutôt longs, mais le côté décentralisé (= on pioche les données dans votre Dropbox/FTP/S3/…) coûte très cher en dev. Sans ça, on aurait un CDN, pas de proxy, la gestion des tags dans une BDD, etc.

Si vous voulez suivre l’avancement, vous pouvez suivre tout ça sur http://github.com/Colllect/colllect

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte