{"id":25171371,"url":"https://github.com/basemax/randomquotegrpc","last_synced_at":"2026-03-08T11:31:57.079Z","repository":{"id":188363535,"uuid":"675420471","full_name":"BaseMax/RandomQuoteGRPC","owner":"BaseMax","description":"The Random Quote Generator server is built using TypeScript and gRPC. This application consists of three distinct services, all built upon the efficient gRPC protocol: User, Auth, and Quote. These services seamlessly interact with both one another and clients through the advanced gRPC protocol.","archived":false,"fork":false,"pushed_at":"2025-04-11T18:23:28.000Z","size":734,"stargazers_count":5,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-06-06T21:46:40.557Z","etag":null,"topics":["grpc","grpc-javascript","grpc-js","grpc-typescript","javascript-grpc","js-grpc","nestjs","quote","quote-generator","quotes","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BaseMax.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,"zenodo":null}},"created_at":"2023-08-06T21:15:47.000Z","updated_at":"2025-04-11T18:23:25.000Z","dependencies_parsed_at":"2025-05-05T20:43:46.507Z","dependency_job_id":"d0a8d52d-1b22-4421-b208-a2ce004c87af","html_url":"https://github.com/BaseMax/RandomQuoteGRPC","commit_stats":null,"previous_names":["basemax/randomquotegrpc"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/BaseMax/RandomQuoteGRPC","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BaseMax%2FRandomQuoteGRPC","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BaseMax%2FRandomQuoteGRPC/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BaseMax%2FRandomQuoteGRPC/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BaseMax%2FRandomQuoteGRPC/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BaseMax","download_url":"https://codeload.github.com/BaseMax/RandomQuoteGRPC/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BaseMax%2FRandomQuoteGRPC/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259470939,"owners_count":22862996,"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":["grpc","grpc-javascript","grpc-js","grpc-typescript","javascript-grpc","js-grpc","nestjs","quote","quote-generator","quotes","typescript"],"created_at":"2025-02-09T09:19:59.307Z","updated_at":"2026-03-08T11:31:57.053Z","avatar_url":"https://github.com/BaseMax.png","language":"TypeScript","readme":"# Random Quote Generator using gRPC (TypeScript, Nestjs)\n\nThis application consists of three distinct services, all built upon the efficient gRPC protocol: User, Auth, and Quote. These services seamlessly interact with both one another and clients through the advanced gRPC protocol. The administrative role, held by editors, empowers them to oversee user management and quote administration. Meanwhile, users enjoy the ability to access random quotes, adding an element of serendipity to their experience.\n\n**User Service**\n\nThe User Service provides functionality related to managing user(quote editor) information.\nMethods:\n\n- findOneById\n- findOneByUsername\n- createUser\n- removeUser\n\n**Auth Service**\n\nThe Auth Service handles user authentication and authorization.\nMethods:\n\n- login\n- verifyToken\n\n**Quote Service**\n\nThe Quote Service retrieves and manages quotes.\n\n- findOneQuoteById\n- randDomQuote\n- createQuote\n- removeQuoteById\n- updateQuote\n\n**Proto Files**\n\nfor more info about methods and input/output types check out proto directory\n\n**API Gateway**\n\nThe API Gateway serves as an entry point for clients to communicate with the gRPC services. It translates HTTP requests to gRPC requests and vice versa.\n\n- Port: 3000\n\nTo access the services through the API Gateway, send an HTTP request to the appropriate API endpoint, import `RandomQuoteGRPC.postman_collection.json` to Postman\n\n![diagram](./screenshots/diagram.png)\n\n## Demo\n\n![all request](./screenshots/all.png)\n\n![create quote](./screenshots/create_quote.png)\n\n![delete quote](./screenshots/delete_quote.png)\n\n![random quote](./screenshots/quote_random.png)\n\n![quote by id](./screenshots/quote_by_id_not_found.png)\n\n![quote by id](./screenshots/quote_by_id.png)\n\n![update quote](./screenshots/update_quote.png)\n\n![login user](./screenshots/update_quote.png)\n\n![get all users](./screenshots/get_all_users.png)\n\n## Installation\n\nClone this repository to your local machine:\n\n```bash\ngit clone https://github.com/BaseMax/RandomQuoteGRPC\ncd RandomQuoteGRPC\n```\n\nInstall the required dependencies:\n\n```bash\nnpm install\n```\n\n## Usage\n\nTranspile the .proto file and generate gRPC TypeScript code.\nproto files have already transpile libs/common/types, but if you change anything you can use:\n\n```bash\nprotoc --plugin=./node_modules/.bin/protoc-gen-ts_proto --ts_proto_out=\u003coutput\u003e --ts_proto_opt=nestJs=true \u003cpath/to/proto/file\u003e\n```\n\nThis command will generate the necessary TypeScript files from the .proto file.\n\n**Create Admin:**\n\n```bash\nts-node apps/user/seed/create-admin.ts\n```\n\n**Start the server:**\n\n```bash\nnpm run start:dev user\nnpm run start:dev auth\nnpm run start:dev quote\nnpm run start:dev\n```\n\nThe server will start and listen on port **3000**.\n\n## Contributing\n\nContributions to the Random Quote Generator project are welcome! If you have any ideas for improvements, bug fixes, or new features, feel free to submit a pull request.\n\n## License\n\nThe Random Quote Generator project is open-source and distributed under the GPL-3.0 License.\n\nCopyright 2023, Max Base\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbasemax%2Frandomquotegrpc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbasemax%2Frandomquotegrpc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbasemax%2Frandomquotegrpc/lists"}