Project of an online course platform using a monorepo with Next.js for the frontend and Nest.js for the backend, following a microservices architecture and using Apache Kafka.
Obs: In this project, I had no intention to build the entire course platform. Instead, the focus was to develop and study microservices architecture with NestJS and GraphQL.
Monorepo: Turborepo
Frontend: React, Next.js, GraphQL Codegen
Backend: Nest.js, GraphQL, Apollo Client, Apache Kafka
Database: Serverless PostgreSQL, PrismaORM
Styling/Animations/Icons: TailwindCSS, ShadcnUI, RadixUI, Lucide Icons
Auth Manager: Auth0
Others: Zod, Husky, Commitizen, Commitlint, Lint-staged
- Purchase Service:
- [Admin] Products register
- [Admin] Products list
- [Auth] Shopping list
- [Public] Products purchase
- [Public] Available products for purchase
- Classroom Service:
- [Admin] Registrations list
- [Admin] Students list
- [Admin] Courses list
- [Admin] Courses register
- [Auth] List courses a student has access
- [Auth] List course content
- Monorepo architecture by Turborepo
- Microservices architecture with Apache Kafka.
- Cloud database by Neon.tech (PostgreSQL)
- Unitary testing with Jest
- Authentication by Auth0
- GraphQL API Gateway with Apollo Federation
- Nest.js framework
- Monorepo architecture and configuration
- Auth0 authentication management
- Serverless Database with Neon
- Microservices architecture + Apache Kafka (Message Brokers)
- GraphQL + Apollo Client practical studies
- Apollo Federation
- GraphQL Codegen
- Deploy in Amazon Beanstalk (upcoming)