EMS
Employees-Management-System is a full-stack web application designed to help companies efficiently manage their employees and branches. The system provides an intuitive interface that simplifies administrative tasks, streamlines employee management, and improves internal operations. Both managers and employees can access the platform with role-specific features.
Project Details
Overview
Employees-Management-System is a full-stack web application designed to help companies efficiently manage their employees and branches. The system provides an intuitive interface that simplifies administrative tasks, streamlines employee management, and improves internal operations. Both managers and employees can access the platform with role-specific features.
Technologies Used
- TypeScript
- React
- Tailwind CSS
- Node.js
- Express
- MySQL
Key Features
Common Features (Managers & Employees)
- Profile Section:
- Personal Information: Username, profile image, email, gender, birthdate.
- Work Information: User ID, branch, manager, role, start date, and salary.
- Users can update their personal information.
- Logout functionality.
Additional Manager Features
- Advanced Search for Workers:
Search by first name, last name, user ID, branch ID, role ID, or manager. Supports combining multiple search conditions. - Employee Management:
View employee profiles, add new employees, update work information, or delete employees from the system (in case of dismissal). - Branch Management:
Search for branches (by name, ID, or manager ID), view detailed branch information, update or delete branches, and add new branches.
Challenges & Solutions
- Role-Based Functionality:
Managing two different user roles (manager and worker) with both shared and distinct features required careful planning. I focused on writing reusable code, shared API endpoints, and modular frontend components to keep the codebase clean and efficient. - Data Consistency and Flexibility:
Since real-world company data often involves frequent changes and potential errors, I implemented full CRUD operations for both workers and branches to ensure flexibility in managing updates, corrections, and deletions. - Security Enhancements:
I secured the application through authentication and authorization using JWT tokens. To enhance security further, I used Redis to cache tokens of logged-out users, preventing unauthorized access.
Lessons Learned
- Gained valuable experience in building and deploying a full-stack web application from scratch.
- Learned how to manage role-based access, and handle real-world scenarios such as data consistency and security.








