{"id":19339603,"url":"https://github.com/dsferruzza/party-time","last_synced_at":"2026-05-14T21:02:04.479Z","repository":{"id":41850405,"uuid":"161317507","full_name":"dsferruzza/party-time","owner":"dsferruzza","description":"Calcul des congés et jours non travaillés dans le cadre d'un travail à temps partiel.","archived":false,"fork":false,"pushed_at":"2023-03-15T04:21:33.000Z","size":3442,"stargazers_count":0,"open_issues_count":4,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-06T10:48:30.291Z","etag":null,"topics":["google-calendar","pwa","react","typescript"],"latest_commit_sha":null,"homepage":"https://dsferruzza.gitlab.io/party-time/","language":"TypeScript","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dsferruzza.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2018-12-11T10:33:14.000Z","updated_at":"2021-11-02T10:48:43.000Z","dependencies_parsed_at":"2024-11-10T03:34:58.113Z","dependency_job_id":null,"html_url":"https://github.com/dsferruzza/party-time","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dsferruzza%2Fparty-time","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dsferruzza%2Fparty-time/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dsferruzza%2Fparty-time/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dsferruzza%2Fparty-time/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dsferruzza","download_url":"https://codeload.github.com/dsferruzza/party-time/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240442564,"owners_count":19801925,"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":["google-calendar","pwa","react","typescript"],"created_at":"2024-11-10T03:23:07.233Z","updated_at":"2026-05-14T21:01:59.442Z","avatar_url":"https://github.com/dsferruzza.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Party Time\n\n[![LICENSE](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)\n[![pipeline status](https://gitlab.com/dsferruzza/party-time/badges/master/pipeline.svg)](https://gitlab.com/dsferruzza/party-time/commits/master)\n[![Get help on Codementor](https://cdn.codementor.io/badges/get_help_github.svg)](https://www.codementor.io/dsferruzza?utm_source=github\u0026utm_medium=button\u0026utm_term=dsferruzza\u0026utm_campaign=github)\n\nCalcul des congés et jours non travaillés dans le cadre d'un travail à temps partiel.\n\n_This app is only available in French, because it only makes sense for French people under the French work law._\n\n⚠️ _Main repository is here: https://gitlab.com/dsferruzza/party-time_ ⚠️\n\n## Copies d'écran\n\n![](screenshots/graph.png)![](screenshots/month.png)\n\n## Fonctionnalités\n\n- connexion via Google et récupération de l'agenda d'entreprise\n- qualifiation de chaque jour de l'année comme étant :\n  - un jour de weekend\n  - un jour férié\n  - un jour travaillé\n  - un jour de congé\n  - un jour _off temps partiel_ (non travaillé, mais pas déclaré comme congé)\n- visualisation mois par mois du nombre de jours travaillés, en congé ou _off temps partiel_\n- visualisation année par année du nombre de jours _off temps partiel_ disponibles et utilisés\n- fonctionnement hors-ligne (seules la re-synchronisation avec l'agenda et la mise à jour de l'application nécessitent d'être connecté)\n\n## Contexte requis\n\nCette application cible le contexte suivant :\n\n- travail en \"temps partiel\" pour une entreprise\n- contrat de travail en forfait jours\n- agenda d'entreprise sur Google Agenda\n\n## Utilisation\n\nL'application est disponible à l'adresse : https://dsferruzza.gitlab.io/party-time/\n\nPour permettre de détecter les jours de congés et les jours _off temps partiel_, il faut avoir dans l'agenda Google des événements dont le nom respecte un format donné qui est réglable.\nPar exemple :\n\n- le nom commence par `Congés` pour les jours de congé\n- le nom commence par `Absent` pour les jours _off temps partiel_\n\nCes événements peuvent durer plusieurs jours et recouvrir les weekends et jours fériés.\n\nLe serveur ne fait que servir l'application sous la forme d'un site statique.\nAucune donnée n'est stockée ou envoyée à des tiers.\nLes traitements restent en local au niveau du navigateur.\n\n### Configuration\n\n- **Identifiant client pour l'accès à l'API Google (client_id)** : voir la section suivante.\n- **Date minimum** : date à laquelle a commencé le temps partiel (les événements antérieurs sont ignorés). Doit être au format ISO 8601. Exemple : `2018-11-01T00:00:00+01:00`.\n- **Nombre de jours par an à travailler** : tel que défini dans le contrat de travail. Doit être un nombre entier, probablement inférieur ou égal à 218.\n- **Nombre de jours de congés payés reçus par an** : tel que défini dans le contrat de travail. Doit être un nombre entier, probablement proche de 25.\n- **Expression régulière pour reconnaitre les événements des jours off temps partiel** : doit être une [expression régulière valide](https://regex101.com/). Exemple : `^Absent|^RTT` (commence par le mot `Absent` ou le mot `RTT`).\n- **Expression régulière pour reconnaitre les événements des congés payés** : doit être une [expression régulière valide](https://regex101.com/). Exemple : `^Congés` (commence par le mot `Congés`).\n\n### Obtenir un _client_id_ Google\n\n- aller sur https://console.developers.google.com et se connecter avec le compte Google souhaité\n- créer un projet avec n'importe quel nom\n- sélectionner le projet ainsi créé dans le menu déroulant en haut à gauche\n- dans le `Tableau de bord`, cliquer sur le bouton `Activer les API et les services` et activer `Google Calendar API`\n- aller sur la page `Identifiants` via le menu de gauche\n- aller sur la page `Écran d'autorisation OAuth` via le menu en haut\n- remplir le champ `Nom de l'application` avec un n'importe quel nom\n- ajouter dans le champ `Domaines autorisés` le domaine de l'application (le vôtre ou celui de l'instance principale : `dsferruzza.gitlab.io `) et valider avec Entrée\n- valider le formulaire\n- créer un identifiant de type `ID client OAuth`\n- choisir le type `Application Web` et remplir un nom\n- ajouter dans le champ `URI de redirection autorisés` l'URL de l'application (la vôtre ou celle de l'instance principale : ` https://dsferruzza.gitlab.io/party-time `) et valider avec Entrée\n- valider le formulaire\n- récupérez votre **ID client**\n\n## Développement\n\n- installer les dépendances : `yarn install`\n- lancer l'application en mode développement : `yarn run start`\n\nCette application a été créée en utilisant [Create React App](https://github.com/facebook/create-react-app) ; voir le [README associé](README_create-react-app.md).\n\n## Licence\n\nLe code est sous [licence MIT](LICENSE).\n\nLe [logo de l'application](https://www.flaticon.com/free-icon/calendar_1195135) a été fait par [Freepik](https://www.freepik.com) et est disponible sous licence [CC 3.0 BY](http://creativecommons.org/licenses/by/3.0/).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdsferruzza%2Fparty-time","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdsferruzza%2Fparty-time","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdsferruzza%2Fparty-time/lists"}