Skip to content

About

A robust C++17 & Qt desktop client platform designed for streamlined employee management, team assignment, and project oversight, backed by Microsoft SQL Server. Built using CMake and modern C++ design principles. Fully complete and production-ready.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

image

Typing SVG

A modern desktop platform for workforce administration, project tracking, and resource allocation. Built with C++ and Qt, backed by Microsoft SQL Server.

C++ Qt SQL Server Platform License


Table of contents

Overview

WorkSphere is a lightweight management tool for small teams. It keeps employees, projects and the assignments between them in one place, with a live dashboard that summarizes headcount, active projects and total payroll.

The interface is a modern, fully themed Qt Widgets UI with a dark and a light mode, a card-based form layout and in-table search.

Features

Dashboard

  • Animated circular widgets for employee count, project count and total payroll
  • Live search over employees (ID or name) and projects (name or assigned employee)
  • Context-aware action bar: select an employee or project to reveal Edit / Delete

Employees

  • Two employee types: Worker (with a position) and Manager (with a bonus)
  • Create employees through a validated form
  • Edit employees in a dedicated dialog with full input validation (the employee type is locked)
  • Delete employees, with their project assignments cleaned up automatically

Projects

  • Create projects with a name and a deadline
  • Automatic Active / Inactive status derived from the deadline, color-coded in the table
  • Edit and delete projects through dialogs
  • Each project row lists the employees currently assigned to it

Assignments

  • Assign any employee to any project, several people in a row
  • Live "current team" panel for the selected project
  • Duplicate assignments are detected and rejected with clear feedback

Settings

  • Currency: EUR, USD, RSD, BAM (salaries are stored in USD and converted for display)
  • Date format: dd.MM.yyyy, yyyy-MM-dd, MM/dd/yyyy
  • Dark / Light theme, applied instantly and remembered between sessions

Screenshots

Dashboard (dark) Dashboard (light)
image image
Edit employee Assignments
image image
Add employee Add project
image image

Tech stack

Layer Technology
Language C++17 & TSQL
UI Qt Widgets (QMainWindow, QStackedWidget, QTableWidget, custom QSS theming)
Database access Qt SQL (QSqlQuery) via ODBC
Database Microsoft SQL Server (Express)
Settings QSettings

Architecture

WorkSphere follows a simple layered structure:

  • Domain model (models/): an Employee base class with Worker and Manager subclasses. Polymorphism (dynamic_cast) decides how each type is displayed, edited and counted in payroll.
  • Persistence: a database layer exposing loadEmployees, addWorker, addManager, updateEmployee and removeEmployee. Projects and assignments use parameterized QSqlQuery statements directly.
  • UI (WorkSphereWindow): a single main window with a sidebar and a stacked page per section. Forms are built in code and rebuilt on demand so lists always reflect the database.
  • Theming: one palette struct and one stylesheet template with %token% placeholders, so the entire look of the app (including dialogs) switches from a single function.

Getting started

Prerequisites

Build

git clone https://github.com/MIhajloS07/WorkSphere.git
cd WorkSphere

With Qt Creator: open the project file, pick a kit and press Run.

With CMake:

cmake -S . -B build -DCMAKE_PREFIX_PATH="<path-to-Qt>"
cmake --build build --config Release

Configuration

The connection string is defined in the WorkSphereWindow constructor:

DRIVER={ODBC Driver 17 for SQL Server};
SERVER=LOCALHOST\SQLEXPRESS;
DATABASE=WorkSphere;
Trusted_Connection=yes;
Encrypt=yes;
TrustServerCertificate=yes;

Change SERVER to match your instance. The app uses Windows authentication by default; to use a SQL login, replace Trusted_Connection=yes with UID=...;PWD=...; (and keep credentials out of version control).

User preferences (currency, date format, theme) are stored with QSettings under the organization WorkSphere and application WorkSphereApp.

Usage

  1. Dashboard: review the totals, search, and select a row to edit or delete it.
  2. Employees: add a worker or a manager. The last field switches between Position and Bonus.
  3. Projects: create a project with a name and deadline; its status is calculated automatically.
  4. Assignments: pick a project, then an employee, and press Assign employee.
  5. Settings: switch theme, currency and date format.

To edit an employee, select the row on the dashboard and click Edit employee. A dialog opens with the current values; invalid input keeps the dialog open and explains what to fix.

Project structure

WorkSphere/
├── models/               # Employee, Worker, Manager, Project data models
├── widgetmodels/         # CircularProgressWidget
├── workspherewindow.h    # header file for worshperewindow 
├── workspherewindow.cpp  # Main window: UI, theming, handlers
├── workspherewindow.ui   # Qt Designer layout
├── logo.svg              # Application logo
├── CMakeLists.txt
├── .gitignore
├── .qtcreator
├── build
├── main.cpp              # Main class for call Application instance
└── database/             # SQL schema and model(recommended)

Database schema

Db Schema
image

Roadmap

  • Real-time currency exchange rates
  • Role-based login
  • Export employees and projects to CSV / PDF
  • Remove employees from a single project
  • Unit tests for the domain model
  • Linux and macOS support

Contributing

Contributions are welcome.

  1. Fork the repository
  2. Create a branch: git checkout -b feature/my-feature
  3. Commit your changes: git commit -m "Add my feature"
  4. Push the branch: git push origin feature/my-feature
  5. Open a pull request

License

Distributed under the MIT License. See LICENSE for details.


Made with C++ and Qt

About

A robust C++17 & Qt desktop client platform designed for streamlined employee management, team assignment, and project oversight, backed by Microsoft SQL Server. Built using CMake and modern C++ design principles. Fully complete and production-ready.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages