TimePulse is a robust, responsive web application built on ASP.NET Core 6.0 MVC. Designed to streamline workforce attendance tracking and time management, the application serves as a comprehensive frontend portal that integrates seamlessly with a RESTful backend API (TimePulseBackend).
It allows HR managers and administrators to import employee attendance logs via Excel sheets, process raw biometric/time-clock data, and generate granular analytical reports—including Work Hours, Late Arrivals, Early Departures, and Overtime Calculations.
The application provides detailed insights into employee working habits, sortable by Month, Year, and individual User ID:
- 🕒 Work Hour Report: Tracks total daily and monthly worked hours per employee. Calculates exact login/logout times formatted in clean 12-hour AM/PM notation and aggregates total hours worked.
⚠️ Late In Report: Identifies late arrivals and calculates exact late-coming durations (in minutes) against scheduled shift start times.- 🚪 Early Out Report: Monitors instances where employees leave prior to shift completion, detailing early departure minutes.
- 🌟 Overtime Report: Automatically tracks and totals overtime hours worked beyond regular scheduled shifts.
- Excel Sheet Upload: Integrated file upload portal supporting
.xlsxspreadsheets using EPPlus, allowing bulk ingestion of raw employee attendance records directly into the backend database. - Automated Log Processing: Intuitive processing triggers that parse raw timestamps and compute monthly attendance metrics via asynchronous backend API endpoints.
- Bootstrap 5.2.3 Styling: Clean, professional tables, dynamic badges, hover effects, and responsive navigation across desktop and mobile screens.
- Dynamic Filtering: Easy-to-use dropdown selectors for filtering reports across months (or all months simultaneously) and historical years.
| Component | Technology | Version / Details |
|---|---|---|
| Framework | ASP.NET Core MVC | .NET 6.0 |
| Language | C# | C# 10.0 |
| Frontend UI | HTML5, CSS3, Razor | ASP.NET Core Razor Views (.cshtml) |
| Styling & Icons | Bootstrap | v5.2.3 |
| JavaScript / AJAX | jQuery & Bootstrap Bundle | v3.x / v5.2.3 |
| Excel Processing | EPPlus | v6.1.3 |
| JSON Serialization | Newtonsoft.Json | High-performance JSON deserialization |
| Pagination | PagedList & PagedList.Mvc | v1.17.0 / v4.5.0 |
Time-Management-Fatch-API/
│
├── AttendenceManagement002/
│ ├── AttendenceManagement002/
│ │ ├── Controllers/
│ │ │ └── HomeController.cs # Core controller handling API communication & report logic
│ │ ├── Models/
│ │ │ ├── Paging.cs # PaginatedList helper, time conversion extensions, and models
│ │ │ └── ErrorViewModel.cs # Error handling model
│ │ ├── ViewModels/
│ │ │ ├── ReportViewModel.cs # Raw report payload model from API
│ │ │ ├── WorkHourReportViewModel.cs # Formatted work hour view model
│ │ │ ├── LateInReportViewModel.cs # Formatted late arrival view model
│ │ │ ├── EarlyOutReportViewModel.cs # Formatted early departure view model
│ │ │ ├── OvertimeViewModel.cs # Formatted overtime view model
│ │ │ └── PostDataModel.cs # Log processing payload model
│ │ ├── Views/
│ │ │ ├── Home/
│ │ │ │ ├── Index.cshtml # Welcome dashboard
│ │ │ │ ├── LogProcess.cshtml # Trigger monthly log processing
│ │ │ │ ├── PostExcelSheet.cshtml # Upload attendance Excel spreadsheet
│ │ │ │ ├── ReportMontly.cshtml # Monthly report selection dashboard
│ │ │ │ ├── WorkHourReport.cshtml # Work hours table view
│ │ │ │ ├── LateInReport.cshtml # Late arrival minutes table view
│ │ │ │ ├── EarlyOutReport.cshtml # Early departure minutes table view
│ │ │ │ └── OvertimeReport.cshtml # Overtime minutes table view
│ │ │ └── Shared/ # Layouts, navigation, and validation scripts
│ │ ├── wwwroot/ # Static assets (CSS, JS, Bootstrap libs)
│ │ ├── Program.cs # Application entry point & service registration
│ │ └── appsettings.json # Application configuration
│ └── AttendenceManagement002.sln # Visual Studio Solution File
└── README.md # Project documentation
- .NET 6.0 SDK or later installed on your machine (Download .NET 6).
- Visual Studio 2022, JetBrains Rider, or Visual Studio Code with C# extensions.
- Backend API Running: The application expects the backend REST API (
HomeAPI) to be actively running athttps://localhost:44382/api/HomeAPI. Ensure your backend service is started before fetching reports.
-
Clone or Open the Repository: Navigate to the project root folder:
cd "e:/CodeArdra Solutions Projects/Time-Management-Fatch-API/AttendenceManagement002"
-
Restore NuGet Packages:
dotnet restore
-
Build the Solution:
dotnet build --configuration Release
-
Run the Application:
cd AttendenceManagement002 dotnet runThe application will launch and be accessible via your browser at
https://localhost:5001orhttp://localhost:5000(or via IIS Express in Visual Studio).
- Step 1: Upload Excel Sheet:
- Navigate to Upload Excel Sheet in the top navigation bar.
- Select the
.xlsxbiometric or time-clock attendance export file and submit. - Data is transmitted via multipart form data directly to the backend API.
- Step 2: Log Process:
- Go to Log Process, select the target Month and Year, and initiate processing. This triggers the backend engine to calculate working hours, late minutes, early departures, and overtime.
- Step 3: Generate Reports:
- Go to Reports, choose the desired report type (Work Hour, Late In, Early Out, or Overtime), select the Month/Year filter (or "All Months"), and view the rendered analytical breakdown.
- ⚙️ Configuration Management: Move the hardcoded backend API URL (
https://localhost:44382/api/HomeAPI) fromHomeController.csintoappsettings.jsonand inject it usingIOptions<T>orIHttpClientFactory. - ✍️ Code & Naming Cleanup: Refactor typos across the codebase (e.g.,
Attendence->Attendance,Fatch->Fetch,EartlyOutMinute->EarlyOutMinute). - 🔐 Authentication & Authorization: Implement ASP.NET Core Identity or JWT/OAuth2 authentication to secure HR reporting endpoints and restrict upload capabilities to administrative roles.
- ⚡ Asynchronous UI Loading: Implement AJAX/Fetch API table reloading with loading spinners to enhance user experience during large report queries.
Built with ❤️ using ASP.NET Core 6 MVC.