The Human Resources Management System (HRMS) is a secure, role-based application built in C to streamline HR operations in a simulated file system environment. It supports core HR functionalities like payroll, performance evaluation, and employee self-service by managing files, directories, and permissions securely.
- HR Manager: Full administrative access (create, modify, delete, permission control, symbolic links).
- Team Leads: Can view and update team performance reports.
- Employees: Can access personal records such as salary slips and leave status.
- Create, delete, and rename files and directories.
- View file contents using
cat,head,tail. - Change file and directory permissions.
- Create symbolic links to essential documents.
- Search recursively for files/directories.
- Use command aliases for quick access.
/hrms
├── /hr_manager # Administrative files
│ ├── payroll.txt
│ ├── recruitment_logs.txt
├── /team_leads # Performance tracking
│ └── performance_reports.txt
├── /employees # Personal employee records
├── salary_slips.txt
├── leave_status.txt- Register/login with secure credentials.
- Manage payroll, recruitment logs.
- Control permissions on all files/directories.
- Create symbolic links.
- Search system-wide for files.
- View and manage all data.
- Access and update performance reports.
- View/search performance files within their scope.
- Access salary slips and leave status.
- Update leave status only.
- Search within their personal files.
| Module | Description |
|---|---|
initialize_structure() |
Sets up directory structure for all roles. |
register_user() |
Registers users and stores credentials securely. |
authenticate_user() |
Validates login credentials. |
list_files() |
Lists contents of a directory. |
create_file() |
Creates a file in the user’s scope. |
delete_file() |
Removes selected file. |
change_permissions() |
Alters permissions for files/directories. |
create_symbolic_link() |
Links critical files (e.g., policies). |
find_file_or_directory() |
Recursively searches for names or keywords. |
- Logs in as employee.
- Opens
leave_status.txt. - Adds new leave info using update function.
- Logs in as HR Manager.
- Creates a new
.txtpolicy file in/hr_manager. - Changes permissions to restrict access.
- Logs in as Team Lead.
- Opens
performance_reports.txt. - Adds team metrics.
- 🔐 Authentication: Role-specific login with secure credential checks.
- 🛑 Permission Management: Users can only access allowed directories.
- 📁 Directory Isolation: Ensures private data remains separate.
Each user sees a specific menu upon login:
hr_manager_menu(username)team_lead_menu(username)employee_menu(username)
These functions control available operations dynamically.
- ⚡ Implement execution of command aliases.
- 🔒 Encrypt credential storage for security.
- 🌐 Add GUI or web interface for usability.
-
Project Leader: Amr Yasser
-
Assistants:
- Youssef Mahmoud
- Mohamed Waleed
- Sama El-Fishawy
- Youssef El-Sayed
- Mohamed Hareth
- Mariam Mohamed