Écran de caissier F-POS avec trois articles scannés, sous-total, taxe et total

F-POS

Prototype académique · Partiellement implémenté

octobre à décembre 2025Équipe de 4 · 6 commits sur 56

Le projet

F-POS est un MVP académique de point de vente construit en Java avec JavaFX par une équipe de quatre personnes. Le prototype couvre la gestion des produits, la création de panier, le calcul des taxes, les paiements comptant et carte simulés, les reçus, et l'administration de base des ventes.

Ma contribution

Ma contribution s'est concentrée sur les modèles de domaine Produit, Panier et ElementPanier, leurs tests unitaires, l'interface de caissier, et l'interface administrative de gestion des produits.

Le plus difficile

Un des principaux défis était de garder les calculs monétaires cohérents sans aucun stockage persistant. Chaque article du panier garde une référence à son produit tout en capturant le prix unitaire au moment où il est ajouté, donc une quantité peut changer sans altérer le prix d'origine de cette ligne de panier. Les valeurs monétaires utilisent BigDecimal, et les produits taxables et non taxables sont traités séparément.

L'état de l'application vit dans un singleton MockDB, les contrôleurs passant par des services et des DAO plutôt que d'y toucher directement. Les écrans reconstruisent leurs services à chaque navigation, donc il n'y a pas de synchronisation réactive entre deux écrans ouverts.

Ce que je changerais

Le projet demeure un MVP incomplet. Une version orientée production remplacerait la base de données en mémoire par SQLite, centraliserait la configuration des taxes, validerait le stock avant d'accepter un paiement, et compléterait les flux de remboursement, de session de caisse et de recherche de ventes.

Tableau de gestion des produits F-POS, avec une colonne Taxable marquant le jus d'orange comme non taxable
Le tableau administrateur marque le jus d'orange non taxable, donc l'écran de caissier ne taxe que 12,93$ du sous-total de 16,43$ : 1,94$ à 14,975%.
Écran de paiement F-POS : montant dû de 18,37$ avec boutons comptant et carte
Le paiement reporte les 18,37$ calculés sur l'écran de caissier jusqu'aux chemins comptant et carte, qui sont simulés plutôt que branchés à un terminal.
← Tous les projets