{"id":22415236,"url":"https://github.com/neography7/questr-gateway","last_synced_at":"2026-04-10T06:49:49.216Z","repository":{"id":208504360,"uuid":"721760271","full_name":"Neography7/questr-gateway","owner":"Neography7","description":"This repository contains the api gateway portion of the Questr Q\u0026A application.\"","archived":false,"fork":false,"pushed_at":"2023-11-21T18:07:07.000Z","size":211,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-01T09:24:12.995Z","etag":null,"topics":["api-gateway","graphql","grpc","nestjs","socket-io","websocket"],"latest_commit_sha":null,"homepage":"http://www.appquestr.com","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Neography7.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}},"created_at":"2023-11-21T18:06:16.000Z","updated_at":"2024-09-25T14:11:56.000Z","dependencies_parsed_at":null,"dependency_job_id":"59bea9b9-71b9-44ff-a9f7-adbed622df6c","html_url":"https://github.com/Neography7/questr-gateway","commit_stats":null,"previous_names":["neography7/questr-gateway"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Neography7%2Fquestr-gateway","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Neography7%2Fquestr-gateway/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Neography7%2Fquestr-gateway/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Neography7%2Fquestr-gateway/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Neography7","download_url":"https://codeload.github.com/Neography7/questr-gateway/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245779486,"owners_count":20670688,"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":["api-gateway","graphql","grpc","nestjs","socket-io","websocket"],"created_at":"2024-12-05T15:11:42.071Z","updated_at":"2025-10-12T02:16:18.914Z","avatar_url":"https://github.com/Neography7.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# QUESTR - Anonymous Q\u0026A Application\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://i.imgur.com/KAhUMk0.png\" alt=\"Logo\" width=\"500\" /\u003e\n\u003c/p\u003e\n\nThis repository contains the question microservice portion of the Questr Q\u0026A application.\n\n## QUESTR - All Repositories\n\n- [Frontend](https://github.com/Neography7/questr-front)\n- [API Gateway](https://github.com/Neography7/questr-gateway)\n- [User Microservice](https://github.com/Neography7/questr-user-srvc)\n- [Auth Microservice](https://github.com/Neography7/questr-auth-srvc)\n- [Question Microservice](https://github.com/Neography7/questr-question-srvc)\n- [GRPC Protos](https://github.com/Neography7/questr-proto)\n- [Deployment](https://github.com/Neography7/questr-deployment)\n\n## Description\n\nThe API Gateway operates as a GraphQL server, managing requests and effectively directing them to the Auth, User, and Question microservices. It acts as an intermediary, ensuring seamless communication between the frontend's GraphQL requests and the microservices through GRPC. Additionally, it efficiently delivers responses from the microservices to the frontend in the form of GraphQL responses.\n\nFor communication with the microservices, the API Gateway relies on the structures provided in the GRPC Proto Repository, ensuring standardized and efficient interactions.\n\nFurthermore, it utilizes Socket.IO to enable real-time notifications for new questions, delivering instant notifications to users. Developed using Nest.js, the API Gateway orchestrates these operations, serving as a central point for managing and directing requests within the platform.\n\n## Technologies\n\n- **Nest.js:** Employed for developing the microservice architecture.\n- **MongoDB:** Utilized for database storage.\n- **TypeORM:** Used as an ORM for database interactions.\n- **gRPC:** Used for communication between microservices.\n- **i18next:** Used for internationalization (i18n) support.\n- **class-validator:** Used for validation within Nest.js.\n- **class-transformer:** Used for object transformation within Nest.js.\n- **JWT:** Utilized for session authentication and token generation.\n\n## Installing\n\nNote: Please don't forget to use this service with api-gateway and question and auth microservices.\n\nFirst setup the env file, provide microservice urls.\n\n```env\nNODE_ENV=production\n\nAUTH_SERVICE=0.0.0.0:5001\nUSER_SERVICE=0.0.0.0:5002\nQUESTION_SERVICE=0.0.0.0:5003\n```\n\nAnd then, install the packages.\n\n```bash\n# Install required packages\nnpm install\n```\n\nLastly start the service. Api-Gateway graphql server will run on port 5000 and websocket/socket.io will run on 1000.\n\n```bash\n# development\n$ npm run start\n\n# watch mode\n$ npm run start:dev\n\n# production mode\n$ npm run start:prod\n```\n\n## License\n\nThis project is licensed under the [Beerware License](LICENSE).\n\nIf you find this project useful and we ever meet, you might consider buying me a beer in return.\n\n## Contact\n\nIf you have any questions or feedback regarding the project, feel free to get in touch:\n\n- Email: ilkerakyel97@gmail.com\n- LinkedIn: [İlker Akyel](https://www.linkedin.com/in/ilker-akyel/)\n- Website: [ilkerakyel.com](https://www.ilkerakyel.com)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fneography7%2Fquestr-gateway","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fneography7%2Fquestr-gateway","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fneography7%2Fquestr-gateway/lists"}