ProgAccess

Open-source

Nous avons développé durant des années le site en source fermée, et avons décidé durant l'été 2018 de le libérer. Le code source est donc désormais disponible librement sur GitLab sous licence GNU AGPL.

L'équipe compte deux développeurs aux manières assez différentes voire contradictoires en certains points et le code n'est pas organisé pour être compris facilement (l'essentiel consiste en des ajouts et réparations les uns sur les autres, et au final personne n'y comprend plus rien). La libération du code peut donc avoir peu de sens pour le moment, mais nous travaillons beaucoup à la réorganisation, pour avoir un design plus solide, logique, pratique, léger, sécurisé... enfin bref meilleur.

Organisation du code

Nous utilisons PHP et MySQL. Les fichiers d'index par défaut (lus par le serveur si l'adresse est celle d'un dossier) sont index.php et index.html.

À la racine se trouvent les pages publiques en PHP ainsi que les fichiers utiles (comme l'icône ou quelques XML). Voici une liste des dossiers et de leur contenu :

Installation

  1. Créez la base de données : apfr.sql contient les requêtes de création des tables de la base de données. Vous pouvez le supprimer après l'avoir importé.
  2. Renommez le fichier include/config.php en include/config.local.php et complétez le avec vos informations.

La configuration du serveur doit interdire l'accès aux dossiers suivants : inclus, cache, tasks, files, locales.

Les traductions ne sont pas incluses dans l'archive du code source car elles peuvent être modifiées via le site lui-même et car elles sont sous licence CC BY-SA. Vous pourrez bientôt les récupérer via l'API.

Le fichier tasks.txt contient la liste des tâches à automatiser (avec cron par exemple).

L'accès à l'interface d'administration nécessite un compte membre. Créez-en un via le formulaire d'inscription puis dans la table `accounts`, colonne `settings`, mettez au champ JSON "rank" la valeur "a". Votre compte a maintenant les droits d'administration. Pour ajouter d'autres membres à l'équipe d'administration, vous pouvez maintenant passer par la page d'administration "Gestion des membres".

Ce site contient beaucoup d'éléments dans la base de données, y compris des morceaux de code. Le contenu de la base de données n'est pas publié dans le code source. Nous allons éventuellement refaire l'interface d'administration pour la rendre plus intuitive pour ceux qui ne la connaissent pas, voire faire un assistant d'installation (il n'est pas encore possible d'installer le site sans toucher manuellement à la bdd). N'hésitez pas à nous contacter en cas de problème.

Licence

ProgAccess is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU Affero General Public License for more details.

Vous avez le droit d'utiliser, d'étudier, de partager et de modifier le code. Mais si vous le publiez, vous devez citer les auteurs (l'équipe ProgAccess) et publier le code source sous la même licence ou une autre compatible. Il est également obligatoire de publier le code source modifié si vous l'exécutez publiquement sur un serveur. Évidemment, le simple fait d'ajouter ses identifiants MySQL ou de générer des fichiers de cache via l'interface d'administration ne déclanche pas cette obligation.

Le texte du site (fichiers dans /locales/) est sous licence CC BY-SA. Plus d'informations concernant la licence des traductions, voir dans l'archive locales.zip disponible ci-dessous.

Participer

Dépôt GitLab de ProgAccess

Si vous avez le courage de lire et de décrypter notre code, nous serions très heureux que vous puissiez nous aider à intégrer de nouvelles fonctionnalités, chasser et réparer les bugs, organiser le code...

Pour rapporter un bug ou suggérer une fonctionnalité, vous pouvez ouvrir un ticket sur le GitLab, ou utiliser le formulaire de contact.

Traductions