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.
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.
To start using Equine Tracker, follow these installation steps:
-
Fork and Clone the repository:
fork the repo git clone https://github.com/muthuri-dev/codelabs-client
-
Navigate to the project directory:
cd codelabs-client
-
Install the required dependencies:
npm install
-
Start the application:
npm run start:dev
5.Create .env file and add:
DATABASE_URL
KINDE_CLIENT_ID
KINDE_CLIENT_SECRET
KINDE_ISSUER_URL
KINDE_SITE_URL
KINDE_POST_LOGOUT_REDIRECT_URL
KINDE_POST_LOGIN_REDIRECT_URL
UPLOADTHING_SECRET
UPLOADTHING_APP_ID
The application uses different microservices(subgraphs) connected together with graphql federation 2 gateway which connects with frontend.Each microservice uses different database
It uses Apollo gateway to connect all the services.
@Module({
imports: [
GraphQLModule.forRoot<ApolloGatewayDriverConfig>({
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 {}
https://github.com/muthuri-dev/codelabs-api-gateway
"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 <ApolloProvider client={client}>{children}</ApolloProvider>;
}
We welcome contributions from the community! If you have ideas for improvements, bug reports, or want to contribute code, please check our Contribution Guidelines for details on how to get involved.
Equine Tracker is open-source software licensed under the Apache License 2.0. For full details, refer to the LICENSE file.
We'd like to extend our gratitude to the equestrian community for their support and inspiration.
Thank you for choosing codelabs!