{"id":23537659,"url":"https://github.com/loic-simon/club-q","last_synced_at":"2026-07-18T15:36:17.535Z","repository":{"id":123979483,"uuid":"287988184","full_name":"loic-simon/club-q","owner":"loic-simon","description":"Graphical interface (Python / Tk) for allocating show tickets","archived":false,"fork":false,"pushed_at":"2022-09-26T08:53:03.000Z","size":130799,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-15T00:23:16.500Z","etag":null,"topics":["python","tkinter"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/loic-simon.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-08-16T17:06:00.000Z","updated_at":"2021-12-27T19:48:04.000Z","dependencies_parsed_at":null,"dependency_job_id":"96eb0d9a-aaea-4743-bcdd-ec0fe7b7b54d","html_url":"https://github.com/loic-simon/club-q","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/loic-simon/club-q","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/loic-simon%2Fclub-q","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/loic-simon%2Fclub-q/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/loic-simon%2Fclub-q/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/loic-simon%2Fclub-q/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/loic-simon","download_url":"https://codeload.github.com/loic-simon/club-q/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/loic-simon%2Fclub-q/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279058540,"owners_count":26094844,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-15T02:00:07.814Z","response_time":56,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["python","tkinter"],"created_at":"2024-12-26T03:17:10.999Z","updated_at":"2025-10-15T06:49:09.663Z","avatar_url":"https://github.com/loic-simon.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# club-q\n\n*(Français)*\nProgramme Python implémentant une interface graphique pour l'attribution de places de spectacles à des étudiants de l'ESPCI Paris - PSL, dans le cadre de l'activité du club chargé de cette tâche, dit « Club Q ».\n\nConçu pour un usage dans ce cadre uniquement. Ce programme est basé sur des données privées et organisées de manière spécifique ; l'accès aux données est protégé par mot de passe.\n\n*(English)*\nPython program implementing a graphical interface for allocating show tickets to ESPCI Paris - PSL students, as part of the \"Club Q\" activity. Designed for use in this setting only. This program relies on private data, organized in a specific way and password-protected.\n\n\n## Fonctionnalités\n\n* Affichage détaillé des étudiants, spectacles et vœux\n* Attribution automatique par minimisation des mécontentements individuels\n* Ajustement manuel des attributions\n* Synchronisation avec le site d'inscription\n* Génération des fiches récapitulatives PDF des élèves et spectacles\n* [v2.1] Publication des fiches élèves individuelles sur le serveur d'inscription\n* [v2.1] Envoi des fiches élèves individuelles par mail\n* [v2.2] Génération d'un fichier Excel récapitulant les sommes à payer\n* [v2.3] Création de nouveaux vœux (pour les élèves déjà existants)\n* [v2.4] Génération de fichiers Excel récapitulatifs pour les spectacles\n\n## Installation\n\n### Exécutable\n\nPour les utilisateurs sous Windows, l'application est disponible sous forme d'un exécutable : [`club-q.exe`](club-q.exe).\n\nCe fichier est autonome et n'a pas de dépendances : il suffit de le télécharger et de l'exécuter.  \\\nTesté sous Windows 10 / 64 bits uniquement ; devrait fonctionner sous toutes les versions récentes.\n\n\n### Code source\n\nÀ défaut, le dossier [`source`](source/club-q.py) contient l'ensemble des fichiers nécessaires au fonctionnement de l'application.  \\\nLe point d'entrée du programme est alors [`source/club-q.py`](source/club-q.py), qu'il suffit d'exécuter comme tout script Python.\n\n\n#### Dépendances\n\n* Python 3.6+\n* Packages : SQLAlchemy, PyMySQL, ReportLab, cryptography, Unidecode, Pillow, natsort, openpyxl (voir [`requirements.txt`](requirements.txt))\n\nPour installer tous les packages nécessaires, avec [pip](https://pip.pypa.io/en/stable/) (gestionnaire de packages usuel) :\n\n```bash\npip install -r source/requirements.txt\n```\n\n### Geler le code\n\nLe fichier exécutable fourni a été gelé à l'aide de [PyInstaller](https://pypi.org/project/pyinstaller/). La commande suivante permet d'en faire un équivalent pour l'environnement d'exécution courant (à la racine du dossier [`source`](source/club-q.py)) :\n\n```bash\npyinstaller ./club-q.spec\n```\n\nL'exécutable ainsi généré est placé par défaut dans le dossier [`source/dist`](source/dist).\n\n## Usage\n\nUtiliser l'assistant intégré au programme pour appréhender son utilisation.\n\n### Mot de passe\n\nLe hash du mot de passe du programme et les paramètres sensibles chiffrées peuvent être redéfinis à l'aide du script [`source/gen_new_pass.py`](source/gen_new_pass.py).\n\n### Utilisation en ligne de commande\nLes options suivantes, principalement utiles pour le développement, sont disponibles :\n\n* `--debug` : affiche certaines informations détaillées au cours de l'exécution du programme\n* `--direct` : lance directement la fenêtre principale, sans passer par l'écran d'accueil\n* `--assistant` : lance directement l'assistant d'attribution, sans passer par l'écran d'accueil\n\n\n## Contributions\n\nCe projet n'est pas ouvert aux contributions extérieures. N'hésitez pas à me contacter pour toute remarque.\n\n\n## Licence\n\nCe programme est partagé sous [licence MIT](https://choosealicense.com/licenses/mit/).\n\n© 2020 Loïc Simon – Association GRI – ESPCI Paris - PSL  \\\nBasé sur un programme initialement développé par Jessie Mosso 134, Miguel Cano 134 et Guillaume Vidon – logo du club Q par Anaëlle Chrétien 134\n\nPour toute question, n'hésitez pas à me contacter par mail : [loic.simon@espci.org](mailto:loic.simon@espci.org)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Floic-simon%2Fclub-q","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Floic-simon%2Fclub-q","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Floic-simon%2Fclub-q/lists"}