Looma est une application de bureau local-first pour organiser ses projets de tricot, crochet et crochet tunisien.
Elle centralise le stock de laine, les patrons, les documents, les images de projets et les statistiques d'utilisation, sans compte utilisateur ni service distant obligatoire. Les données restent sur la machine, dans une base SQLite et un dossier de documents local.
Looma est construit avec Avalonia UI et vise Windows, macOS et Linux.
- Suivi des projets par statut : liste des souhaits, en cours, en pause ou fini.
- Association d'un projet à un patron et à une ou plusieurs laines du stock.
- Dates de début et de fin, notes, recherche et filtrage.
- Ajout d'images au projet, renommage au moment de l'import et consultation en détail.
- Actions rapides pour démarrer, mettre en pause, reprendre ou terminer un projet.
- Finalisation avec déduction de laine par pelote, poids ou longueur.
- Gestion des laines avec marque, nom, matière, couleurs, poids, longueur et quantité disponible.
- Ajustement du stock par pelote, par poids ou par longueur.
- Calcul automatique des quantités totales en grammes, mètres et pelotes.
- Sélection de la taille d'aiguilles via les plages de laine du domaine.
- Affichage d'une image de type de laine selon la plage d'aiguilles choisie.
- Recherche, pagination et fiche détaillée pour chaque laine.
- Création de patrons personnels ou externes.
- Types pris en charge : crochet, crochet tunisien et tricot.
- Notes, URL source, dates, documents associés et projets liés.
- Import, renommage et consultation de documents rattachés aux patrons.
- Navigation directe entre un patron et ses projets.
- Import de documents dans le dossier local de Looma.
- Prise en charge des fichiers génériques pour les patrons et des images pour les projets.
- Recherche, pagination, renommage et suppression.
- Retour rapide vers le patron ou le projet lié à un document.
- Graphique d'utilisation de laine basé sur les mouvements de stock.
- Filtres par période : tout, année en cours, six derniers mois, mois en cours ou semaine en cours.
- Filtre par type de patron.
- Affichage des quantités en pelotes, grammes ou mètres.
- Interface disponible en français, anglais, néerlandais, allemand et espagnol.
- Thèmes JSON importables, exportables, ouvrables et supprimables.
- Thèmes fournis au démarrage dans
src/Looma.App/Seed/Themes. - Vérification des mises à jour, notes de version et installation via Velopack.
- Base de données SQLite.
- Documents importés copiés dans le dossier de données de l'application.
- Images de projets stockées comme documents locaux.
- Aucun compte, aucune synchronisation cloud imposée.
- .NET 10
- Avalonia UI 12
- Entity Framework Core
- SQLite
- Velopack
- xUnit, FluentAssertions et NSubstitute
La solution est découpée en plusieurs projets :
src/Looma.Domain: entités, services métier, recherches, statistiques et contrats.src/Looma.Infrastructure: SQLite, repositories, migrations EF Core et stockage local.src/Looma.Presentation: view models, navigation, traductions, notifications et thèmes.src/Looma.Views: vues Avalonia, styles, contrôles et converters.src/Looma.App: application de bureau, injection de dépendances, assets, seeds et mises à jour.
- .NET 10 SDK
dotnet run --project src/Looma.Appdotnet testdotnet buildLes traductions de l'application sont dans src/Looma.Presentation/Resources :
Translations.resx: ressources neutres.Translations.fr.resx: français.Translations.en.resx: anglais.Translations.nl.resx: néerlandais.Translations.de.resx: allemand.Translations.es.resx: espagnol.
La liste des langues affichées dans les réglages est déclarée dans TranslationService.SupportedLanguage.
Les arguments de démarrage sont gérés dans src/Looma.App/App.axaml.cs.
Passe les arguments après -- avec dotnet run :
dotnet run --project src/Looma.App -- --localUtilise un dossier de données local au projet :
./Data
Sans --local, Looma stocke ses données dans le dossier applicatif du système, dans un répertoire Looma.
Supprime la base SQLite et vide le dossier de documents avant le démarrage.
À utiliser avec attention :
dotnet run --project src/Looma.App -- --local --clearRemplit une base vide avec des données de démonstration :
- 10 laines
- 3 patrons
- 1 projet par statut
- documents de démonstration attachés aux patrons
Le seeder ne s'exécute que sur une base vide. Pour régénérer les données de démo, combine-le avec --clear :
dotnet run --project src/Looma.App -- --local --clear --seedGénère N éléments par collection principale, avec N >= 0.
Exemple avec 25 enregistrements générés :
dotnet run --project src/Looma.App -- --local --clear --seed-25Les valeurs invalides déclenchent une erreur d'argument. Par exemple, --seed--1 et --seed-abc sont rejetés.
Utiliser une base locale isolée :
dotnet run --project src/Looma.App -- --localRéinitialiser la base locale :
dotnet run --project src/Looma.App -- --local --clearRéinitialiser avec les données de démonstration :
dotnet run --project src/Looma.App -- --local --clear --seedRéinitialiser avec un jeu de données plus large :
dotnet run --project src/Looma.App -- --local --clear --seed-100Looma stocke :
looma.dbpour la base SQLite.documents/pour les documents importés et les images de projets.themes/pour les thèmes JSON importés ou exportés.
Avec --local, ces fichiers sont créés dans ./Data.
Le site de Looma est disponible ici : looma.redyd.dev.
Ce projet est distribué sous licence GNU Affero General Public License v3.0. Le code est ouvert à la lecture, mais pas aux contributions ni à l'usage commercial.
