{"id":23343787,"url":"https://github.com/andyfrith/demo-gql","last_synced_at":"2026-04-29T21:33:01.022Z","repository":{"id":42284730,"uuid":"249742365","full_name":"andyfrith/demo-gql","owner":"andyfrith","description":"A minimal Node.js TypeScript application providing a GraphQL API","archived":false,"fork":false,"pushed_at":"2023-01-05T17:18:06.000Z","size":2848,"stargazers_count":0,"open_issues_count":18,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-13T18:46:01.261Z","etag":null,"topics":["graphql","mongodb","nodejs","typescript"],"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/andyfrith.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}},"created_at":"2020-03-24T15:17:12.000Z","updated_at":"2020-03-27T00:41:10.000Z","dependencies_parsed_at":"2023-02-04T08:30:55.752Z","dependency_job_id":null,"html_url":"https://github.com/andyfrith/demo-gql","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andyfrith%2Fdemo-gql","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andyfrith%2Fdemo-gql/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andyfrith%2Fdemo-gql/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andyfrith%2Fdemo-gql/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/andyfrith","download_url":"https://codeload.github.com/andyfrith/demo-gql/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247685774,"owners_count":20979121,"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":["graphql","mongodb","nodejs","typescript"],"created_at":"2024-12-21T06:16:25.037Z","updated_at":"2026-04-29T21:32:55.989Z","avatar_url":"https://github.com/andyfrith.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# demo-gql\r\n\r\nThis demo is a minimal Node.js TypeScript application providing a GraphQL API.\r\n\r\n## Table of Contents\r\n\r\n  1. [Introduction](#introduction)\r\n  2. [Features](#features)\r\n  3. [Environment](#environment)\r\n  4. [Next Steps](#next-steps)\r\n  5. [Other Demos](#other-demos)\r\n  6. [Contact Developer](#contact-developer)\r\n\r\n## Introduction\r\n\r\nThis very light application serves as a simple demo of several technologies and best-practices.\r\n\r\n## Features\r\n\r\n\u003cimg src=\"https://github.com/andyfrith/demo-gql-ui/blob/master/greetings.png\" alt=\"Greetings\" /\u003e\r\n\r\nListing all greetings in the database is made possible with the following GraphQL Query:\r\n\r\n```ts\r\n{\r\n  greetings {\r\n  \tid\r\n    message\r\n    greeter\r\n  }\r\n}\r\n```\r\n\r\nAdding a greeting to the database is made possible with the following GraphQL Mutation:\r\n\r\n```ts\r\nmutation CreateGreeting {\r\n  createGreeting(input: { id: \"3\", message: \"Say hello, to my little friend!\", greeter: \"Al Pacino\"}) {\r\n    id\r\n    message\r\n    greeter\r\n  }\r\n}\r\n```\r\n\r\n### TyepScript\r\n\r\nWhy TypeScript?  Because, use of types lends itself to using highly-productive development tools and practices; such as, static checking and code refactoring during JavaScript development. Additionally, there is great support for TypeScript in the development community.\r\n\r\n### Node.js\r\n\r\nThe application was built using [Node.js](https://nodejs.org/).\r\n\r\n### GraphQL\r\n\r\nThis application was built using the [Apollo Server](https://www.apollographql.com/docs/apollo-server/) GraphQL server and the Node.js apollo-server-express middleware.\r\n\r\nThe GraphQL schema is generated using the [GraphQL Code Generator](https://graphql-code-generator.com/).\r\n\r\n### MongoDB\r\n\r\nA [MongoDB](https://www.mongodb.com/) database is used for storing greetings.\r\n\r\n**[⬆ back to top](#table-of-contents)**\r\n\r\n## Environment\r\n\r\n### Available Scripts\r\n\r\nIn the project directory, you can run:\r\n\r\n#### `npm install`\r\n\r\nInstalls the necessary modules required to build and run the application.\r\n\r\n#### `npm generate`\r\n\r\nGenerates GraphQL schema by running the the [GraphQL Code Generator](https://graphql-code-generator.com/).\r\n\r\n#### `npm start`\r\n\r\nStards the Node.js process, runs the app.\u003cbr /\u003e\r\nOpen [http://localhost:5002/graphql](http://localhost:5002/graphql) to view the GraphQL playground in the browser.\r\n\r\n#### `npm run build`\r\n\r\nCompiles the typescript using tsc, building the app for production.\r\n\r\n#### `npm run test`\r\n\r\nTests will be added in the future.\r\n\r\n**[⬆ back to top](#table-of-contents)**\r\n\r\n## Next Steps\r\n* Authentication\r\n* Server-side Batching \u0026 Caching\r\n\r\n**[⬆ back to top](#table-of-contents)**\r\n\r\n## Other Demos\r\n\r\n[demo-gql-ui](https://github.com/andyfrith/demo-gql-ui) - the UI counterpart- a minimal React Typescript application providing a simple UI that acesses the GraphQL API endpoints of the demo-gql server\r\n\r\n[react-portal](https://github.com/andyfrith/react-portal) - a React Redux application that provides simple user management tasks upon successful JWT authentication\r\n\r\n[greasy-spoon-pos](https://github.com/andyfrith/greasy-spoon-pos) - a React Redux application that provides minimal features of a very basic restaurant Point of Sale system\r\n\r\n[goodapplemedia.com](https://github.com/andyfrith/goodapplemedia.com) - a responsive website created with HTML5, Foundation CSS, and ES6 that demonstrates an exceptional and desirable user experience\r\n\r\n**[⬆ back to top](#table-of-contents)**\r\n\r\n## Contact Developer\r\n\r\nI'm driven to deliver exemplary User Experiences and sound application architectures. I enjoy solving customer problems with excellent design and engineering- to greatly affect business success.\r\n\r\n\r\n[Portfolio](http://goodapplemedia.com)\r\n\r\n[Email: afrith.denver.usa@gmail.com](mailto:afrith.denver.gmail.com)\r\n\r\n[LinkedIn](https://www.linkedin.com/in/goodapplemedia/)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandyfrith%2Fdemo-gql","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fandyfrith%2Fdemo-gql","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandyfrith%2Fdemo-gql/lists"}