A fullstack application allows users to browse a comprehensive list of available courses and seamlessly enroll in their preferred course. It is built using microservices architecture and GraphQL for efficient data fetching and mutation operations.
- Course Listing: Provides users with a clear overview of available courses.
- Enrollment: Enables users to easily enroll in courses of interest.
- Microservices Architecture: Built with a modular architecture to ensure scalability and flexibility.
- GraphQL Integration: Utilizes GraphQL for efficient and declarative data fetching and mutations.
- Auth0 Authentication: Provides an easy way to integrate authentication and authorization for web, mobile, and legacy applications.
- Next.js 14
- NestJS
- Microservices
- KafkaJS
- Apollo
- GraphQL
- Auth0
- TailwindCSS
To run the application on your local machine, make sure you have Node.js
, npm
and Docker
installed before proceeding with the steps below:
- Clone the project:
$ git clone https://github.com/luc-ribeiro/courses-fullstack
- Run docker compose:
$ docker compose up -d
Make sure all services are running!
- Navigate to each folder of the project:
$ cd purchases
$ cd classroom
$ cd gateway
$ cd web
- Install the dependencies on each folder:
$ npm install
- Start each server:
$ npm run start:dev
- Start the Next.js app on web folder:
$ npm run dev
http://localhost:3333/graphql
: Purchases microservice
http://localhost:3334/graphql
: Classroom microservice
http://localhost:3332/graphql
: Gateway
http://localhost:8080
: Kafka UI
This project is licensed under the MIT license.