- ASP.NET Core 8 with C# 12
- Clean Architecture (API, Core, Infrastructure, Shared layers)
- Swagger API documentation
- Structured logging with Serilog
- Azure Application Insights integration
- CORS configuration
- Global error handling middleware
- Dependency Injection
- Entity Framework Core with SQL Server
- Mapster for efficient object mapping
- xUnit for unit testing
- API Rate limiting
src/JobCandidate.Api: API Controllers, Middleware, and Configurationsrc/JobCandidate.Core: Business logic, Interfaces, and Domain Modelssrc/JobCandidate.Infrastructure: Data access, External service integrationssrc/JobCandidate.Shared: Common utilities, helpers, and constantstest: Unit tests
- .NET 8 SDK
- Visual Studio 2022 or later / Visual Studio Code
- SQL Server
- Clone the repository
- Install .NET 8 SDK
- Configure
appsettings.jsonandappsettings.Production.json - Run
dotnet restoreto restore dependencies - Run
dotnet run --project src/JobCandidate.Apito start the application
- Set the
DatabaseProviderinappsettings.jsonto your preferred database
To create and apply database migrations:
dotnet ef migrations add InitialCreate --project src/JobCandidate.Infrastructure --startup-project src/JobCandidate.Api
dotnet ef database update --project src/JobCandidate.Infrastructure --startup-project src/JobCandidate.Apidotnet testThis project uses GitHub Actions for automated building, testing, and deployment. The pipeline is configured to:
- Build the project
- Run all tests
- Deploy to a staging environment on pushes to the
developbranch - Deploy to production on pushes to the
mainbranch (requires manual approval)
docker build -t job-candidate-api .docker run -p 8080:8080 job-candidate-api