{"id":22903932,"url":"https://github.com/tracktor/test_calendar_availabities","last_synced_at":"2025-04-01T07:56:48.401Z","repository":{"id":39702223,"uuid":"113356860","full_name":"Tracktor/test_calendar_availabities","owner":"Tracktor","description":"candidate test using minitest","archived":false,"fork":false,"pushed_at":"2023-03-08T19:48:36.000Z","size":56,"stargazers_count":0,"open_issues_count":6,"forks_count":3,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-07T04:42:02.215Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Ruby","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/Tracktor.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,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-12-06T19:11:07.000Z","updated_at":"2021-11-04T14:57:47.000Z","dependencies_parsed_at":"2025-02-07T04:34:01.478Z","dependency_job_id":"ba5cde9a-5a9a-40b3-9940-8a26c83c1282","html_url":"https://github.com/Tracktor/test_calendar_availabities","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/Tracktor%2Ftest_calendar_availabities","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tracktor%2Ftest_calendar_availabities/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tracktor%2Ftest_calendar_availabities/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tracktor%2Ftest_calendar_availabities/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Tracktor","download_url":"https://codeload.github.com/Tracktor/test_calendar_availabities/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246604621,"owners_count":20804100,"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":[],"created_at":"2024-12-14T02:39:29.262Z","updated_at":"2025-04-01T07:56:48.206Z","avatar_url":"https://github.com/Tracktor.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Test technique Tracktor : gestion des disponibilités\n\n## Setup\n\nVoici une application Rails contenant ce dont tu as besoin pour faire le test technique\n\n* sqlite en base de données (comme cela pas de serveur a installé en local)\n* milligram pour la partie css\n* mini-test pour la partie test\n* rails standard pour le reste (sans ActiveStorage, ActionCable, sans webpack)\n\nFork le projet en local et c'est parti\n\n1. `bundle install`\n2. `rails db:setup` (créer la base et seed quelques données de test)\n4. `rails server`\n5. Rends toi sur [la page d'acceuil de l'appli](http://localhost:3000)\n3. À toi de jouer maintenant\n\n**Points d'attention**\n\n- envoie nous les résultats par mail en zip sans oublier le `.git` pour avoir ton dépôt complet.\n- ne soumets pas de PR sur ce dépôt pour tes résultats\n- rien n'est fixe sur ce test, si tu es plus à l'aise avec `rspec` au lieu de `mini-test`\n  mets le en place et explique nous pourquoi. Tu es libre de tes choix d'implémentation\n- pense aux details : historique git, qualité du code, test, etc...\n\n\n## Le test\n\n\nLe test se compose de 3 parties\n\n1. Compléter l'implémentation de la méthode `Event.availabilities`\n\nL'objectif ici est d'écrire une méthode permettant de connaître les disponibilités d'un agenda\nen fonction des évènements attachés à celui-ci.\nLa méthode prend en entrée une date et recherche toutes les disponibilités sur les 7 jours\nsuivants en fonction des événements existants.\n\nLes évènements sont de deux types:\n\n - 'opening' qui correspond à des périodes de disponibilité pour une journée donnée, et peut être récurrents à la semaine.\n - 'appointment' qui correspond à des périodes d'occupation.\n\nLa mission : faire passer le test unitaire ci-joint et rajouter les tests des cas limites qui te semblent pertinents.\n\nExemple de retour attendu:\n\n```\n[\n  {\"date\":\"2014/08/04\",\"slots\":[\"12:00\",\"13:30\"]},\n  {\"date\":\"2014/08/05\",\"slots\":[\"09:00\", \"09:30\"]},\n  {\"date\":\"2014/08/06\",\"slots\":[]},\n  {\"date\":\"2014/08/07\",\"slots\":[\"15:30\",\"16:30\",\"16:45\",\"17:00\"]},\n  {\"date\":\"2014/08/08\",\"slots\":[]},\n  {\"date\":\"2014/08/09\",\"slots\":[\"14:00\", \"14:30\"],\"substitution\":null},\n  {\"date\":\"2015/08/10\",\"slots\":[]}\n]\n\n```\n\n2. Afficher les events déjà créer pour les 2 prochains mois groupés par mois et année\n\n3. Faire une UI pour afficher les résultats d'un recherche de disponibilité\n   via la methode `Event.availabilities`\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftracktor%2Ftest_calendar_availabities","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftracktor%2Ftest_calendar_availabities","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftracktor%2Ftest_calendar_availabities/lists"}