Loading ExperiencePlease Wait.

Iman©

Portfolio

0

WFH Decision Support System

Client

-

Year

2026

Role

Programmer
WFH Decision Support System
Overview

Espeka DSS – Work-From-Home Decision Support System

Project Overview

Espeka DSS is a Decision Support System (DSS) developed as a university project to evaluate employee eligibility for Work-From-Home (WFH) or hybrid work arrangements. The system applies the **Simple Additive Weighting (SAW)**method to rank employees based on multiple criteria, helping reduce subjectivity in decision-making.

The application was developed using a Next.js frontend and a Python FastAPI backend within a monorepo architecture. Users can adjust decision criteria weights and view ranking results in real time.

Technologies Used

  • Next.js (TypeScript)
  • Tailwind CSS
  • Python FastAPI
  • Vercel Serverless Functions
  • Lucide Icons
  • KaTeX / MathJS

Main Features

Real-Time Ranking Calculation

Employee rankings are updated automatically when users modify criteria weights or employee data.

Spreadsheet-Based Data Management

Users can import employee data from CSV files, search records, and edit values directly within the application.

Dual Calculation Engine

The system performs calculations through a Python backend. If the backend is unavailable, a client-side JavaScript implementation automatically handles the calculations.

Exportable Results

Users can export employee rankings and preference scores in CSV format for further analysis or documentation.


Decision-Making Method

The system uses the Simple Additive Weighting (SAW) method with five evaluation criteria:

  1. Commute Distance
  2. Work Performance
  3. Work-Life Balance
  4. Employee Engagement
  5. Employee Tenure

Normalization

Benefit criteria:

[ rij=xijxjmax ][\ r_{ij} = \frac{x_{ij}}{x_j^{max}}\ ]

Cost criteria:

[ rij=xjminxij ][\ r_{ij} = \frac{x_j^{min}}{x_{ij}}\ ]

Preference Score

After normalizing criterion weights, the final preference value is calculated as:

[ Vi=j=1nwjrij ][\ V_i = \sum_{j=1}^{n} w_j r_{ij}\ ]

Employees are then ranked based on their final preference scores.

Ranking Categories

  • High Priority – Top 30% of employees
  • Medium Priority – Next 40%
  • Low Priority – Bottom 30%

System Architecture

The application consists of:

  • Frontend: Next.js web application
  • Backend: Python FastAPI serverless API
  • Fallback Engine: Client-side JavaScript calculation module

The frontend sends employee data and criteria weights to the backend for SAW computation. If the backend is unavailable, calculations are executed locally in the browser.


Project Structure

/
├── api/
│   ├── index.py
│   └── requirements.txt
├── app/
│   ├── layout.tsx
│   ├── page.tsx
│   └── globals.css
├── components/
│   └── WfhCalculator.tsx
├── vercel.json
└── package.json


My Contributions

As the developer of this project, I was responsible for:

  • Designing and implementing the user interface using Next.js and Tailwind CSS.
  • Developing the SAW calculation workflow and data processing features.
  • Implementing a client-side fallback calculation mechanism.
  • Optimizing application performance for large datasets.
  • Integrating the frontend and backend within a single monorepo deployment architecture.

Learning Outcomes

Through this project, I gained practical experience in:

  • Multi-Criteria Decision Making (MCDM) methods, particularly SAW.
  • Full-stack web development using Next.js and FastAPI.
  • Serverless deployment architecture.
  • Data processing and CSV handling.
  • Building responsive and interactive web applications.