FletchScore
Application open source d'enregistrement des scores de compétitions de tir à l'arc (FFTL / IFAA), tous formats (Indoor, Flint, Field, Hunter, Animal...). Projet frère de FletchTime (chronométrage), né d'un usage de club (Les Aigles 77 / Archers Libres de Fontaine le Port).
Ce que ça fait
- Enregistrement des scores par compétiteur, volée par volée
- Classements et podiums automatiques par catégorie (sexe, âge, style)
- Export Excel / PDF / CSV
- Vue compétiteur web (QR code) pour proposer un score, soumis à validation de l'organisateur, y compris pour un tiers (procuration)
Voir le cahier des charges complet pour le détail.
Installation
Trois façons d'installer FletchScore, selon ta situation :
1. pip install fletchscore -- PC, ou Pydroid 3 (Android)
Version stable (PyPI), une fois une première Release publiée :
pip install fletchscore
fletchscore
Dernière version de développement (TestPyPI), publiée à chaque push
sur main/master -- utile pour tester une correction pas encore
sortie en version stable. TestPyPI est un index séparé et quasiment vide
: sans --extra-index-url, pip y cherche aussi les dépendances
(fpdf2, openpyxl, customtkinter) et échoue à les trouver. La commande
suivante cherche fletchscore sur TestPyPI et bascule sur le vrai PyPI
pour tout le reste :
pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple/ fletchscore
fletchscore
2. Exécutable autoporteur (Windows / Linux) -- PC dédié, sans Python
Chaque Release GitHub
contient un exécutable prêt à l'emploi (dossier --onedir, pas
d'installation de Python nécessaire) : télécharge l'archive
correspondant à ton système (FletchScore-<version>-windows.zip ou
FletchScore-<version>-linux.tar.gz), décompresse-la, lance
fletchscore (ou fletchscore.exe sous Windows) depuis le dossier
extrait.
Chaque Release inclut aussi FletchScore-<version>-docs.tar.gz : la
documentation technique (Sphinx) telle qu'elle était pour ce tag précis
-- contrairement à la version publiée sur GitHub Pages (toujours celle
de main), utile pour consulter la doc correspondant exactement à une
version installée. Décompresse et ouvre index.html.
Le wheel et le sdist (fletchscore-<version>-py3-none-any.whl,
fletchscore-<version>.tar.gz) sont eux aussi joints à chaque Release --
permet d'installer le paquet directement depuis GitHub sans dépendre de
PyPI.
3. Depuis les sources -- pour contribuer, y compris sur Pydroid 3
git clone https://github.com/MrFanghoDev/fletchscore.git
cd fletchscore
pip install -e ".[dev]"
fletchscore
Voir CONTRIBUTING.md pour le détail complet du workflow sur Pydroid 3 (GitSync, Terminal).
Contribuer
Envie de proposer un correctif, une idée, ou juste signaler un bug ? Voir CONTRIBUTING.md (français/anglais) -- processus volontairement simple, flux classique fork/branche/Pull Request.
Merci aux membres du club qui ont testé l'outil et proposé des idées au fil du développement -- voir REMERCIEMENTS.md.
Une faille de sécurité à signaler ? Voir SECURITY.md -- pas d'Issue publique pour ça.
Qualité continue
Chaque push et pull request déclenche .github/workflows/test.yml :
formatage/lint (Black + Ruff -- corrigés et recommités automatiquement sur
un push direct, juste vérifiés sur une pull request) puis la suite de
tests complète.
En local :
pip install -e ".[dev]"
black src tests
ruff check --fix src tests
python -m unittest discover -s tests -v # ou : python run_tests.py
Publication (pour les mainteneurs)
Trois workflows GitHub Actions couvrent toute la chaîne, organisés par
type de production plutôt que par outil : test.yml (lint + tests),
docs.yml (doc Sphinx : construction, publication GitHub Pages,
archivage sur Release), build.yml (paquet Python + exécutables
PyInstaller).
- TestPyPI (essai avant publication réelle) : publication automatique
via
.github/workflows/build.yml(jobpublish-testpypi) à chaque push surmain/masterqui touche au code. La version est dérivée automatiquement du tag git le plus proche parsetuptools_scm(voirpyproject.toml) : sur un commit qui n'est pas exactement un tag, elle inclut le nombre de commits depuis ce tag (ex.0.3.1.dev4), donc jamais de conflit de version sur TestPyPI, sans bricolage manuel. Configuration ponctuelle sur test.pypi.org/manage/account/publishing -- compte séparé de pypi.org, à créer indépendamment sur test.pypi.org. Le champ "Workflow name" doit êtrebuild.yml. - PyPI (
pip install fletchscore) : publication automatique via.github/workflows/build.yml(jobpublish-pypi, Trusted Publishing OIDC, sans jeton API) à chaque Release GitHub. Configuration ponctuelle nécessaire sur pypi.org/manage/account/publishing -- le champ "Workflow name" doit êtrebuild.yml. À faire une fois que les essais sur TestPyPI sont concluants : contrairement à TestPyPI, un numéro de version publié sur PyPI ne peut plus jamais être réutilisé ni supprimé. - Exécutables : voir section 2 ci-dessus.
Documentation
Documentation technique (Sphinx) : specs (cahier des charges), guide utilisateur, guide développeur, référence de l'API Python générée depuis le code. En local :
pip install -e ".[docs]" # ou : pip install -r docs/requirements.txt
sphinx-build -b html docs docs/_build/html
Ouvrir ensuite docs/_build/html/index.html dans un navigateur.
Elle est aussi publiée automatiquement sur GitHub Pages à chaque tag
(voir .github/workflows/docs.yml). Configuration à faire une seule
fois sur GitHub : Settings → Pages → Source : "GitHub Actions".
État du projet
v0.1, v0.2 et v0.3 complètes -- 502 tests, tous verts. Voir
docs/roadmap.md pour le détail du plan de développement par version.
Licence
Release files for fletchscore 0.3.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| fletchscore-0.3.3.tar.gz | 349.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| fletchscore-0.3.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 510.7 kB
Release files / fletchscore-0.3.3.tar.gz
| Download URL | fletchscore-0.3.3.tar.gz |
|---|---|
| Size | 349.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2b0274737904713680d7604318b74a7137d2a4ba2cced431f8bea4266729f62d
|
|
BLAKE2b-256 checksum How to use checksums |
6f92813e3213c54d9d5197501b612e41b150ba10f56155807e07b16bad8674c3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 10, 2026.
Transparency logRelease files / fletchscore-0.3.3-py3-none-any.whl
| Download URL | fletchscore-0.3.3-py3-none-any.whl |
|---|---|
| Size | 160.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a15f93c1e502ab1f8da7ca7a72ab6893ef51401285c0c5370a5728cc500263a9
|
|
BLAKE2b-256 checksum How to use checksums |
5ed120ac0a0f228262164c309b649f724021c28d04daf9714fe6731829db908f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 10, 2026.
Transparency log