{"id":48832677,"url":"https://github.com/mathieumarthy/springstorestock","last_synced_at":"2026-04-14T21:03:32.171Z","repository":{"id":209890842,"uuid":"725185078","full_name":"MathieuMarthy/SpringStoreStock","owner":"MathieuMarthy","description":null,"archived":false,"fork":false,"pushed_at":"2023-12-14T09:57:21.000Z","size":201,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2023-12-14T18:26:05.168Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Kotlin","has_issues":true,"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/MathieuMarthy.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}},"created_at":"2023-11-29T16:01:31.000Z","updated_at":"2023-12-07T08:09:07.000Z","dependencies_parsed_at":"2023-12-10T17:37:38.703Z","dependency_job_id":null,"html_url":"https://github.com/MathieuMarthy/SpringStoreStock","commit_stats":null,"previous_names":["mathieumarthy/springstorestock"],"tags_count":0,"template":null,"template_full_name":null,"purl":"pkg:github/MathieuMarthy/SpringStoreStock","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MathieuMarthy%2FSpringStoreStock","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MathieuMarthy%2FSpringStoreStock/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MathieuMarthy%2FSpringStoreStock/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MathieuMarthy%2FSpringStoreStock/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MathieuMarthy","download_url":"https://codeload.github.com/MathieuMarthy/SpringStoreStock/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MathieuMarthy%2FSpringStoreStock/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31815083,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-14T18:05:02.291Z","status":"ssl_error","status_checked_at":"2026-04-14T18:05:01.765Z","response_time":153,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":[],"created_at":"2026-04-14T21:03:31.301Z","updated_at":"2026-04-14T21:03:32.157Z","avatar_url":"https://github.com/MathieuMarthy.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"== Store Stock\n\nLe but de ce projet est de créer un système de gestion de stock et de panier sous forme de micro services.\n\nL'architecture micro-services permet d'isoler les parties métier les unes des autres pour qu'elles puissent évoluer plus facilement.\n\nDans notre cas il y en aura trois :\n\n=== Les articles\n\nCela peut être n'importe quel type d'article.\nUn article doit avoir à minima :\n\n- un ID,\n- un nom,\n- un prix,\n- une quantité en stock,\n- la date de la dernière mise à jour.\n\nIl faudra une API pour pouvoir administrer les articles (création, supression, ajout de quantité...).\n\n=== Les utilisateurs\n\nVous pouvez vous inspirer de ce qui a été fait en TP jusqu'à présent.\nUn utilisateur doit avoir au minimum :\n\n- un email,\n- un nom,\n- une adresse de livraison,\n- un champ permettant d'identifier s'ils sont abonnés à la newsletter,\n- la date de la dernière commande.\n\nIl faudra une API pour pouvoir administrer les utilisateurs (création de compte, suppression...).\n\n=== Les paniers\n\nLes paniers font le lien entre les utilisateurs et les produits. \nLes règles sont les suivantes :\n\n- un panier est obligatoirement lié à un utilisateur,\n- un utilisateur ne peut avoir qu'un seul panier,\n- on ne peut pas ajouter plus de quantités dans son panier s'il n'y a pas assez de stock,\n- on peut supprimer des éléments du panier,\n- à la validation du panier, si le stock n'est plus suffisant, renvoi d'un message d'erreur,\n- à la validation du panier, le stock est mis à jour et la date de dernière commande est modifiée.\n\n== Contraintes\n\nLe service panier devra proposer deux implémentations de base de données, une en mémoire et une avec une base H2.\n\nChaque service doit exposer un swagger-ui avec une séparation à l'aide de Tags entre les APIs d'administration (ex : création d'un produit) et les APIs métiers (décrémentation du stock lors d'une vente).\n\nUne couverture de tests est requise pour chaque service, avec ce qui vous semble le plus pertinent suivant les parties (test unitaire, test d'intégration…).\n\nLes logs doivent permettre de suivre les actions et les cas d'erreurs doivent être traités.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmathieumarthy%2Fspringstorestock","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmathieumarthy%2Fspringstorestock","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmathieumarthy%2Fspringstorestock/lists"}