Microservice Course project inspired by Udemy
- Introduction
- Project Structure
- Getting Started
- Prerequisites
- Installation
- Running the Application
- Contributing
- License
This project is a microservice-based architecture inspired by Udemy's course structure. It leverages .NET and various other technologies to create a scalable and maintainable application.
Course.Microservice/
├── Gateways/
│ └── Course.Gateway/
├── IdentityServer/
│ └── Course.IdentityServer/
├── Services/
├── Shared/
│ └── Course.Shared/
├── clients/
│ └── Course.Web/
├── .dockerignore
├── .gitignore
├── Microservices.sln
├── Ports.txt
├── ResourceOwnerPasswordTokenHandler.cs
├── docker-compose.dcproj
├── docker-compose.override.yml
├── docker-compose.yml
└── launchSettings.json
- Gateways/: Contains API Gateway for routing and aggregation.
- Course.Gateway/: Implementation of the API Gateway.
- IdentityServer/: Manages authentication and authorization.
- Course.IdentityServer/: Implementation of Identity Server.
- Services/: Contains individual microservices.
- Shared/: Shared libraries and components.
- Course.Shared/: Implementation of shared components.
- clients/: Client applications.
- Course.Web/: Frontend web application.
- docker-compose.yml: Docker Compose file for container orchestration.
- Backend: .NET Core
- Frontend: HTML, CSS, JavaScript
- Authentication: IdentityServer
- API Gateway: Ocelot
- Communication: RabbitMQ
- Database: PostgreSQL
- Containerization: Docker
These instructions will help you set up and run the project on your local machine for development and testing purposes.
- .NET SDK 8.0
- Docker
- Visual Studio 2022 or later / Visual Studio Code
- PostgreSQL
-
Clone the repository:
git clone https://github.com/BatuhanB/Course.Microservice.git cd Course.Microservice
-
Set up environment variables: Create a .env file in the root directory and add the necessary environment variables.
-
Build and run Docker containers:
docker-compose up --build
- Start the services using Docker Compose:
docker-compose up
- Open the solution in Visual Studio and set multiple startup projects (Gateway, IdentityServer, Services).
- Run the solution.
- Access the web application at
http://localhost:<GatewayPort>
.
Contributions are welcome! Please open an issue or submit a pull request.