diff --git a/Trenser.Zenvy/Trenser.Zenvy/Trenser.Zenvy.cpp b/Trenser.Zenvy/Trenser.Zenvy/Trenser.Zenvy.cpp
index e69de29..64b1e4b 100644
--- a/Trenser.Zenvy/Trenser.Zenvy/Trenser.Zenvy.cpp
+++ b/Trenser.Zenvy/Trenser.Zenvy/Trenser.Zenvy.cpp
@@ -0,0 +1,15 @@
+/*
+ * File: Trenser.Zenvy.cpp
+ * Description: Zenvy Main
+ * Author: Trenser
+ * Created: 30-Mar-2026
+ */
+
+#include "UserInterface.h"
+
+int main()
+{
+ UserInterface userInterFace;
+ userInterFace.run();
+ return 0;
+}
\ No newline at end of file
diff --git a/Trenser.Zenvy/Trenser.Zenvy/Trenser.Zenvy.vcxproj b/Trenser.Zenvy/Trenser.Zenvy/Trenser.Zenvy.vcxproj
index 88bb765..4424458 100644
--- a/Trenser.Zenvy/Trenser.Zenvy/Trenser.Zenvy.vcxproj
+++ b/Trenser.Zenvy/Trenser.Zenvy/Trenser.Zenvy.vcxproj
@@ -102,7 +102,7 @@
true
_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
true
- $(ProjectDir)controllers;$(ProjectDir)services;$(ProjectDir)utilities;%(AdditionalIncludeDirectories)
+ $(ProjectDir)models;$(ProjectDir)controllers;$(ProjectDir)services;$(ProjectDir)utilities;$(ProjectDir)factories;$(ProjectDir)datastores;$(ProjectDir)views;%(AdditionalIncludeDirectories)
Console
@@ -131,6 +131,7 @@
+
@@ -145,6 +146,7 @@
+
@@ -165,6 +167,15 @@
+
+
+
+
+
+
+
+
+
@@ -174,6 +185,7 @@
+
@@ -188,6 +200,7 @@
+
@@ -204,6 +217,15 @@
+
+
+
+
+
+
+
+
+
diff --git a/Trenser.Zenvy/Trenser.Zenvy/Trenser.Zenvy.vcxproj.filters b/Trenser.Zenvy/Trenser.Zenvy/Trenser.Zenvy.vcxproj.filters
index 3c26252..8a20aa6 100644
--- a/Trenser.Zenvy/Trenser.Zenvy/Trenser.Zenvy.vcxproj.filters
+++ b/Trenser.Zenvy/Trenser.Zenvy/Trenser.Zenvy.vcxproj.filters
@@ -5,10 +5,6 @@
{4FC737F1-C7A5-4376-A066-2A32D752A2FF}
cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx
-
- {93995380-89BD-4b04-88EB-625FBE52EBFB}
- h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd
-
{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
@@ -31,11 +27,15 @@
{eb93b9d1-08eb-48aa-be2a-e17085ce27bd}
+
+ {93995380-89BD-4b04-88EB-625FBE52EBFB}
+ h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd
+
+
+ {84db0710-2b0f-48bc-a72f-bd10c29954fc}
+
-
- Source Files
-
Services
@@ -156,6 +156,42 @@
Models
+
+ Source Files
+
+
+ Views
+
+
+ Views
+
+
+ Views
+
+
+ Views
+
+
+ Views
+
+
+ Views
+
+
+ Views
+
+
+ Views
+
+
+ Views
+
+
+ Models
+
+
+ Services
+
@@ -269,6 +305,39 @@
Models
+
+ Views
+
+
+ Views
+
+
+ Views
+
+
+ Views
+
+
+ Views
+
+
+ Views
+
+
+ Views
+
+
+ Views
+
+
+ Views
+
+
+ Models
+
+
+ Services
+
diff --git a/Trenser.Zenvy/Trenser.Zenvy/controllers/ZenvyController.cpp b/Trenser.Zenvy/Trenser.Zenvy/controllers/ZenvyController.cpp
index aa50123..cdc3a08 100644
--- a/Trenser.Zenvy/Trenser.Zenvy/controllers/ZenvyController.cpp
+++ b/Trenser.Zenvy/Trenser.Zenvy/controllers/ZenvyController.cpp
@@ -1 +1,68 @@
+/*
+ * File: ZenvyController.cpp
+ * Description : Controls data flow between UI and Service Layers.
+ * Author: Trenser
+ * Created : 01-Apr-2026
+ */
+
#include "ZenvyController.h"
+
+/*
+ * Function: login
+ * Description: authenticates the employee based on email and password
+ * Parameters:
+ * email - email of the employee
+ * password - password of the employee
+ * Returns:
+ * Tuple - login status, employee type, employee designation
+ * login status - success or failed
+ * employee type - type of the employee logged in
+ * employee designation - designation if employee type is GENERAL.
+ */
+
+AuthenticationDTO ZenvyController::login(const std::string& email, const std::string& password)
+{
+ return m_authenticationManagementService->login(email, password);
+}
+
+/*
+ * Function: changePassword
+ * Description: updates the password of the currently authenticated employee.
+ * Parameters:
+ * password - the new password to be set for the employee
+ * Returns:
+ * void - no return value
+ */
+
+void ZenvyController::logout()
+{
+ m_authenticationManagementService->logout();
+}
+
+/*
+ * Function: changePassword
+ * Description: updates the password of the currently authenticated employee.
+ * Parameters:
+ * password - the new password to be set for the employee
+ * Returns:
+ * void - no return value
+ */
+
+void ZenvyController::changePassword(const std::string& password)
+{
+ m_authenticationManagementService->changePassword(password);
+}
+
+ZenvyController::~ZenvyController()
+{
+ delete m_authenticationManagementService;
+ delete m_attendanceManagementService;
+ delete m_bookingManagementService;
+ delete m_employeeManagememtService;
+ delete m_leaveManagementService;
+ delete m_notificationManagementService;
+ delete m_payslipManagementService;
+ delete m_talentAcquisitionManagementService;
+ delete m_teamManagementService;
+ delete m_ticketManagementService;
+}
diff --git a/Trenser.Zenvy/Trenser.Zenvy/controllers/ZenvyController.h b/Trenser.Zenvy/Trenser.Zenvy/controllers/ZenvyController.h
index 7dae696..965a5d1 100644
--- a/Trenser.Zenvy/Trenser.Zenvy/controllers/ZenvyController.h
+++ b/Trenser.Zenvy/Trenser.Zenvy/controllers/ZenvyController.h
@@ -1,5 +1,51 @@
+/*
+ * File: ZenvyController.h
+ * Description : Controls data flow between UI and Service Layers.
+ * Author: Trenser
+ * Created : 01-Apr-2026
+ */
+
#pragma once
+#include
+#include "AuthenticationManagementService.h"
+#include "AttendanceManagementService.h"
+#include "BookingManagementService.h"
+#include "EmployeeManagememtService.h"
+#include "LeaveManagementService.h"
+#include "NotificationManagementService.h"
+#include "PayslipManagementService.h"
+#include "TalentAcquisitionManagementService.h"
+#include "TeamManagementService.h"
+#include "TicketManagementService.h"
+#include "Enums.h"
+
class ZenvyController
{
-};
-
+private:
+ AuthenticationManagementService* m_authenticationManagementService;
+ AttendanceManagementService* m_attendanceManagementService;
+ BookingManagementService* m_bookingManagementService;
+ EmployeeManagememtService* m_employeeManagememtService;
+ LeaveManagementService* m_leaveManagementService;
+ NotificationManagementService* m_notificationManagementService;
+ PayslipManagementService* m_payslipManagementService;
+ TalentAcquisitionManagementService* m_talentAcquisitionManagementService;
+ TeamManagementService* m_teamManagementService;
+ TicketManagementService* m_ticketManagementService;
+public:
+ ZenvyController() :
+ m_authenticationManagementService(new AuthenticationManagementService()),
+ m_attendanceManagementService(new AttendanceManagementService()),
+ m_bookingManagementService(new BookingManagementService()),
+ m_employeeManagememtService(new EmployeeManagememtService()),
+ m_leaveManagementService(new LeaveManagementService()),
+ m_notificationManagementService(new NotificationManagementService()),
+ m_payslipManagementService(new PayslipManagementService()),
+ m_talentAcquisitionManagementService(new TalentAcquisitionManagementService()),
+ m_teamManagementService(new TeamManagementService()),
+ m_ticketManagementService(new TicketManagementService()) {};
+ AuthenticationDTO login(const std::string& email, const std::string& password);
+ void logout();
+ void changePassword(const std::string&);
+ ~ZenvyController();
+};
\ No newline at end of file
diff --git a/Trenser.Zenvy/Trenser.Zenvy/datastores/DataStore.cpp b/Trenser.Zenvy/Trenser.Zenvy/datastores/DataStore.cpp
index e81f26f..75e9f43 100644
--- a/Trenser.Zenvy/Trenser.Zenvy/datastores/DataStore.cpp
+++ b/Trenser.Zenvy/Trenser.Zenvy/datastores/DataStore.cpp
@@ -1 +1,112 @@
+/*
+ * File: DataStore.cpp
+ * Description: Central Storage for all the System Data.
+ * Author: Trenser
+ * Created: 01-Apr-2026
+ */
+
#include "DataStore.h"
+
+/*
+ * Function: getInstance
+ * Description: provides a singleton instance of the DataStore.
+ * Parameters:
+ * None
+ * Returns:
+ * DataStore& - reference to the single DataStore object.
+ */
+
+DataStore& DataStore::getInstance()
+{
+ static DataStore dataStore;
+ return dataStore;
+}
+
+/*
+ * Function: getLogs
+ * Description: retrieves the log map containing system logs.
+ * Parameters:
+ * None
+ * Returns:
+ * logMap& - reference to the log map.
+ */
+
+logMap& DataStore::getLogs()
+{
+ return m_logs;
+}
+
+/*
+ * Function: getAuthenticatedEmployee
+ * Description: returns the currently authenticated employee.
+ * Parameters:
+ * None
+ * Returns:
+ * std::shared_ptr& - reference to the authenticated employee object.
+ */
+
+Employee*& DataStore::getAuthenticatedEmployee()
+{
+ return m_authenticatedEmployee;
+}
+
+/*
+ * Function: setAuthenticatedEmployee
+ * Description: sets the currently authenticated employee.
+ * Parameters:
+ * authenticatedEmployee - shared pointer to the employee object to be set as authenticated.
+ * Returns:
+ * void - no return value.
+ */
+
+void DataStore::setAuthenticatedEmployee(Employee* authenticatedEmployee)
+{
+ m_authenticatedEmployee = authenticatedEmployee;
+}
+
+/*
+ * Function: getEmployees
+ * Description: retrieves the employee map containing all employees.
+ * Parameters:
+ * None
+ * Returns:
+ * employeeMap& - reference to the employee map.
+ */
+
+employeeMap& DataStore::getEmployees()
+{
+ return m_employees;
+}
+
+/*
+ * Function: getAuthenticatedUser
+ * Description: alias for getAuthenticatedEmployee, returns the currently authenticated employee.
+ * Parameters:
+ * None
+ * Returns:
+ * std::shared_ptr& - reference to the authenticated employee object.
+ */
+
+Employee* DataStore::getAuthenticatedUser()
+{
+ return m_authenticatedEmployee;
+}
+DataStore::~DataStore()
+{
+ for (auto& pair : m_employees)
+ {
+ delete pair.second;
+ }
+ m_employees.clear();
+ for (auto& pair : m_logs)
+ {
+ delete pair.second;
+ }
+ m_logs.clear();
+ if (m_authenticatedEmployee)
+ {
+ delete m_authenticatedEmployee;
+ m_authenticatedEmployee = nullptr;
+ }
+}
+
diff --git a/Trenser.Zenvy/Trenser.Zenvy/datastores/DataStore.h b/Trenser.Zenvy/Trenser.Zenvy/datastores/DataStore.h
index 09042e4..6cd9518 100644
--- a/Trenser.Zenvy/Trenser.Zenvy/datastores/DataStore.h
+++ b/Trenser.Zenvy/Trenser.Zenvy/datastores/DataStore.h
@@ -1,5 +1,50 @@
+/*
+ * File: DataStore.h
+ * Description: Central Storage for all the System Data.
+ * Author: Trenser
+ * Created: 01-Apr-2026
+ */
+
#pragma once
+#include