{"id":25171591,"url":"https://github.com/basemax/googleclonegraphqlts","last_synced_at":"2025-04-03T21:22:12.110Z","repository":{"id":182814364,"uuid":"664644301","full_name":"BaseMax/GoogleCloneGraphQLTS","owner":"BaseMax","description":"This is a search engine site built using TypeScript and NestJS, with a GraphQL API. The application allows users to search for content and retrieve relevant results. It utilizes the power of GraphQL for efficient querying and retrieving data from various sources.","archived":false,"fork":false,"pushed_at":"2025-03-11T22:56:10.000Z","size":1307,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-28T17:08:06.293Z","etag":null,"topics":["graphql","graphql-ts","graphql-typescript","javascript","js","ts","typescript","typescript-graphql"],"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}},"created_at":"2023-07-10T12:37:53.000Z","updated_at":"2025-03-11T22:56:07.000Z","dependencies_parsed_at":"2024-09-12T19:39:26.434Z","dependency_job_id":null,"html_url":"https://github.com/BaseMax/GoogleCloneGraphQLTS","commit_stats":null,"previous_names":["basemax/googleclonegraphqlts"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BaseMax%2FGoogleCloneGraphQLTS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BaseMax%2FGoogleCloneGraphQLTS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BaseMax%2FGoogleCloneGraphQLTS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BaseMax%2FGoogleCloneGraphQLTS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BaseMax","download_url":"https://codeload.github.com/BaseMax/GoogleCloneGraphQLTS/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247079311,"owners_count":20880030,"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","graphql-ts","graphql-typescript","javascript","js","ts","typescript","typescript-graphql"],"created_at":"2025-02-09T09:21:15.731Z","updated_at":"2025-04-03T21:22:12.085Z","avatar_url":"https://github.com/BaseMax.png","language":"TypeScript","readme":"# Search Engine Site (GraphQL-based) in TypeScript and NestJS\n\nThis is a search engine site built using TypeScript and NestJS, with a GraphQL API. The application allows users to search for content and retrieve relevant results. It utilizes the power of GraphQL for efficient querying and retrieving data from various sources.\n\n## Features\n\n- Search for content using keywords or phrases\n- Retrieve relevant search results based on the query\n- Support for advanced search filters and sorting options\n- Pagination for browsing through search results\n- Integration with various data sources for retrieving content\n- Full-text search capabilities for accurate and fast results\n- User authentication and authorization for personalized search experiences\n- Filters could be these things : (Category or Type : string , Date Range : {from : Time , to : Time} , Location : string, Price Range : {from : number, to : number} , Rating or Reviews : )\n\n\n\n## Requirements\n\n- Node.js (v12 or above)\n- TypeScript (v4 or above)\n- NestJS (v8 or above)\n- MongoDB or any other supported database for data storage\n\n## Getting Started\n\nClone the repository:\n\n```shell\nhttps://github.com/BaseMax/GoogleCloneGraphQLTS\ncd GoogleCloneGraphQLTS\n```\n\nInstall the dependencies:\n\n```shell\nnpm install\n```\n\nConfigure the environment variables:\n\n- Rename the .env.example file to `.env`.\n- Modify the values in the .env file according to your setup.\n- Ensure you provide the necessary credentials and configurations for the database.\n- Build the application:\n\n```shell\nnpm run build\n```\n\n## GraphQL\n\n### Queries\n\n- `search(query: String!, filters: SearchFilters, pagination: PaginationInput): SearchResult`: Retrieves search results based on the provided query string and optional filters and pagination.\n- `getSearchResult(id: ID!): SearchResult`: Retrieves a specific search result by its unique identifier.\n- `getUserSearchHistory(userId: ID!): [SearchHistory]`: Retrieves the search history of a specific user.\n- `getPopularSearches: [String]`: Retrieves a list of popular search terms or queries.\n\n### Mutations\n\n- `createUserSearchHistory(userId: ID!, query: String!): SearchHistory`: Creates a new search history entry for a user with the provided query string.\n- `clearUserSearchHistory(userId: ID!): Boolean`: Clears the search history of a specific user.\n- `createSearchResult(title: String!, url: String!, description: String!): SearchResult`: Creates a new search result with the provided title, URL, and description.\n- `updateSearchResult(id: ID!, title: String, url: String, description: String): SearchResult`: Updates an existing search result identified by its unique identifier with the provided fields.\n- `deleteSearchResult(id: ID!): Boolean`: Deletes a search result identified by its unique identifier.\n\n## GraphQL Examples\n\n### search(query: String!, filters: SearchFilters, pagination: PaginationInput): SearchResult\n\nExample usage:\n\n```graphql\nquery {\n  search(query: \"cat videos\", filters: { category: \"videos\" }, pagination: { page: 1, limit: 10 }) {\n    totalCount\n    results {\n      id\n      title\n      url\n      description\n    }\n  }\n}\n```\n\n### getSearchResult(id: ID!): SearchResult\n\nExample usage:\n\n```graphql\nquery {\n  getSearchResult(id: \"abc123\") {\n    id\n    title\n    url\n    description\n  }\n}\n```\n\n### getUserSearchHistory(userId: ID!): [SearchHistory]\n\nExample usage:\n\n```graphql\nquery {\n  getUserSearchHistory(userId: \"user123\") {\n    id\n    query\n    createdAt\n  }\n}\n```\n\n### getPopularSearches: [String]\n\nExample usage:\n\n```graphql\nquery {\n  getPopularSearches\n}\n```\n\n### createUserSearchHistory(userId: ID!, query: String!): SearchHistory\n\nExample usage:\n\n```graphql\nmutation {\n  createUserSearchHistory(userId: \"user123\", query: \"kittens\") {\n    id\n    query\n    createdAt\n  }\n}\n```\n\n### clearUserSearchHistory(userId: ID!): Boolean\n\nExample usage:\n\n```graphql\nmutation {\n  clearUserSearchHistory(userId: \"user123\")\n}\n```\n\n### createSearchResult(title: String!, url: String!, description: String!): SearchResult\n\nExample usage:\n\n```graphql\nmutation {\n  createSearchResult(title: \"Funny Cat Videos\", url: \"https://example.com/videos\", description: \"Watch hilarious cat videos!\") {\n    id\n    title\n    url\n    description\n  }\n}\n```\n\n### updateSearchResult(id: ID!, title: String, url: String, description: String): SearchResult\n\nExample usage:\n\n```graphql\nmutation {\n  updateSearchResult(id: \"abc123\", title: \"New Title\") {\n    id\n    title\n    url\n    description\n  }\n}\n```\n\n### deleteSearchResult(id: ID!): Boolean\n\nExample usage:\n\n```graphql\nmutation {\n  deleteSearchResult(id: \"abc123\")\n}\n```\n\nCopyright 2023, Max Base\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbasemax%2Fgoogleclonegraphqlts","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbasemax%2Fgoogleclonegraphqlts","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbasemax%2Fgoogleclonegraphqlts/lists"}