- π Features
- π₯ Team
- π Tech Stack
- βοΈ Installation
- π Configuration
- π Database Setup
- π Diagrams
- SonarCloud Analysis
- π CI/CD Pipeline
- π Contact
- Backend: ASP.NET 8 (C#)
- Frontend: React 18.2
- Architecture: Clean Architecture
- CI/CD: GitHub Actions
- Code Quality: SonarCloud
- Documentation: Swagger
This project strictly adheres to Clean Architecture principles, emphasizing:
- π’ Core Layer: Contains enterprise-wide business entities, validation rules, and domain logic.
- π‘ Application Layer: Implements use cases, DTOs, and interfaces (abstractions for external services).
- π΅ Infrastructure Layer: Handles external concerns - database operations, API integrations, and framework-specific implementations.
- π£ Presentation Layer: React-based UI that consumes the backend API.
- π Dependency Rule: Inner layers never depend on outer layers (Core β Application β Infrastructure β Presentation).
- π§ͺ Testability: Clear separation enables unit testing (Core/Application) and integration testing (Infrastructure).
- π Dependency Injection: Leverages .NET's DI to invert dependencies between layers.
- π Decoupled Frontend: React app communicates via API contracts, enabling independent scaling.
Why It Matters: This architecture ensures long-term maintainability, flexibility to change tech stacks, and team collaboration efficiency.
π¦ src
ββ ποΈ Employee.API # Presentation Layer (ASP.NET Web API).
ββ π§ Employee.Core # Core Layer (Entities, Domain Services).
ββ π οΈ Employee.Application # Application Layer (Use Cases, DTOs, Interfaces).
ββ π¦ Employee.Infrastructure # Infrastructure Layer (EF Core, Repositories).
- Role-Based Access Control π¨πΌπ©π»
- Task Management System β π
- Leave Application Workflow ποΈπ©
- Real-time Caching with Redis β‘π΄
- Salary Management System π°π
- Comprehensive Reporting ππ
Role | Name | GitHub Profile |
---|---|---|
Team Leader | Nazmus Sakib | |
Developer | Md. Mubasshir Naib | |
Developer | Saikat Hossain Shohag |
Role | Name | GitHub Profile |
---|---|---|
Mentor | Sakib Mahmood |
UI Template Courtesy:
Professional dashboard template provided by Vivasoft
# Clone repository
git clone https://github.com/Learnathon-By-Geeky-Solutions/dev-4545.git
cd dev-4545/Employee.API
# Restore dependencies
dotnet restore
# Configure database (update connection string in appsettings.json)
dotnet ef database update --project Employee.Infrastructure
# Run the API
dotnet run
cd frontend/EmpUI
# Install dependencies
npm install
# Start development server
npm run dev
Update appsettings.json
with your environment values:
{
"ConnectionStrings": {
"DefaultConnection": "Your Connection String",
"RedisURL": "Your Redis URL"
},
"Jwt": {
"Key": "your_super_secure_key_here",
"Issuer": "your Issuer",
"Audience": "Your Audience"
},
"Cors": {
"url": "Your frontend URL"
}
}
Diagram Type | Link |
---|---|
UML Diagram | View UML Diagram |
Activity Diagram | View Activity Diagram |
Key metrics for code quality:
Metric π― | Status π | Icon π |
---|---|---|
Quality Gate β | π | |
Bugs π | π« | |
Vulnerabilities π | π‘οΈ | |
Code Smells π | π§Ή | |
Coverage π | π |
graph LR
A[Code Commit] --> B[Run Tests]
B --> C{Passed?}
C -->|Yes| D[Build & Package]
C -->|No| E[Alert Developers]
D --> F[Deploy to Staging]
F --> G[Run Integration Tests]
G --> H{Passed?}
H -->|Yes| I[Deploy to Production]
H -->|No| E
Team Member | Email Address | GitHub Profile |
---|---|---|
Nazmus Sakib | π§ sakib.hb7@gmail.com | π arghya-n |
Mubasshir Naib | π§ u1904089@student.cuet.ac.bd | π MubasshirNaib |
Saikat Hossain Shohag | π§ u1904088@student.cuet.ac.bd | π shohag1102 |