{"id":24678909,"url":"https://github.com/isodevmate/queueing-backend","last_synced_at":"2026-05-07T19:12:45.491Z","repository":{"id":203720099,"uuid":"710240769","full_name":"IsoDevMate/Queueing-Backend","owner":"IsoDevMate","description":null,"archived":false,"fork":false,"pushed_at":"2024-02-23T17:26:04.000Z","size":145,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-26T13:19:26.509Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","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/IsoDevMate.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}},"created_at":"2023-10-26T09:54:47.000Z","updated_at":"2023-11-09T09:36:07.000Z","dependencies_parsed_at":"2024-02-23T18:42:41.709Z","dependency_job_id":null,"html_url":"https://github.com/IsoDevMate/Queueing-Backend","commit_stats":null,"previous_names":["isodevmate/queueing-backend"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IsoDevMate%2FQueueing-Backend","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IsoDevMate%2FQueueing-Backend/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IsoDevMate%2FQueueing-Backend/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IsoDevMate%2FQueueing-Backend/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/IsoDevMate","download_url":"https://codeload.github.com/IsoDevMate/Queueing-Backend/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244846338,"owners_count":20520111,"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":"2025-01-26T13:19:28.779Z","updated_at":"2025-11-04T03:03:55.764Z","avatar_url":"https://github.com/IsoDevMate.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Queueing-Backend\n\n\n\nUse a database like MongoDB to store user and service data. Each user can have a document with fields like name, email, phone number. Each service can have a document with fields like name, description, estimated wait time.\nWhen a user requests a service, create a ticket document with fields like user id, service id, status (queued, in progress, completed), and estimated wait time. Generate a random ticket ID and return that to the user.\nTo calculate estimated wait time, you can check the number of queued tickets for that service and multiply by the average time per ticket. Update this field as tickets are queued/completed.\nFor admin authentication, you can use JWT tokens. When admin logs in, generate a token that gets sent on future requests to authenticate them.\nFor admin verification of users, you can have an OTP code sent to user's email when their ticket is next in line. The user shows this to the admin to verify.\n\u003ch3\u003eSet up webhook endpoints\u003c/h3\u003e \n for actions like user booking a ticket, admin beginning a ticket, admin completing a ticket. Use these to update ticket status and send email notifications.\nMake sure queues and tickets are locked/serialized when updating to prevent race conditions.\n\n\nwe'll be using square developer as our webhook config \nhere is the response data they give us \n\n{\n  \"merchant_id\": \"ML3X49B64V1C4\",\n  \"location_id\": \"L9R0X9X5SGDBJ\",\n  \"type\": \"booking.created\",\n  \"event_id\": \"de33fbac-5b88-4be3-a5cd-104312306342\",\n  \"created_at\": \"2023-10-31T12:24:50Z\",\n  \"data\": {\n    \"type\": \"booking\",\n    \"id\": \"i2id2g3enyspi7:0\",\n    \"object\": {\n      \"booking\": {\n        \"appointment_segments\": [\n          {\n            \"duration_minutes\": 30,\n            \"service_variation_id\": \"T3WUWYFJOVW2EU6XGRU5YG4A\",\n            \"service_variation_version\": 1605808735978,\n            \"team_member_id\": \"_4GsfYnqGHyurOwzWdKj\"\n          }\n        ],\n        \"created_at\": \"2020-12-08T19:56:53Z\",\n        \"customer_id\": \"SSKBT02ECWZXK6W3VWYC78E52R\",\n        \"customer_note\": \"\",\n        \"id\": \"i2id2g3enyspi7\",\n        \"location_id\": \"L9R0X9X5SGDBJ\",\n        \"seller_note\": \"\",\n        \"start_at\": \"2020-12-17T16:00:00Z\",\n        \"status\": \"ACCEPTED\",\n        \"updated_at\": \"2020-12-08T19:56:53Z\",\n        \"version\": 0\n      }\n    }\n  }\n}\n\ncreate a customer \ncreate a booking \nsetup webhook to notify admin \nadd a pub/sub eg Bulljs publish to consumer which in this case maybe socket .io which pushes realtime data to the admin\n\n ### STILL WORKING ON THE PRODUCER LOGIC \n producer.js file not fully wrking  it should add a ticket to the queue then chack if completed remove from the queue \n ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fisodevmate%2Fqueueing-backend","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fisodevmate%2Fqueueing-backend","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fisodevmate%2Fqueueing-backend/lists"}