Al Habib Trading & Contracting
Al Habib Trading & Contracting Leave Management

Sign in

Company leave desk

Dashboard

AH

Today at Al Habib

Welcome

Leave management workspace

0Active users
0Leave requests
0Official holidays

Leave Requests

Company leave requests, status, and approval progress.

EmployeeTypeDatesDaysStatusDetails

Apply for Leave

Submit a leave request for your signed-in account.

Leave Requests

Review leave history and request status.

EmployeeTypeStartEndDeductedStatusDetails

Approvals

Pending requests waiting for manager or CEO/COO action.

Leave Reports

Filter leave requests by employee, status, and date range, then export the result.

EmployeeTypeStartEndCalendarDeductedStatusReason

Users & Roles

Manage the employee directory, account changes, imports, approvals, and recovery requests.

User Directory

Employee directory, account status, and role information.

NameEmailTitleDepartmentRoleStatusAction

Request User Change

HR changes are submitted for CEO/COO approval. Full-permission changes are applied directly.

Import Users CSV

Upload a prepared CSV, review detected new and existing users, then submit changes for approval.

StatusFull NameEmailTitleDepartmentRoleNote

User Changes Waiting for Approval

CEO/COO and system admin can approve or reject HR-submitted user changes.

Account Recovery Requests

Review unlock and password reset requests submitted from the login screen.

Official Holidays

Holidays are excluded from deductible leave days.

Workflow Builder

Define approval stage labels per leave type. Changes are audited.

Leave Balance Management

Set yearly annual entitlement, carry forward, and sick entitlement.

EmployeeYearAnnualCarry forwardTotal annualSickNote

Audit Log

System activity and login activity for full-permission users.

System Activity

Login Activity

Production Settings

Security, backup, upgrade, and notification administration.

Security Settings

  1. Set the failed login lockout counter. Recommended value: 10.
  2. Keep password minimum length at 10 or higher.
  3. Keep uppercase, lowercase, number, and symbol requirements enabled.
  4. Review login audit from the Audit page after user testing.

Admin Checklist

  1. Use full-permission accounts only for system administration.
  2. Keep HR account access limited to HR tasks and user-change requests.
  3. Use Settings tabs for production configuration instead of editing application files.
  4. Create a backup before major configuration or data changes.

Where Values Come From

  1. Lockout counter is a company policy decision. Recommended: 10.
  2. Password length and complexity are company policy decisions. Keep all complexity options enabled.
  3. Account unlocks and password resets are handled from user administration and recovery requests.
  4. Login success and failure history is reviewed from the audit/log screens by full-permission users.

Microsoft 365 SMTP Questions

  1. Is the sender mailbox created? Recommended: leave@alhabib.com.sa.
  2. Is SMTP AUTH enabled for the sender mailbox?
  3. Can the server reach smtp.office365.com on port 587?
  4. Will authentication use a mailbox password or OAuth-supported SMTP?
  5. Who receives the first test email before real delivery is enabled?

Microsoft Graph Questions

  1. What is the Microsoft tenant ID?
  2. What is the app registration client ID?
  3. Which mailbox is approved for sending system email?
  4. Is Mail.Send permission approved?
  5. Is mail sending restricted to the selected sender mailbox?

Where Values Come From

  1. SMTP host, port, and STARTTLS come from Microsoft 365 SMTP settings.
  2. SMTP username is the sender mailbox, usually leave@alhabib.com.sa.
  3. Tenant ID and Client ID come from Microsoft Entra app registration Overview.
  4. Secret reference is the server environment variable name that stores the secret.
  5. Graph sender mailbox is the approved mailbox used by the system.

Deployment

Record the production hosting, domain, and HTTPS plan for the system.

Deployment Questions

  1. Where will the system be hosted: on-premise, Azure, AWS, VPS, or private cloud?
  2. What operating system will the server use?
  3. What is the production subdomain? Recommended: leave.alhabib.com.sa.
  4. Which reverse proxy or hosting layer will serve HTTPS?
  5. Which server name or IP should be recorded for support?

Go-Live Steps

  1. Deploy the application to the selected server.
  2. Create DNS record for the production subdomain.
  3. Enable HTTPS on the reverse proxy or hosting platform.
  4. Test login and leave request flow using the production URL.
  5. Enable secure cookies after HTTPS is working.

Where Values Come From

  1. Hosting type and operating system come from the final hosting decision.
  2. Production URL is the exact link users will open.
  3. Domain/subdomain comes from DNS records for alhabib.com.sa.
  4. Server name/IP comes from the production server or hosting portal.
  5. Reverse proxy is IIS, Nginx, Azure App Service, or the hosting gateway serving HTTPS.

Storage & Backup

Configure where attachments and backups should live in production.

Recent Backups

OneDrive Connection

Use when attachments or backups are stored in a company OneDrive account through Microsoft Graph.

Attachment Storage Checklist

  1. Choose where sick notes and supporting files will be stored.
  2. Use a folder or container that only authorized server/admin accounts can access.
  3. Confirm files are included in backup or replicated storage.
  4. Confirm the maximum allowed file size and retention requirement.
  5. Test one sick note upload before go-live.

Backup Checklist

  1. Choose backup location: server folder, network folder, or OneDrive.
  2. Recommended local example: D:\LeaveSystem\backups.
  3. Set retention days, usually 90 or more.
  4. Choose a daily backup time, usually 02:00.
  5. Create one manual backup and confirm authorized administrators can access the file.

OneDrive Setup

  1. Create a Microsoft Entra app registration for the leave system.
  2. Grant Microsoft Graph application permission for file access to the storage account.
  3. Create a client secret and save it as a server environment variable.
  4. Enter the tenant ID, client ID, secret reference, account email, and folder names here.
  5. Click Test OneDrive before selecting OneDrive for attachments or backups.

Where Values Come From

  1. Tenant ID and Client ID come from Microsoft Entra app registration Overview.
  2. Secret reference is the server environment variable name, for example ALHABIB_ONEDRIVE_SECRET.
  3. OneDrive account is the licensed mailbox/storage account, for example leave@alhabib.com.sa.
  4. Root folder is created by the system, for example AlHabibLeaveDesk.
  5. Attachment and backup folders are folder names inside the root folder.

Maintenance

Export system data and validate/apply configuration restores. Create and review backups under Storage & Backup.

StatusVersionExportedSummaryBackupDate

Routine Maintenance

  1. Create a manual backup (Storage & Backup) before major configuration changes.
  2. Export system data before deployment or migration work.
  3. Validate any restore file before applying it.
  4. Apply restore only after confirming an automatic backup was created.

Restore Safety

  1. Use restore for configuration data only.
  2. Do not use restore as the only disaster recovery method.
  3. For full recovery, restore the database backup and attachment folder together.

Support Diagnostics

Describe what went wrong, then download a single report to send to your support contact - no need to find or copy log files yourself.

What's Included

  1. Your description, timestamp, and account.
  2. The installed version and current system health.
  3. Recent system and login activity (last 200 entries of each).
  4. Recent server log output, to catch the actual error if something crashed.
  5. Current production settings - no passwords or secrets are ever included, only the environment variable names that reference them.
  6. Employee names, email addresses and login times appear in the activity sections. The report is confidential - send it only to a support contact entitled to see staff records.

Before You Send It

  1. The file includes employee names and email addresses from recent activity - send it only to your trusted support contact, the same way you'd handle any other internal report.
  2. One report per issue is usually enough - avoid including unrelated history.

Upgrade Package

Upload a code update package to update this installation. Build one with scripts/build-upgrade-package.py after making and testing changes locally.

StatusNameVersionTypeSummaryDate

Upgrade Steps

  1. Make and test changes locally, then run scripts/build-upgrade-package.py to produce a package file.
  2. Upload the package here and click Validate - it is checked for version, file paths, and checksums before anything happens.
  3. Review the file list and whether a restart is required, then click Apply Update.
  4. A database backup and a backup of every file being replaced are created automatically before anything is written.
  5. If any file in the package is under server/, the service restarts itself automatically a couple of seconds after applying (only when running as a Windows Service - a manually started server needs a manual restart).

Notification Outbox

Queued email notifications waiting for Microsoft 365 delivery setup.

StatusEventRecipientsSubjectRelatedCreated

Notification Templates

Email titles, recipients, and message wording for production notifications.