2023-09-05 23:47:36 +02:00
|
|
|
|
> ⚠️ Cyca est en cours de réécriture, le dépôt git est toujours disponible mais
|
|
|
|
|
> pas le site officiel.
|
|
|
|
|
|
2024-04-11 01:17:20 +02:00
|
|
|
|
Je vous présente aujourd’hui mon principal projet: Cyca, un gestionnaire de
|
2023-09-05 23:47:36 +02:00
|
|
|
|
favoris et de flux.
|
|
|
|
|
|
|
|
|
|
- [Dépôt git](https://git.athaliasoft.com/richard/cyca)
|
|
|
|
|
|
|
|
|
|
## (Bref) Historique du projet ##
|
|
|
|
|
|
2024-04-11 01:17:20 +02:00
|
|
|
|
L’histoire de Cyca démarre il y bien longtemps. Au début, c’était une
|
2023-09-05 23:47:36 +02:00
|
|
|
|
application de bureau écrite en C#, et disponible pour Windows uniquement. Par
|
2024-04-11 01:17:20 +02:00
|
|
|
|
la suite, devenant de plus en plus à l’aise en PHP, j’en ai fait une application
|
2023-09-05 23:47:36 +02:00
|
|
|
|
web. Mais que ce soit en C# ou en PHP, Cyca a toujours été mon projet
|
2024-04-11 01:17:20 +02:00
|
|
|
|
“laboratoire”: chaque fois que je voulais tester une technique, un framework,
|
|
|
|
|
une bibliothèque, je le faisais sur Cyca. Aujourd’hui, évidemment, les process
|
|
|
|
|
de développement ont bien changé (parfois en bien), et ce n’est plus un projet
|
2023-09-05 23:47:36 +02:00
|
|
|
|
laboratoire victime du syndrome de Frankenstein mais bien une application
|
2024-04-11 01:17:20 +02:00
|
|
|
|
fonctionnelle depuis **septembre 2020** et l’apparition de son dépôt sur GitHub.
|
2023-09-05 23:47:36 +02:00
|
|
|
|
|
|
|
|
|
## Introduction ##
|
|
|
|
|
|
|
|
|
|
Cyca est un gestionnaire de favoris et de flux:
|
|
|
|
|
|
|
|
|
|
- Libre (publié sous licence [GNU GPL](http://www.gnu.org/licenses/gpl-3.0.html))
|
|
|
|
|
- basé sur le web (écrit en PHP)
|
|
|
|
|
- multi-utilisateurs
|
|
|
|
|
- _desktop-centric_ (pensé pour le bureau avant le mobile)
|
|
|
|
|
- non-intrusif (pas de notifications surgissantes ou visuellement agressives)
|
|
|
|
|
- respectueux de la vie privée (via différents moyens, mais en particulier par
|
2024-04-11 01:17:20 +02:00
|
|
|
|
l’**absence de système de télémétrie**)
|
2023-09-05 23:47:36 +02:00
|
|
|
|
- aussi **simple** à utiliser que possible (peu de formulaires)
|
2024-04-11 01:17:20 +02:00
|
|
|
|
- destiné à récolter autant d’informations que possible à propos de vos favoris
|
2023-09-05 23:47:36 +02:00
|
|
|
|
et de vos flux
|
|
|
|
|
|
|
|
|
|
### Technique ###
|
|
|
|
|
|
|
|
|
|
La _stack_ de Cyca repose sur:
|
|
|
|
|
|
|
|
|
|
- [Laravel](https://laravel.com)
|
|
|
|
|
- [Vue](https://vuejs.org/)
|
|
|
|
|
- [TailwindCSS](https://tailwindcss.com/)
|
|
|
|
|
|
2024-04-11 01:17:20 +02:00
|
|
|
|
Puisque Cyca fait appel au framework Laravel, l’application supporte:
|
2023-09-05 23:47:36 +02:00
|
|
|
|
|
|
|
|
|
- une base de données MySQL/MariaDB, PostgreSQL, SQLServer ou SQLite (non
|
2024-04-11 01:17:20 +02:00
|
|
|
|
recommandé pour des raisons de performance dans le cas d’une utilisation
|
2023-09-05 23:47:36 +02:00
|
|
|
|
intensive)
|
2024-04-11 01:17:20 +02:00
|
|
|
|
- Redis pour le cache, les sessions, les files d’attente
|
2023-09-05 23:47:36 +02:00
|
|
|
|
|
2024-04-11 01:17:20 +02:00
|
|
|
|
D’autres outils peuvent également être utilisés, tels que BeanStalkd, memcached,
|
|
|
|
|
Amazon SQS, etc. De plus, le système de stockage de Cyca permet l’usage de
|
2023-09-05 23:47:36 +02:00
|
|
|
|
systèmes de fichiers tels que FTP, Amazon S3 en plus du stockage local. En
|
2024-04-11 01:17:20 +02:00
|
|
|
|
effet, Cyca est amené à stocker un certain nombre d’informations additionnelles
|
2023-09-05 23:47:36 +02:00
|
|
|
|
et offre donc le choix de leur emplacement.
|
|
|
|
|
|
|
|
|
|
## Fonctionnalités ##
|
|
|
|
|
|
|
|
|
|
### Arborescence ###
|
|
|
|
|
|
2024-04-11 01:17:20 +02:00
|
|
|
|
Cyca permet la gestion de favoris (ou _documents_) au sein d’une arboresence de
|
|
|
|
|
dossiers (par opposition à un système de _tags_, qu’il sera toujours possible
|
|
|
|
|
d’implémenter ultérieurement s’il y a une demande). Cette arborescence constitue
|
|
|
|
|
le premier panneau de l’interface, occupant le côté gauche de l’écran.
|
2023-09-05 23:47:36 +02:00
|
|
|
|
|
|
|
|
|
En outre, chaque utilisateur peut créer ou rejoindre un ou plusieurs groupes.
|
|
|
|
|
Un groupe permet de partager avec plusieurs utilisateurs la même arborescence de
|
|
|
|
|
dossiers, de documents et de flux, avec des permissions attribuables par
|
|
|
|
|
utilisateur et par dossier, par le créateur du groupe.
|
|
|
|
|
|
|
|
|
|
<!-- Capture de Cyca -->
|
|
|
|
|
|
|
|
|
|
Chaque nouvel utilisateur se voit attribuer son propre groupe, par défaut
|
2024-04-11 01:17:20 +02:00
|
|
|
|
inaccessible aux autres (“Seulement sur invitation”).
|
2023-09-05 23:47:36 +02:00
|
|
|
|
|
|
|
|
|
Un groupe peut être directement rejoint par un utilisateur, ou seulement sur
|
|
|
|
|
invitation. Une fonctionnalité prévue dans la _roadmap_ impliquera un système
|
2024-04-11 01:17:20 +02:00
|
|
|
|
de fédération, où il sera possible d’accéder à un groupe hébergé sur une autre
|
2023-09-05 23:47:36 +02:00
|
|
|
|
instance de Cyca.
|
|
|
|
|
|
|
|
|
|
Il existe actuellement trois types de dossiers, chaque type ayant certaines
|
|
|
|
|
caractéristiques:
|
|
|
|
|
|
|
|
|
|
- Le dossier _Éléments non-lus_ permet de lister tous les documents possédant
|
|
|
|
|
des éléments de flux non-lus
|
|
|
|
|
- Le dossier _Racine_, où seront stockés les autres dossiers et les documents
|
2024-04-11 01:17:20 +02:00
|
|
|
|
- Les dossiers créés par l’utilisateur
|
2023-09-05 23:47:36 +02:00
|
|
|
|
|
|
|
|
|
Chaque groupe possède sa propre arborescence de dossiers, incluant un dossier
|
|
|
|
|
_Éléments non-lus_ et un dossier _Racine_ qui lui sont spécifiques.
|
|
|
|
|
|
2024-04-11 01:17:20 +02:00
|
|
|
|
L’utilisateur a la possibilité de basculer d’un groupe à l’autre très facilement
|
2023-09-05 23:47:36 +02:00
|
|
|
|
grâce aux liens situés au-dessus de la liste des dossiers.
|
|
|
|
|
|
|
|
|
|
<!-- Capture de Cyca -->
|
|
|
|
|
|
|
|
|
|
Sur cette capture, vous pouvez voir le groupe en haut (avec le nombre total
|
2024-04-11 01:17:20 +02:00
|
|
|
|
d’éléments non-lus dans ce groupe), puis, en dessous, l’arborescence appartenant
|
2023-09-05 23:47:36 +02:00
|
|
|
|
à ce groupe.
|
|
|
|
|
|
2024-04-11 01:17:20 +02:00
|
|
|
|
Un formulaire simple permet de créer ou renommer chaque dossier (à l’exception
|
|
|
|
|
des dossiers _Éléments non-lus_ et _Racine_). Le _drag’n’drop_ permet de
|
2023-09-05 23:47:36 +02:00
|
|
|
|
déplacer dossiers et documents.
|
|
|
|
|
|
|
|
|
|
Chaque dossier peut être déployé ou réduit (_expanded_ ou _collapsed_), comme
|
|
|
|
|
dans toute arborescence digne de ce nom, avec toutefois une subtilité: il est
|
|
|
|
|
possible de déployer ou réduire un dossier **et** ses sous-dossiers en
|
2024-04-11 01:17:20 +02:00
|
|
|
|
maintenant un clic long sur l’icône en forme de triangle à gauche du dossier.
|
2023-09-05 23:47:36 +02:00
|
|
|
|
Pratique pour cacher ou voir un sous-ensemble des dossiers en quelques instants.
|
|
|
|
|
|
|
|
|
|
<!-- Capture de Cyca -->
|
|
|
|
|
|
|
|
|
|
### Documents ###
|
|
|
|
|
|
|
|
|
|
Un dossier peut contenir un nombre illimité de documents. Cette liste occupe la
|
2024-04-11 01:17:20 +02:00
|
|
|
|
partie médianne de l’écran. Elle peut afficher des listes différentes en
|
2023-09-05 23:47:36 +02:00
|
|
|
|
fonction du dossier sélectionné: soit les documents effectivement liés au
|
|
|
|
|
dossier en cours, mais aussi les documents contenant des éléments non-lus si le
|
|
|
|
|
dossier éponyme est sélectionné.
|
|
|
|
|
|
|
|
|
|
Là encore, le formulaire pour ajouter un document est extrêmement simple: il
|
2024-04-11 01:17:20 +02:00
|
|
|
|
suffit de renseigner l’URL du document (ou du flux) qui nous intéresse dans le
|
|
|
|
|
panneau des détails (occupant la partie inférieure droite de l’écran).
|
2023-09-05 23:47:36 +02:00
|
|
|
|
|
2024-04-11 01:17:20 +02:00
|
|
|
|
Si vous renseignez l’URL vers un flux (RSS ou Atom), Cyca analysera ce flux à la
|
2023-09-05 23:47:36 +02:00
|
|
|
|
recherche du document parent. Cyca ajoutera alors à vos favoris ce document à la
|
|
|
|
|
place du flux RSS, qui, lui, sera associé au document.
|
|
|
|
|
|
|
|
|
|
Vous avez ensuite la possibilité de découvrir les informations collectées par
|
2024-04-11 01:17:20 +02:00
|
|
|
|
Cyca à propos de l’URL qui vous lui avez soumise en sélectionnant le document,
|
2023-09-05 23:47:36 +02:00
|
|
|
|
ce qui provoquera la modification du panneau de détails en bas à droite de
|
2024-04-11 01:17:20 +02:00
|
|
|
|
l’écran:
|
2023-09-05 23:47:36 +02:00
|
|
|
|
|
|
|
|
|
<!-- Capture de Cyca -->
|
|
|
|
|
|
2024-04-11 01:17:20 +02:00
|
|
|
|
Vous constaterez sur la capture ci-dessus la présence d’un flux RSS qu’il est
|
|
|
|
|
possible d’ignorer. Cyca l’a automatiquement découvert, et me proposera donc
|
|
|
|
|
l’actualité de ce site dès qu’elle sera disponible.
|
2023-09-05 23:47:36 +02:00
|
|
|
|
|
|
|
|
|
Vous remarquerez en outre la coloration de certains éléments des adresses
|
2024-04-11 01:17:20 +02:00
|
|
|
|
affichées dans Cyca, dans le but d’améliorer leur lisibilité, et éviter certains
|
2023-09-05 23:47:36 +02:00
|
|
|
|
problèmes de sécurité les conçernant, malheureusement pas en évitant ces
|
|
|
|
|
problèmes (Cyca ne peut pas deviner si le site que vous avez ajouté à vos
|
2024-04-11 01:17:20 +02:00
|
|
|
|
favoris soit bien celui qu’il prétend être, en tout cas pas à ce stade), mais en
|
|
|
|
|
vous présentant l’URL que vous venez d’ajouter d’une façon plus claire, plus
|
2023-09-05 23:47:36 +02:00
|
|
|
|
lisible, en vous permettant de différencier rapidement les caractères disposant
|
2024-04-11 01:17:20 +02:00
|
|
|
|
d’une graphie similaire (ce qu’on appelle les
|
2023-09-05 23:47:36 +02:00
|
|
|
|
[homoglyphes](https://fr.wikipedia.org/wiki/Homoglyphe)).
|
|
|
|
|
|
2024-04-11 01:17:20 +02:00
|
|
|
|
Enfin, vous noterez en bas de cette capture un groupe “Réponse HTTP” dépliable
|
2023-09-05 23:47:36 +02:00
|
|
|
|
qui contient toutes les informations récoltées lors de la requête HTTP au
|
|
|
|
|
serveur.
|
|
|
|
|
|
2024-04-11 01:17:20 +02:00
|
|
|
|
Ces informations ont un but informatif. Ce n’est pas un outil de sécurité, qui
|
|
|
|
|
ne cherche ni à récolter des données auxquelles il n’a pas accès, ni à faire
|
2023-09-05 23:47:36 +02:00
|
|
|
|
usage de ces données à des fins malencontreuses. Les données récoltées par Cyca
|
|
|
|
|
sont des données publiques, accessibles à tous, telles que la version du
|
|
|
|
|
protocole, les en-têtes de la réponse, le type MIME, etc. Par ailleurs, aucune
|
2024-04-11 01:17:20 +02:00
|
|
|
|
donnée personnelle n’est envoyée au serveur distant, pour qui c’est Cyca le
|
2023-09-05 23:47:36 +02:00
|
|
|
|
client.
|
|
|
|
|
|
2024-04-11 01:17:20 +02:00
|
|
|
|
Pour les connaisseurs, c’est la librairie [Guzzle](https://docs.guzzlephp.org/en/stable/overview.html)
|
2023-09-05 23:47:36 +02:00
|
|
|
|
qui est mise en oeuvre ici.
|
|
|
|
|
|
|
|
|
|
### Flux ###
|
|
|
|
|
|
2024-04-11 01:17:20 +02:00
|
|
|
|
Dès qu’un document est créé dans Cyca, l’application va automatiquement
|
2023-09-05 23:47:36 +02:00
|
|
|
|
découvrir les flux associés de deux façons différentes:
|
|
|
|
|
|
|
|
|
|
- la méthode classique, consistant à analyser les balises ```<link>``` à la
|
|
|
|
|
recherche de flux **déclarés**
|
|
|
|
|
- la méthode brute, consistant à tester certaines URLs connues (par exemple,
|
|
|
|
|
_/feed_, _/rss_, etc.)
|
|
|
|
|
|
2024-04-11 01:17:20 +02:00
|
|
|
|
Grâce à ce fonctionnement, et c’est le but de Cyca, même si vous ignorez que
|
|
|
|
|
certains sites déclarent un flux, ou même si vous ignorez ce qu’est un flux,
|
|
|
|
|
vous aurez accès à l’actualité de vos favoris, même si vous n’êtes pas encore
|
2023-09-05 23:47:36 +02:00
|
|
|
|
consommateur de flux. Autrement dit: Cyca a été conçu pour vous engager sur la
|
|
|
|
|
voie de la consommation des flux RSS et/ou Atom.
|
|
|
|
|
|
|
|
|
|
### Éléments de flux ###
|
|
|
|
|
|
|
|
|
|
Les éléments de flux sont affichés dans le panneau situé en haut à droite, et
|
2024-04-11 01:17:20 +02:00
|
|
|
|
se présente sous la forme d’une liste, mêlant éléments lus et éléments non-lus
|
|
|
|
|
dans tous les dossiers, à l’exception du dossier _Éléments non-lus_ qui ne
|
|
|
|
|
listera que les éléments… non-lus.
|
2023-09-05 23:47:36 +02:00
|
|
|
|
|
|
|
|
|
<!-- Capture de Cyca -->
|
|
|
|
|
|
|
|
|
|
Vous pouvez voir ici que Cyca liste les éléments lus en gris clair, tandis que
|
|
|
|
|
les éléments non-lus sont affichés en blanc. On dispose par ailleurs du titre
|
|
|
|
|
du flux dans lequel chaque élément a été publié, ainsi que la date de
|
|
|
|
|
publication.
|
|
|
|
|
|
|
|
|
|
Enfin, on aperçoit une fonctionnalité intéressante de Cyca: la mise en
|
|
|
|
|
surbrillance, qui vous permet de mettre en exergue certaines expressions qui
|
2024-04-11 01:17:20 +02:00
|
|
|
|
vous intéressent en particulier (ici, “Apple”).
|
2023-09-05 23:47:36 +02:00
|
|
|
|
|
|
|
|
|
Cyca respecte la décision des éditeurs de flux de ne pas inclure la totalité du
|
|
|
|
|
texte dans leur flux. Certains, particulièrement les geeks, les revues
|
2024-04-11 01:17:20 +02:00
|
|
|
|
scientifiques ou les systèmes d’alerte incluent le texte complet de leur
|
2023-09-05 23:47:36 +02:00
|
|
|
|
publication, parfois même avec des pièces jointes (que Cyca ne supporte pas
|
2024-04-11 01:17:20 +02:00
|
|
|
|
encore), mais d’autres se contentent d’un résumé, voire d’un simple lien.
|
2023-09-05 23:47:36 +02:00
|
|
|
|
|
2024-04-11 01:17:20 +02:00
|
|
|
|
Cyca n’a pas et n’aura jamais la volonté d’aller plus loin. Il existe des outils
|
|
|
|
|
spécifiques à cet usage, mais ils ne respectent pas l’éthique que je veux pour
|
2023-09-05 23:47:36 +02:00
|
|
|
|
Cyca.
|
|
|
|
|
|
|
|
|
|
### Mises en surbrillance ###
|
|
|
|
|
|
|
|
|
|
<!-- Capture de Cyca -->
|
|
|
|
|
|
|
|
|
|
Cyca vous permet de définir des mises en surbrillance, qui vous vous permettre
|
2024-04-11 01:17:20 +02:00
|
|
|
|
d’isoler, dans la liste des éléments de flux, ceux qui vous intéressent
|
2023-09-05 23:47:36 +02:00
|
|
|
|
particulièrement.
|
|
|
|
|
|
|
|
|
|
Il vous suffit pour cela de définir une expression et une couleur associée.
|
|
|
|
|
Cette expression peut être un simple mot, ou une
|
|
|
|
|
[expression régulière](https://fr.wikipedia.org/wiki/Expression_régulière).
|
|
|
|
|
|
|
|
|
|
### Autres fonctionnalités ###
|
|
|
|
|
|
|
|
|
|
- Cyca supporte un thème sombre et un thème clair, soit forcé soit adapté
|
2024-04-11 01:17:20 +02:00
|
|
|
|
automatiquement en fonction du système d’exploitation
|
|
|
|
|
- Cyca est actuellement capable de lire les méta-données d’une image et d’un
|
2023-09-05 23:47:36 +02:00
|
|
|
|
fichier PDF
|
|
|
|
|
|
|
|
|
|
## Fonctionnalités à venir ##
|
|
|
|
|
|
2024-04-11 01:17:20 +02:00
|
|
|
|
- J’aimerais intégrer un système de fédération permettant, comme dit plus haut,
|
2023-09-05 23:47:36 +02:00
|
|
|
|
de rejoindre un groupe hébergé sur une autre instance de Cyca
|
2024-04-11 01:17:20 +02:00
|
|
|
|
- J’ai commencé à travailler sur une [librairie](https://github.com/RichardDern/php-gemini)
|
2023-09-05 23:47:36 +02:00
|
|
|
|
pour le protocole [gemini](https://gemini.circumlunar.space/), qui permettra
|
2024-04-11 01:17:20 +02:00
|
|
|
|
d’ajouter des liens sur ce réseau à Cyca…
|
|
|
|
|
- …puis, en créant une abstraction des protocoles, permettre à Cyca de gérer
|
|
|
|
|
des favoris sur n’importe quel réseau (FTP, Gopher, etc.)
|
|
|
|
|
- J’aimerais introduire un moteur de recherche local, permettant de retrouver
|
2023-09-05 23:47:36 +02:00
|
|
|
|
facilement documents et éléments de flux (en cours lors de la publication de
|
|
|
|
|
cette présentation)
|
2024-04-11 01:17:20 +02:00
|
|
|
|
- J’aimerais ajouter la possibilité de trier les documents et les flux selon
|
|
|
|
|
les préférences de l’utilisateur
|
2023-09-05 23:47:36 +02:00
|
|
|
|
|
|
|
|
|
## De quoi Cyca a besoin ? ##
|
|
|
|
|
|
2024-04-11 01:17:20 +02:00
|
|
|
|
- D’argent: j’arrive en fin de droits au chômage, ce qui signifie que je ne
|
2023-09-05 23:47:36 +02:00
|
|
|
|
pourrais plus travailler sur Cyca à temps plein. Mon objectif était de monétiser
|
2024-04-11 01:17:20 +02:00
|
|
|
|
Cyca par la mise en place d’un service hébergé, mais je n’ai plus le temps
|
|
|
|
|
d’atteindre cet objectif. Les dons me permettraient de financer l’électricité,
|
|
|
|
|
le matériel, et le travail que je fournis sur Cyca, en attendant d’atteindre
|
|
|
|
|
l’indépendance financière.
|
|
|
|
|
- De traducteurs: Cyca n’est pour l’instant disponible qu’en anglais et en
|
2023-09-05 23:47:36 +02:00
|
|
|
|
français.
|
2024-04-11 01:17:20 +02:00
|
|
|
|
- De “colporteurs”: si vous avez lu mon premier post sur ce blog, vous savez
|
|
|
|
|
déjà qu’il me manque un réseau social, de personnes en mesure de tester Cyca,
|
|
|
|
|
en parler autour d’eux, et me remonter problèmes et suggestions.
|
2023-09-05 23:47:36 +02:00
|
|
|
|
|
|
|
|
|
## Conclusion ##
|
|
|
|
|
|
2024-04-11 01:17:20 +02:00
|
|
|
|
J’ai développé Cyca parce que j’estime que c’est une application qui répond à
|
|
|
|
|
deux besoins que j’ai en tant qu’Internaute: gérer des favoris (en grande
|
2023-09-05 23:47:36 +02:00
|
|
|
|
quantité) et des flux (de même). Il me semblait logique de faire les deux au
|
|
|
|
|
même endroi.
|
|
|
|
|
|
2024-04-11 01:17:20 +02:00
|
|
|
|
C’est, pour moi, pour mon usage quotidien, une application essentielle, qui
|
2023-09-05 23:47:36 +02:00
|
|
|
|
répond à ces besoins de la meilleure manière possible, selon mes critères.
|
|
|
|
|
|
2024-04-11 01:17:20 +02:00
|
|
|
|
Mais je souhaite qu’elle puisse répondre aux vôtres aussi, afin qu’elle figure
|
|
|
|
|
dans le rang des outils “essentiels”, au même titre qu’un gestionnaire de mots
|
|
|
|
|
de passe, ou d’un éditeur de texte.
|
2023-09-05 23:47:36 +02:00
|
|
|
|
|
2024-04-11 01:17:20 +02:00
|
|
|
|
Merci d’avoir lu cette présentation. J’espère qu’elle vous donnera envie de
|
|
|
|
|
donner sa chance à Cyca, et d’en parler à vos contacts.
|