{"id":21619766,"url":"https://github.com/muthuri-dev/codelabs-client","last_synced_at":"2026-04-13T01:03:01.845Z","repository":{"id":245374893,"uuid":"816265131","full_name":"muthuri-dev/codelabs-client","owner":"muthuri-dev","description":"learn and share online","archived":false,"fork":false,"pushed_at":"2024-07-03T19:20:11.000Z","size":931,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-18T18:22:20.538Z","etag":null,"topics":["gateway-api","graphql","kinde-auth","nextjs14","prisma-orm","zustand"],"latest_commit_sha":null,"homepage":"https://yourhub.tech/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/muthuri-dev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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-06-17T11:41:07.000Z","updated_at":"2024-07-15T21:17:55.000Z","dependencies_parsed_at":"2024-06-26T11:12:19.426Z","dependency_job_id":null,"html_url":"https://github.com/muthuri-dev/codelabs-client","commit_stats":null,"previous_names":["muthuri-dev/codelabs-client"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/muthuri-dev/codelabs-client","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/muthuri-dev%2Fcodelabs-client","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/muthuri-dev%2Fcodelabs-client/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/muthuri-dev%2Fcodelabs-client/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/muthuri-dev%2Fcodelabs-client/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/muthuri-dev","download_url":"https://codeload.github.com/muthuri-dev/codelabs-client/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/muthuri-dev%2Fcodelabs-client/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263996080,"owners_count":23541399,"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":["gateway-api","graphql","kinde-auth","nextjs14","prisma-orm","zustand"],"created_at":"2024-11-24T23:09:51.847Z","updated_at":"2026-04-13T01:03:01.781Z","avatar_url":"https://github.com/muthuri-dev.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Codelabs\n\n![blackbg](https://github.com/muthuri-dev/codelabs-client/assets/82339780/732128c1-5f89-4d6c-9d22-8f3b8e2fd690)\n\n[![GitHub Stars](https://img.shields.io/github/stars/muthuri-dev/equine-tracker)](https://github.com/muthuri-dev/equine-tracker/stargazers)\n[![GitHub Forks](https://img.shields.io/github/forks/muthuri-dev/equine-tracker)](https://github.com/muthuri-dev/equine-tracker/network/members)\n[![GitHub Issues](https://img.shields.io/github/issues/muthuri-dev/equine-tracker)](https://github.com/muthuri-dev/equine-tracker/issues)\n[![GitHub Pull Requests](https://img.shields.io/github/issues-pr/muthuri-dev/equine-tracker)](https://github.com/muthuri-dev/equine-tracker/pulls)\n\n## Table of Contents\n\n1. [Introduction](#introduction)\n2. [Features](#features)\n3. [Installation](#installation)\n4. [DataFlow](#DataFlow)\n5. [Contributing](#contributing)\n6. [License](#license)\n7. [Acknowledgments](#acknowledgments)\n\n## Introduction\n\nThis project is a web application for tech enthusiasts, offering course uploads from instructors, a community space for interaction, and a dedicated discussion forum to learn, connect, and share knowledge in the ever-evolving tech landscape.\n\n![yourhub-mockup](https://github.com/muthuri-dev/codelabs-client/assets/82339780/bcf0581e-3a7c-47fa-881f-967f275f0579)\n![dashboard](https://github.com/muthuri-dev/codelabs-client/assets/82339780/4aec5a6e-edc2-4aac-a8b2-ec2cc6b8da7c)\n\n## Features\n\nCodelabs comes with a wide range of features tailored for horse care:\n\n- **Learning platform**: Get to learn from community experts.\n- **Course uploads**: Upload course in your are of expertise in form of writing.\n- **Tech discussions**: Get engauged in tech related discussions and also start one.\n- **Chat features**: Communication made easy for community members to reach everyone.\n- **Integrate other apps**: Intergrate other apps to the site.\n- **Community**: Connect with fellow tech enthusiasts and share your expertise.\n\n## Installation\n\nTo start using Equine Tracker, follow these installation steps:\n\n1. Fork and Clone the repository:\n\n   ```bash\n   fork the repo\n\n   git clone https://github.com/muthuri-dev/codelabs-client\n   ```\n\n2. Navigate to the project directory:\n\n   ```bash\n   cd codelabs-client\n   ```\n\n3. Install the required dependencies:\n\n   ```bash\n   npm install\n   ```\n\n4. Start the application:\n\n   ```bash\n   npm run start:dev\n   ```\n\n   5.Create .env file and add:\n\n```bash\n  DATABASE_URL\n  KINDE_CLIENT_ID\n  KINDE_CLIENT_SECRET\n  KINDE_ISSUER_URL\n  KINDE_SITE_URL\n  KINDE_POST_LOGOUT_REDIRECT_URL\n  KINDE_POST_LOGIN_REDIRECT_URL\n\n  UPLOADTHING_SECRET\n  UPLOADTHING_APP_ID\n```\n\n## DataFlow\n\nThe application uses different microservices(subgraphs) connected together with graphql federation 2 gateway which connects with frontend.Each microservice uses different database\n\n![aanew](https://github.com/muthuri-dev/codelabs-client/assets/82339780/b0235a9c-4f13-4de1-8880-7a0928cc6325)\n\n### Api gateway\n\nIt uses Apollo gateway to connect all the services.\n\n```bash\n    @Module({\n  imports: [\n    GraphQLModule.forRoot\u003cApolloGatewayDriverConfig\u003e({\n      driver: ApolloGatewayDriver,\n      gateway: {\n        supergraphSdl: new IntrospectAndCompose({\n          subgraphs: [\n            {\n              name: 'users',\n              url: 'https://codelabs-users-service...',\n            },\n            {\n              name: 'courses',\n              url: 'https://codelabs-courses-service...',\n            },\n            {\n              name: 'discussions',\n              url: 'https://codelabs-discussions-service...',\n            },\n            {\n              name: 'other-services',\n              url: 'https://codelabs-other-service...',\n            },\n          ],\n        }),\n      },\n      server: {\n        playground: true,\n        introspection: true,\n      },\n    }),\n  ],\n  controllers: [],\n  providers: [],\n})\nexport class AppModule {}\n\n```\n### Api gateway source code\n```bash\nhttps://github.com/muthuri-dev/codelabs-api-gateway\n```\n\n### Connecting to the api-gateway in next js\n\n```bash\n\"use client\";\nimport React from \"react\";\nimport { ApolloClient, ApolloProvider, InMemoryCache } from \"@apollo/client\";\n\nexport default function Provider({ children }: { children: React.ReactNode }) {\n  const client = new ApolloClient({\n    uri: \"https://codelabs-api-gateway.up.railway.app/graphql\",\n    cache: new InMemoryCache(),\n  });\n  return \u003cApolloProvider client={client}\u003e{children}\u003c/ApolloProvider\u003e;\n}\n```\n\n## Contributing\n\nWe welcome contributions from the community! If you have ideas for improvements, bug reports, or want to contribute code, please check our [Contribution Guidelines](CONTRIBUTING.md) for details on how to get involved.\n\n## License\n\nEquine Tracker is open-source software licensed under the Apache License 2.0. For full details, refer to the [LICENSE](LICENSE) file.\n\n## Acknowledgments\n\nWe'd like to extend our gratitude to the equestrian community for their support and inspiration.\n\nThank you for choosing codelabs!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmuthuri-dev%2Fcodelabs-client","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmuthuri-dev%2Fcodelabs-client","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmuthuri-dev%2Fcodelabs-client/lists"}