Skip to content

Learnathon-By-Geeky-Solutions/dev-4545

Repository files navigation

πŸ§‘β€πŸ’» Task Tracker – Learnathon Project

.NET React CI/CD SonarCloud Coverage API DOC Live Demo


πŸ“– Table of Contents


πŸ› οΈ Tech Stack

  • Backend: ASP.NET 8 (C#)
  • Frontend: React 18.2
  • Architecture: Clean Architecture
  • CI/CD: GitHub Actions
  • Code Quality: SonarCloud
  • Documentation: Swagger

🧱 Clean Architecture Overview

This project strictly adheres to Clean Architecture principles, emphasizing:

Layered Structure

  • 🟒 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.

Key Principles

  • πŸš€ 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.


πŸ“‚ Project Structure

πŸ“¦ 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).


πŸš€ Features

  • Role-Based Access Control πŸ‘¨πŸ’ΌπŸ‘©πŸ’»
  • Task Management System βœ…πŸ“…
  • Leave Application Workflow πŸ–οΈπŸ“©
  • Real-time Caching with Redis βš‘πŸ”΄
  • Salary Management System πŸ’°πŸ“ˆ
  • Comprehensive Reporting πŸ“ŠπŸ“‘

πŸ‘₯ Team & Mentorship

Team Members

Role Name GitHub Profile
Team Leader Nazmus Sakib GitHub
Developer Md. Mubasshir Naib GitHub
Developer Saikat Hossain Shohag GitHub

Mentor

Role Name GitHub Profile
Mentor Sakib Mahmood GitHub

πŸ›  Tech Stack

Backend

.NET 8 Entity Framework Core CQRS Pattern Redis

Frontend

React 18 TypeScript Ant Design

UI Template Courtesy:
Professional dashboard template provided by Vivasoft

DevOps

GitHub Actions Docker SonarCloud


βš™οΈ Installation

Backend Setup

# 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

Frontend Setup

cd frontend/EmpUI

# Install dependencies
npm install

# Start development server
npm run dev

πŸ“„ Configuration

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" 
  }
}

πŸ—„ Database Setup

ER Diagram View ER Diagram


πŸ“Š Diagrams

Diagram Type Link
UML Diagram View UML Diagram
Activity Diagram View Activity Diagram

SonarCloud Analysis πŸ“ŠπŸ”

Key metrics for code quality:

Metric 🎯 Status πŸ“ˆ Icon 🌟
Quality Gate βœ… Quality Gate Status πŸ†
Bugs 🐞 Bugs 🚫
Vulnerabilities πŸ”“ Vulnerabilities πŸ›‘οΈ
Code Smells πŸ‘ƒ Code Smells 🧹
Coverage πŸ“ Coverage πŸ“Š

πŸš€ CI/CD Pipeline

CI/CD Flow

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
Loading

πŸ“ž Contact

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

Report Issue


πŸš€ Powered by Geeky Solutions Learnathon 2024 πŸš€

Geeky Solutions Logo

About

Repository for team DEV_4545

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 5

Languages