{"id":26198185,"url":"https://github.com/techbeansaus/res-easy-services","last_synced_at":"2026-04-29T05:05:30.529Z","repository":{"id":249624518,"uuid":"831977874","full_name":"techbeansaus/res-easy-services","owner":"techbeansaus","description":"A micro service based backend for restaurant reservation system- a multi tenant application. Technologies used are Node JS, Mongo DB and nginx","archived":false,"fork":false,"pushed_at":"2024-08-25T13:01:15.000Z","size":199,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-08-25T14:23:28.025Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://res-easy-services.vercel.app","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/techbeansaus.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":"2024-07-22T05:38:45.000Z","updated_at":"2024-08-25T14:23:28.810Z","dependencies_parsed_at":"2024-07-22T10:07:35.450Z","dependency_job_id":"204947f4-5297-46b4-b158-04f9de747743","html_url":"https://github.com/techbeansaus/res-easy-services","commit_stats":null,"previous_names":["techbeansaus/res-easy-services"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/techbeansaus%2Fres-easy-services","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/techbeansaus%2Fres-easy-services/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/techbeansaus%2Fres-easy-services/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/techbeansaus%2Fres-easy-services/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/techbeansaus","download_url":"https://codeload.github.com/techbeansaus/res-easy-services/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243147257,"owners_count":20243745,"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-03-12T02:50:52.504Z","updated_at":"2025-12-26T05:01:58.938Z","avatar_url":"https://github.com/techbeansaus.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n\n# Introduction\nres-easy-services host the backend code required to handle the business logic for restaurant reservation system.\n\n\n# Architecture\nThe repo is composed of 4 node js services, each service expose a set of APIs and runs on a particular port.\nIn order to abstract the ports from the outside world, an API gateway service is implemented using nginx which uses reverse proxy to route requests to a particular service.\n\n![alt text](image.png)\n\nSo, from an external system or the frontend of the application, the requests would be made as if it is interacting with single system. However, there are multiple services in the backend doing their respective job.\n\n# Run the app\n\nIn the root, run `docker compose build`\nfollowed by \n`docker compose up -d`\n\nNOTE: Try sudo if any permission error occurs\n\n# Future scope\n1) Evaluate the benefit of having a DB Connection service so each service does not maintain a db connection. Instead all requests are routed via a db service. But in that case we are creating a single point of failure as well for the whole system which is not great idea. But still need to see if giving services access to the db individually holds any value.\n\n2) Add authentication and authorisation\n\n3) Test all the endpoints and validate the use case\n\n4) * Develop a front end for the customers to make reservations\n\n5) * Develop a service which can send an email\n\n6) * Call the email service for sending an email to the admin of the restaurant\n\n7) * Call the email service to send email to the customer for the reservation and its current status\n\n# MVP specification\n\n1) A single page website for the SaaS business where new restaurants can sign up\nRestaurant enters the following details to sign up\nA new tenant is created. The tenant then logs in and can create restaurant and set it up.\nSet its name,\n          address,\n          aggregateRating,\n          priceRange,\n          telephone,\n          servesCuisine,\n          url,\n          image,\n          geo,\n          openingHours\n\n          \n\n\n2) Restaurant is provided with a hosted page where their customers can make dine-in bookings.\n\n\n\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftechbeansaus%2Fres-easy-services","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftechbeansaus%2Fres-easy-services","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftechbeansaus%2Fres-easy-services/lists"}