{"id":21874389,"url":"https://github.com/ciukstar/reservare","last_synced_at":"2025-06-19T17:38:16.570Z","repository":{"id":245307501,"uuid":"817536654","full_name":"ciukstar/reservare","owner":"ciukstar","description":"Appointment booking web app","archived":false,"fork":false,"pushed_at":"2024-08-29T22:06:26.000Z","size":2346,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-26T17:41:48.248Z","etag":null,"topics":["app","appointment","booking","web"],"latest_commit_sha":null,"homepage":"https://reservare-i4rimw5qwq-de.a.run.app","language":"Haskell","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/ciukstar.png","metadata":{"files":{"readme":"README.fr.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":"2024-06-19T23:55:09.000Z","updated_at":"2024-08-29T22:06:30.000Z","dependencies_parsed_at":"2024-08-29T23:42:55.035Z","dependency_job_id":"b1dd09ea-fb5f-41f2-9a02-3881fcac6411","html_url":"https://github.com/ciukstar/reservare","commit_stats":null,"previous_names":["ciukstar/reservare"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ciukstar%2Freservare","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ciukstar%2Freservare/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ciukstar%2Freservare/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ciukstar%2Freservare/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ciukstar","download_url":"https://codeload.github.com/ciukstar/reservare/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244880660,"owners_count":20525515,"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","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":["app","appointment","booking","web"],"created_at":"2024-11-28T07:12:10.581Z","updated_at":"2025-03-21T23:18:23.630Z","avatar_url":"https://github.com/ciukstar.png","language":"Haskell","funding_links":[],"categories":[],"sub_categories":[],"readme":"[In english](https://github.com/ciukstar/reservare/blob/master/README.md)\n\n[În română](https://github.com/ciukstar/reservare/blob/master/README.ro.md)\n\n[На русском](https://github.com/ciukstar/reservare/blob/master/README.ru.md)\n\n\n# Reservare\n\nRéservations en ligne de prestations et de rendez-vous\n\n## Aperçu\n\n[« Reservare »](https://reservarefr-i4rimw5qwq-de.a.run.app) permet aux entreprises d'enregistrer des services et des ressources pour lesquels un client peut réserver et/ou prendre rendez-vous.  \n\n*Diagramme de cas d'utilisation*  \n![Use Case Diagram](static/img/Reservare-UCD.svg)\n\n## Réserver une prestation\n*Diagramme de machine d'état*  \n![State Machine Diagram](static/img/Reservare-Book-Service-SMD.svg)\n\n## Prendre rendez-vous\n*Diagramme de machine d'état*  \n![State Machine Diagram](static/img/Reservare-Make-Appointment-SMD.svg)\n\n## Superutilisateur\n* Nom d'utilisateur  \n  ```$YESOD_SUPERUSER_USERNAME```\n* Mot de passe  \n  ```$YESOD_SUPERUSER_PASSWORD```\n\nUn compte superutilisateur est défini au moment du déploiement. Le superutilisateur gère les autres utilisateurs et accorde ou révoque les privilèges d'administrateur à des utilisateurs spécifiques.\n\n## Intégration avec des API externes\n\n* E-mail: [Gmail API](https://developers.google.com/gmail/api/guides)\n\n  * Identifiant client  \n    ```$YESOD_GOOGLE_CLIENT_ID```\n  * Secret client  \n    ```$YESOD_GOOGLE_CLIENT_SECRET```\n\n* Passerelle de paiement: [Stripe](https://stripe.com/)\n  * Clé publique  \n    ```$YESOD_STRIPE_PK```\n  * Clé secrète  \n    ```$YESOD_STRIPE_SK```\n    \n  Pour simuler un paiement réussi, utilisez les cartes de test de la [liste suivante](https://stripe.com/docs/testing?testing-method=card-numbers#cards).\n\n  Pour simuler les paiements refusés par l'émetteur, utilisez les cartes de test de la [liste suivante](https://stripe.com/docs/testing?testing-method=card-numbers#declined-payments).\n\n* Passerelle de paiement: [YooKassa](https://yookassa.ru/)\n  * ID de la boutique  \n    ```$YESOD_YOOKASSA_SHOP_ID```\n  * Clé secrète  \n    ```$YESOD_YOOKASSA_SECRET_KEY```\n\n  Pour simuler un paiement réussi, utilisez les cartes de test de la [liste suivante](https://yookassa.ru/developers/payment-acceptance/testing-and-going-live/testing#test-bank-card-success).\n\n  Pour simuler les paiements refusés par l'émetteur, utilisez les cartes de test de la [liste suivante](https://yookassa.ru/developers/payment-acceptance/testing-and-going-live/testing#test-bank-card-cancellation-details).\n\n## Optimisation du moteur de recherche\n* Google SEO  \n  ```$YESOD_GOOGLE_SITE_VERIFICATION```\n* Bing SEO  \n  ```$YESOD_MS_VALIDATE```\n* Yandex SEO  \n  ```$YESOD_YANDEX_VERIFICATION```\n\n\n## Entités de base\n\n### Utilisateur\nUn nouvel utilisateur peut [s'inscrire](https://reservarefr-i4rimw5qwq-de.a.run.app/auth/login) en utilisant un compte Google existant ou en utilisant une adresse e-mail vérifiée. [L'API Gmail](https://developers.google.com/gmail/api/guides) est utilisée comme intermédiaire pour envoyer des liens de vérification vers la boîte de réception de l'utilisateur.\n\nUn utilisateur peut se voir attribuer le rôle d'administrateur par un superutilisateur ou par un autre administrateur. Seuls les utilisateurs disposant du rôle d'administrateur ont accès aux données administratives.\n\n\n### Entreprise\n...\n\n### Espace de travail\n...\n\n### Modalité de paiement\nPour chaque espace de travail, vous pouvez spécifier une ou plusieurs options de paiement en sélectionnant son type, son nom et sa passerelle de paiement.\n\nSi plusieurs passerelles de paiement sont configurées pour un espace de travail, elles seront présentées comme options à l'utilisateur qui réserve le rendez-vous.\n\nSi un espace de travail n'a qu'une seule option de paiement (passerelle de paiement) configurée, elle sera alors utilisée par défaut et représentera ainsi une étape de moins dans le processus de réservation.\n\nAu moins une option de paiement (passerelle de paiement) doit être spécifiée pour l'espace de travail. Si aucune option n'est spécifiée, une erreur se produira lors de la réservation.\n\n### Service\n...\n\n### Secteur\nUn secteur représente le type d’activité du service fourni. Principalement utilisé comme clés de recherche pour les services.\n\nSi nécessaire, une hiérarchie de ces secteurs peut être définie.\n\n### Personelle\n...\n\n### Affectation\n...\n\n### Horaire de travail\n...\n\n### Réservation\n...\n\n\n*Diagramme entité-relation*  \n![Entity Relationship Diagram](static/img/Reservare-ERD.svg)\n\n## Démo\n\n[Cliquez ici pour voir la démo](https://reservarefr-i4rimw5qwq-de.a.run.app)\n\n_* Cliquez sur le bouton [![Comptes d'utilisateurs de démonstration](demo/button-demo-accounts.png)](https://reservarefr-i4rimw5qwq-de.a.run.app/auth/login) pour obtenir une liste des comptes d'utilisateurs de démonstration_\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fciukstar%2Freservare","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fciukstar%2Freservare","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fciukstar%2Freservare/lists"}