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:
- Commute Distance
- Work Performance
- Work-Life Balance
- Employee Engagement
- Employee Tenure
Normalization
Benefit criteria:
Cost criteria:
Preference Score
After normalizing criterion weights, the final preference value is calculated as:
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.
