Desktop Application

[Highlight Project]

1. Introduction

1-1. Overview

This project was developed as part of a government assignment project titled "Smart Workshop Technology Support Project for Small Business Owners", aimed at improving digital transformation and operational transparency in small manufacturing businesses.

I was in charge of the whole IT part of this project when I had been working in the company, 2L Bio Co., Ltd. (투엘바이오).

The primary goal of the software was to monitor operational performance and production KPIs (Key Performance Indicators) by processing structured production data and regularly submitting standardized reports to a national KPI monitoring RESTful API endpoints.

The solution includes a GUI-based desktop application, built with WPS (Windows Presentation System in C#), using Entity Framework Core for ORM, and MySQL for persistent data storage.

1-2. Purpose and Objectives

  • Digitize daily production evaluation and simplify the process of collecting quality and performance metrics.
  • Interface with government systems to submit real-time or daily KPI results via national KPI monitoring RESTful API endpoints.
  • Ensure the accuracy, traceability, and consistency of the data being reported from production units.
  • Provide role-based access and secure login functionality for company personnel.
  • Offer visual feedback and logs of submission outcomes for validation and audit trails.

1-3. Key Features

1-3-1. Multi-Level KPI Tracking

The platform implements 3 evaluation levels:

  • 1. Level 1: General KPI metadata setup (e.g., product categories, totals).
  • 2. Level 2: Production statistics, inspection data.
  • 3. Level 3: Detailed metrics by area: productivity, quality, cost, and delivery.
1-3-2. GUI-Based Workflow

The program's WPS (C#) front-end provides:

  • 1. Simple menu-based interaction with enumeration-driven logic.
  • 2. Real-time logs and printable output to verify all KPI transmissions.
  • 3. Step-by-step KPI data entry per product line.
1-3-3. Database Integration

The system integrates with a MySQL database (kpi_db) consisting of:

  • 1. companies, users for authentication and user management.
  • 2. general_evaluation_datas and products for storing raw evaluation records.
  • 3. Mapped using Entity Framework Core withKpiDbContext, DbSet<T> abstraction, and migration-ready KpiDbContextFactory.
1-3-4. Scalable Service-Oriented Architecture
  • 1. GenericService<T> and IDataService<T> interfaces for CRUD operations across multiple entity types.
  • 2. Specialized UserService, SystemService and KpiApiService for business logic encapsulation.
  • 3. Session-based user login and authentication.
1-3-5. KPI Submission and Result Logging

The core KpiApiService handles:

  • 1. Data preparation based on selected menu operations (e.g., LEVEL3_QUALITY_CREATE).
  • 2. Submission to the national KPI monitoring RESTful API endpoints.
  • 3. Capturing results in KpiApiResultData with log printouts and error tracking via Error subclasses.

1-4. Architecture Highlights

  • 1. Domain-Driven Design (DDD): Business models like Company, Product, GeneralEvaluationData, etc., form the domain core.
  • 2. Dependency Injection: GenericService<T> resolves data operations based on passed DbContextFactory.
  • 3. Extensibility: Clean class separation allows easy addition of new metrics or external integration.

1-5. Workflow Example

  • 1. Login via user credentials (UserService.Login()).
  • 2. Load Company Data for the session.
  • 3. Input Production Data from daily Excel files.
  • 4. Perform Evaluation using GUI prompts.
  • 5. Submit KPI to API via KpiLevel3xxxCreate() methods.
  • 6. Log Results using the Print() and PrintLog() methods in KpiApiResultData.

1-6. UML Diagram

1-6-1. Business Model Classes UML Diagram
1-6-2. Business Model DB Entities UML Diagram
  • Each core business model class in the domain is mapped to a corresponding database table.
  • The mapping is done using Entity Framework Core's Code-First approach, and it is automatically handled when running Add-Migration and Update-Database commands in the Package Manager Console.
  • Each piece of data recorded in the program is automatically saved to the corresponding database table.
1-6-3. Database-related Service Classes UML Diagram

The structure of the classes used for database transactions and database-related services within the application is as follows:

1-6-4. National KPI monitoring REST API-related Classes UML Diagram
1-6-5. System Service Class UML Diagram
1-6-6. Program Entry Class UML Diagram

2. Techs

  • Language / Script

  • Framework

  • Database

  • OS

  • IDE

  • VCS

  • Package Manager / Dependency Manager

  • Test

3. Screenshots

© 2025 hansf14. All Rights Reserved.