Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/muthuri-dev/codelabs-client
learn and share online
https://github.com/muthuri-dev/codelabs-client
gateway-api graphql kinde-auth nextjs14 prisma-orm zustand
Last synced: about 2 months ago
JSON representation
learn and share online
- Host: GitHub
- URL: https://github.com/muthuri-dev/codelabs-client
- Owner: muthuri-dev
- License: mit
- Created: 2024-06-17T11:41:07.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2024-06-26T09:52:19.000Z (7 months ago)
- Last Synced: 2024-06-26T11:18:12.867Z (7 months ago)
- Topics: gateway-api, graphql, kinde-auth, nextjs14, prisma-orm, zustand
- Language: TypeScript
- Homepage: https://yourhub.tech/
- Size: 906 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# Codelabs
![blackbg](https://github.com/muthuri-dev/codelabs-client/assets/82339780/732128c1-5f89-4d6c-9d22-8f3b8e2fd690)
[![GitHub Stars](https://img.shields.io/github/stars/muthuri-dev/equine-tracker)](https://github.com/muthuri-dev/equine-tracker/stargazers)
[![GitHub Forks](https://img.shields.io/github/forks/muthuri-dev/equine-tracker)](https://github.com/muthuri-dev/equine-tracker/network/members)
[![GitHub Issues](https://img.shields.io/github/issues/muthuri-dev/equine-tracker)](https://github.com/muthuri-dev/equine-tracker/issues)
[![GitHub Pull Requests](https://img.shields.io/github/issues-pr/muthuri-dev/equine-tracker)](https://github.com/muthuri-dev/equine-tracker/pulls)## Table of Contents
1. [Introduction](#introduction)
2. [Features](#features)
3. [Installation](#installation)
4. [DataFlow](#DataFlow)
5. [Contributing](#contributing)
6. [License](#license)
7. [Acknowledgments](#acknowledgments)## Introduction
This 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.
![yourhub-mockup](https://github.com/muthuri-dev/codelabs-client/assets/82339780/bcf0581e-3a7c-47fa-881f-967f275f0579)
![dashboard](https://github.com/muthuri-dev/codelabs-client/assets/82339780/4aec5a6e-edc2-4aac-a8b2-ec2cc6b8da7c)## Features
Codelabs comes with a wide range of features tailored for horse care:
- **Learning platform**: Get to learn from community experts.
- **Course uploads**: Upload course in your are of expertise in form of writing.
- **Tech discussions**: Get engauged in tech related discussions and also start one.
- **Chat features**: Communication made easy for community members to reach everyone.
- **Integrate other apps**: Intergrate other apps to the site.
- **Community**: Connect with fellow tech enthusiasts and share your expertise.## Installation
To start using Equine Tracker, follow these installation steps:
1. Fork and Clone the repository:
```bash
fork the repogit clone https://github.com/muthuri-dev/codelabs-client
```2. Navigate to the project directory:
```bash
cd codelabs-client
```3. Install the required dependencies:
```bash
npm install
```4. Start the application:
```bash
npm run start:dev
```5.Create .env file and add:
```bash
DATABASE_URL
KINDE_CLIENT_ID
KINDE_CLIENT_SECRET
KINDE_ISSUER_URL
KINDE_SITE_URL
KINDE_POST_LOGOUT_REDIRECT_URL
KINDE_POST_LOGIN_REDIRECT_URLUPLOADTHING_SECRET
UPLOADTHING_APP_ID
```## DataFlow
The application uses different microservices(subgraphs) connected together with graphql federation 2 gateway which connects with frontend.Each microservice uses different database
![aanew](https://github.com/muthuri-dev/codelabs-client/assets/82339780/b0235a9c-4f13-4de1-8880-7a0928cc6325)
### Api gateway
It uses Apollo gateway to connect all the services.
```bash
@Module({
imports: [
GraphQLModule.forRoot({
driver: ApolloGatewayDriver,
gateway: {
supergraphSdl: new IntrospectAndCompose({
subgraphs: [
{
name: 'users',
url: 'https://codelabs-users-service...',
},
{
name: 'courses',
url: 'https://codelabs-courses-service...',
},
{
name: 'discussions',
url: 'https://codelabs-discussions-service...',
},
{
name: 'other-services',
url: 'https://codelabs-other-service...',
},
],
}),
},
server: {
playground: true,
introspection: true,
},
}),
],
controllers: [],
providers: [],
})
export class AppModule {}```
### Api gateway source code
```bash
https://github.com/muthuri-dev/codelabs-api-gateway
```### Connecting to the api-gateway in next js
```bash
"use client";
import React from "react";
import { ApolloClient, ApolloProvider, InMemoryCache } from "@apollo/client";export default function Provider({ children }: { children: React.ReactNode }) {
const client = new ApolloClient({
uri: "https://codelabs-api-gateway.up.railway.app/graphql",
cache: new InMemoryCache(),
});
return {children};
}
```## Contributing
We 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.
## License
Equine Tracker is open-source software licensed under the Apache License 2.0. For full details, refer to the [LICENSE](LICENSE) file.
## Acknowledgments
We'd like to extend our gratitude to the equestrian community for their support and inspiration.
Thank you for choosing codelabs!