Wisdsol Hotel
Management System
Complete Staff Reference Guide
This manual covers every module of the Wisdsol Hotel Management System — from daily front-desk operations to payroll processing and financial reporting. Each section is written for the staff role most likely to use that module.
System Overview
The HMS is a web-based system accessible from any browser. It covers the full hotel operation lifecycle — reservations, housekeeping, HR, payroll, and financial reporting.
Logging In
All staff access the system through a single login page. Your username and password are created by a Super Admin or Manager.
Staff Login
Navigate to /login/ and enter your username and password. After a successful login you will be redirected to the Dashboard.
-
1Open your browser and go to http://yourdomain.com/login/
-
2Enter your Username and Password provided by your administrator.
-
3Click Sign In. You will land on the Dashboard.
Demo Accounts
| Username | Password | Role |
|---|---|---|
| admin | admin123 | Super Admin |
| manager1 | pass1234 | Manager |
| frontdesk1 | pass1234 | Front Desk |
| accountant1 | pass1234 | Accountant |
| housekeeping1 | pass1234 | Housekeeping |
| viewer1 | pass1234 | Viewer |
Roles & Permissions
The system uses six access levels. Each role controls which modules a staff member can view and edit.
Permission Matrix
| Module | Super Admin | Manager | Accountant | Front Desk | Housekeeping | Viewer |
|---|---|---|---|---|---|---|
| Dashboard | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Bookings | ✅ | ✅ | ✅ | ✅ | — | — |
| Rooms | ✅ | ✅ | ✅ | View | View | — |
| Guests | ✅ | ✅ | ✅ | ✅ | — | — |
| Housekeeping | ✅ | ✅ | ✅ | ✅ | ✅ | — |
| Maintenance | ✅ | ✅ | ✅ | ✅ | — | — |
| Staff | ✅ | ✅ | — | — | — | — |
| Clocking | ✅ | ✅ | — | — | — | — |
| Payroll | ✅ | ✅ | ✅ | — | — | — |
| Expenses | ✅ | ✅ | ✅ | — | — | — |
| Financials | ✅ | ✅ | ✅ | — | — | — |
| Reports | ✅ | ✅ | ✅ | — | — | — |
| Users | ✅ | — | — | — | — | — |
| Settings | ✅ | — | — | — | — | — |
Dashboard
The Dashboard is the first screen after login and gives an at-a-glance view of today's hotel operation.
Key Metrics
| Metric | Description |
|---|---|
| Total / Available Rooms | Count of all rooms vs rooms currently available for booking. |
| Today's Check-ins | Confirmed bookings whose check-in date is today. |
| Today's Check-outs | Checked-in bookings whose check-out date is today. |
| Active Bookings | All bookings in "confirmed" or "checked-in" status. |
| Month Revenue | Sum of payments for checked-in/checked-out bookings this calendar month. |
| Pending Expenses | Expenses awaiting approval. |
| Pending HK Tasks | Housekeeping tasks not yet completed today. |
| Open Maintenance | Maintenance requests that are open or in progress. |
Recent Activity Panels
The lower half of the Dashboard shows the 8 most recent bookings and the 6 housekeeping tasks assigned today. Click any row to go directly to that record.
Bookings
Manage the full reservation lifecycle from initial booking through check-out and payment recording.
Booking Statuses
| Status | Meaning | Next Action |
|---|---|---|
| Pending | Booking created but not confirmed | Confirm |
| Confirmed | Reservation accepted | Check In |
| Checked In | Guest is in the hotel | Check Out |
| Checked Out | Stay complete | — |
| Cancelled | Booking cancelled | — |
Creating a New Booking
- 1Go to /bookings/ and click New Booking.
- 2Select or search for an existing Guest. If the guest is new, create them in the Guests module first.
- 3Choose a Room. Only available rooms appear in the list.
- 4Set Check-in and Check-out dates. The system calculates the number of nights automatically.
- 5Review the Total Amount (room rate × nights + any applicable taxes from Settings) and save.
Check-In Process
- 1Open the booking and verify the guest's identity.
- 2Click Check In. The room status changes to Occupied automatically.
- 3Optionally record any Deposit / Advance Payment in the Amount Paid field.
Check-Out Process
- 1Open the active booking and click Check Out.
- 2Confirm the final Amount Paid. Any outstanding balance is highlighted.
- 3Save. The room automatically reverts to Available and a housekeeping clean task is created.
Rooms & Room Types
Define room categories (types) first, then create individual rooms assigned to those types.
Room Types
Room Types define a category (e.g. "Deluxe Double", "Executive Suite") and set the base nightly rate. All rooms belonging to a type inherit its price by default.
Creating a Room Type
- 1Go to /rooms/ and click Room Types → Add Type.
- 2Enter the Name, Description, and Base Rate (GHS).
- 3Save. You can now assign rooms to this type.
Room Statuses
| Status | Meaning |
|---|---|
| Available | Ready for booking. |
| Occupied | Guest is currently in the room. |
| Cleaning | Room is being cleaned after checkout. |
| Maintenance | Room is taken offline for repairs. |
Guests
Every booking requires a guest record. Guest profiles hold contact details, booking history, and portal access.
Creating a Guest Profile
- 1Go to /guests/ and click Add Guest.
- 2Fill in the guest's First Name, Last Name, Phone, Email, and optionally ID / Passport Number and Nationality.
- 3Set a 4-digit Portal PIN so the guest can log into the Customer Portal.
- 4Save. The system assigns a unique Guest ID (e.g.
HG-00001).
Guest Detail Page
The guest detail page shows a full stay history, total spend, and a link to generate their Membership Card. Use the search bar on the Guests list to find a guest by name, email, or phone.
Housekeeping
Manage daily cleaning tasks. Tasks are either created manually or auto-generated when a guest checks out.
Task Statuses
| Status | Meaning |
|---|---|
| Pending | Task assigned but not started. |
| In Progress | Staff member currently cleaning. |
| Done | Room cleaned and verified. |
Assigning a Task
- 1Go to /housekeeping/ and click Add Task.
- 2Select the Room, the Date, the Task Type (Clean / Deep Clean / Linen Change / Inspection), and assign a Staff Member.
- 3Save. The assigned staff will see the task on their dashboard view.
Completing a Task
Open the task and change the status to Done. If the task is a post-checkout clean, the room status will automatically update to Available.
Maintenance
Log, track, and resolve maintenance issues across the property.
Priority Levels
| Priority | When to Use |
|---|---|
| Urgent | Affects guest safety or prevents room use — resolve same day. |
| High | Significant inconvenience — resolve within 24 hours. |
| Medium | Noticeable but manageable — resolve within 3 days. |
| Low | Cosmetic or minor — schedule at next opportunity. |
Logging a Maintenance Request
- 1Go to /maintenance/ and click Add Request.
- 2Select the Room (or "Common Area"), enter a Description of the issue, and set the Priority.
- 3Assign to a staff member if known. Save.
When the issue is resolved, open the request and change the status to Resolved and enter resolution notes.
Staff & HR
Manage employee records, departments, and generate ID cards. Staff records are separate from system login accounts.
Creating a Staff Record
- 1Go to /staff/ and click Add Staff.
- 2Fill in personal details: Name, Phone, Email, Department, Job Title, Start Date, and Basic Salary (GHS).
- 3Set a Clock PIN (4–6 digits) for use at the attendance terminal.
- 4Save. The system generates a staff ID (e.g.
ST-00001).
Staff ID Card
From the Staff Detail page, click Print ID Card to open a print-ready ID card with the staff member's name, role, department, and ID number.
Attendance Clocking
Track daily attendance using a PIN-based terminal or manual entry. Clocking records feed into payroll calculations.
Clock Terminal
Point a tablet or shared computer to /clock/terminal/. Staff enter their Clock PIN to clock in or out. The system records the timestamp automatically.
Manual Clock Entry (Manager)
- 1Go to /clocking/ and click Add Record.
- 2Select the Staff Member, Date, Clock In time, and Clock Out time.
- 3Save. Hours are calculated automatically.
Bulk Mark Present
For days where the full team was present, use the Mark All Present button on the Clocking list to create attendance records for all active staff in one click.
Payroll
Run monthly payroll with automatic Ghana GRA PAYE tax and SSNIT contributions calculated per employee.
Ghana Tax Engine
| Component | Rate | Based On |
|---|---|---|
| SSNIT Employee | 5.5% | Basic Salary |
| SSNIT Employer | 13% | Basic Salary |
| PAYE — Band 1 | 0% | Up to GHS 365/month |
| PAYE — Band 2 | 5% | GHS 365–475 |
| PAYE — Band 3 | 10% | GHS 475–605 |
| PAYE — Band 4 | 17.5% | GHS 605–3,767 |
| PAYE — Band 5 | 25% | Above GHS 3,767 |
Running Payroll
- 1Go to /payroll/ and click New Payroll Run.
- 2Select the Month and Year.
- 3Click Generate. The system calculates SSNIT and PAYE for every active staff member using their basic salary.
- 4Review individual records and adjust any Allowances or Deductions manually if needed.
- 5Click Finalise to lock the run. Payslips become available to print from each staff record.
Printing Payslips
Open a staff member's Payroll Record and click Print Payslip. The payslip includes gross pay, SSNIT, PAYE, total deductions, and net pay.
calculate_paye function in hotel/models.py if bands change.
Expenses
Record and track all hotel operational expenses. Expenses feed into the Financial Summary P&L report.
Expense Statuses
| Status | Meaning |
|---|---|
| Pending | Submitted, awaiting review. |
| Approved | Approved by manager — included in P&L. |
| Rejected | Not approved — excluded from P&L. |
Adding an Expense
- 1Go to /expenses/ and click Add Expense.
- 2Enter the Category (Utilities, Supplies, Maintenance, Salaries, Other), Amount (GHS), Date, and a Description.
- 3Save as Pending. A Manager or Accountant can then approve or reject it.
Financial Summary
View revenue, expenses, and profit at a glance across any date range.
Navigate to /finance/ to see:
| Panel | Description |
|---|---|
| Monthly Revenue | Total payments received from checked-in/out bookings per month. |
| Monthly Expenses | Total approved expenses per month. |
| Net Profit / Loss | Revenue minus approved expenses. Shown per month and as a running total. |
| Revenue by Room Type | Breakdown of income per room category (e.g. Suite vs Standard). |
| Expense by Category | Pie-chart breakdown of where money was spent. |
Reports
Pre-built analytics reports for management decision-making.
| Report | Description |
|---|---|
| Occupancy Rate | Percentage of rooms occupied per day/week/month. |
| Top Guests | Guests ranked by total nights stayed or total spend. |
| Booking Analytics | Bookings by status, source, and month. |
| Revenue per Room Type | Which room categories generate the most income. |
| Housekeeping Efficiency | Average time to complete clean tasks by staff member. |
Guest Portal
A self-service portal guests can access from their phone or laptop. No staff involvement required.
Portal Login
Guests navigate to /portal/login/ and enter their Guest ID (e.g. HG-00001) and their 4-digit PIN set at check-in.
What Guests Can Do
- View current booking and stay details
- See check-in and check-out times
- Browse room information and hotel facilities
- View booking history and past stays
- Submit a new room booking request
Staff: Setting a Guest PIN
When creating or editing a guest record, fill in the Portal PIN field (4 digits). Communicate this PIN to the guest at check-in. They can use it for any future visit as long as the PIN is unchanged.
HG-00001 | PIN: 1234
Hotel Settings
Super Admins can configure hotel-wide parameters that affect how the system calculates bills and displays information.
Available Settings
| Setting | Description |
|---|---|
| Hotel Name | Displayed on all printed documents and the landing page. |
| Contact Phone / Email | Shown on payslips, ID cards, and the guest portal. |
| Address | Printed on formal documents. |
| Default Check-in Time | Used when a check-in time is not manually specified. |
| Default Check-out Time | Used for check-out time defaults. |
| Tax Rate (%) | Applied to bookings — e.g. Ghana VAT 15%. |
| Service Charge (%) | Optional service charge added to bookings. |
URL Reference
All routes in the system, relative to your domain root.
| URL | Page | Min. Role |
|---|---|---|
| / | Landing Page (public) | Anyone |
| /login/ | Staff Login | Anyone |
| /dashboard/ | Dashboard | Viewer |
| /bookings/ | Bookings List | Front Desk |
| /rooms/ | Rooms List | Front Desk |
| /guests/ | Guests List | Front Desk |
| /housekeeping/ | Housekeeping Tasks | Housekeeping |
| /maintenance/ | Maintenance Requests | Front Desk |
| /staff/ | Staff List | Manager |
| /clocking/ | Attendance Records | Manager |
| /clock/terminal/ | PIN Clock Terminal | Anyone (kiosk) |
| /payroll/ | Payroll Runs | Accountant |
| /expenses/ | Expenses | Accountant |
| /finance/ | Financial Summary | Accountant |
| /reports/ | Reports | Accountant |
| /portal/login/ | Guest Portal Login | Guests (PIN) |
| /users/ | User Management | Super Admin |
| /settings/ | Hotel Settings | Super Admin |
| /admin/ | Django Admin Panel | Super Admin |
Deployment Notes
Steps for setting up or updating the HMS on a cPanel shared hosting server.
First-Time Setup
- 1Upload and extract
hotelms_sharedhosting.zipinto your hosting directory. - 2In cPanel → Python App, create a new app and set the startup file to
passenger_wsgi.py. - 3SSH into the server and run:
bash setup.sh— this creates the virtualenv, installs dependencies, runs migrations, and collects static files. - 4Copy
.env.example→.envand set a strongDJANGO_SECRET_KEY. - 5Edit
hotelms/settings_production.pyand updateALLOWED_HOSTSwith your domain name. - 6In cPanel, restart the Python App. Visit your domain — you should see the landing page.
Seeding Demo Data
# SSH into server, activate venv, then: python manage.py seed_data --settings=hotelms.settings_production
Updating the Application
- 1Upload the new files via FTP or cPanel File Manager.
- 2SSH in and run:
python manage.py migrate --settings=hotelms.settings_production - 3Run:
python manage.py collectstatic --noinput --settings=hotelms.settings_production - 4Restart the Python App in cPanel.
Key Files
| File | Purpose |
|---|---|
passenger_wsgi.py | cPanel Passenger entry point — sets virtualenv path and Django settings. |
hotelms/settings_production.py | Production settings: DEBUG=False, WhiteNoise, ALLOWED_HOSTS. |
.env | Secret key and any environment-specific values. Never commit to git. |
.htaccess | Apache rewrite rules and security headers. |
setup.sh | One-shot server setup script. |
db.sqlite3 | The database file. Back this up regularly. |
staticfiles/ | Collected static assets served by WhiteNoise — auto-generated, do not edit. |
Wisdsol Hotel Management System | User Manual v1.0 | Powered by wisdsol