{"id":20588452,"url":"https://github.com/hokagecv/scheduler-api","last_synced_at":"2026-04-13T18:01:17.322Z","repository":{"id":162139469,"uuid":"626952630","full_name":"hokageCV/scheduler-api","owner":"hokageCV","description":null,"archived":false,"fork":false,"pushed_at":"2023-05-06T05:48:31.000Z","size":67,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-23T20:36:39.445Z","etag":null,"topics":["docker","google","google-calendar-api","swagger","typescript","zod"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/hokageCV.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":"2023-04-12T13:42:20.000Z","updated_at":"2023-04-12T17:50:03.000Z","dependencies_parsed_at":null,"dependency_job_id":"bdd21b73-7807-425f-86a8-ed2201e6a5cc","html_url":"https://github.com/hokageCV/scheduler-api","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/hokageCV/scheduler-api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hokageCV%2Fscheduler-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hokageCV%2Fscheduler-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hokageCV%2Fscheduler-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hokageCV%2Fscheduler-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hokageCV","download_url":"https://codeload.github.com/hokageCV/scheduler-api/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hokageCV%2Fscheduler-api/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31764317,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-13T15:25:13.801Z","status":"ssl_error","status_checked_at":"2026-04-13T15:25:09.162Z","response_time":93,"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":["docker","google","google-calendar-api","swagger","typescript","zod"],"created_at":"2024-11-16T07:24:44.286Z","updated_at":"2026-04-13T18:01:17.303Z","avatar_url":"https://github.com/hokageCV.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Scheduler API\n\nAn api to schedule google meets with each other.\n\n### Features\n\n- Create slots in which other's can schedule meetings\n- Schedule meetings with other's\n- Get a list of all your meetings\n- Automatically add google meet event to google calendar\n\n### My Learnings\n\n- Zod\n  - Earlier I have used express-validator. This is the first time I am using Zod. It has lot of tiny inbuild validators which I used to write by myself in express-validator\n  - I liked its way of presenting the errors in a structured manner. And it also generates error messages itself\n- Swagger\n  - Swagger is good for large projects but personally I didn't liked it much due to its highly verbose syntax\n- Docker\n  - This was a bit challenging part\n- Google Calendar Integration\n  - This was the most challenging part as well as the part where I learnt the most\n  - Most of the time for the project creation went in this\n  - Learnt a lot about OAuth and how it works\n\n### My Journey\n\nFirst I set up the basic structure like the handlers, routes, models \u0026 database.\n\nInitially for the ORM I used prisma. But it seemed alienated and considering the time constraint I had selected, I switched to mongoose.\n\nThen I created schema in zod for validation for the input. I liked its simplicity and the way it presents the errors. All the functions out of the box are very useful.\n\nAfter than I created the documentation using swagger.Refered to some youtube videos. It is easy but a bit verbose.\n\nThen comes the calendar integration part, which was the most challenging. I had to learn a lot about OAuth and how it works. [This](https://youtu.be/hHRFjbGTEOk) video explains it very well.\nMain problem that I was facing was to get the token from browser to server, this cosumed a lot of time.  \nLater I found that we can do OAuth from postman itself and was relieved.\n\nThen using the calendar API, I function that was creating events in the calendar into the handler that booked the slot. When the first event was created in the calendar, it felt like a huge achievement. Later I added the google meet link to the event.\n\nAfter that I created the docker file and created an image of the project.\n\nAt last, I deployed the project on Railway.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhokagecv%2Fscheduler-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhokagecv%2Fscheduler-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhokagecv%2Fscheduler-api/lists"}