HR & PAYROLL MANAGEMENT SYSTEM — COMPLETE LOCAL TRIAL PACKAGE Company: Shohoj Shop Clothing Ltd. Project: HRPAY-BMD-20260911-01 Trial Version: v0.39.4-dev Consolidated PURPOSE This package is the final-style Local UAT package for the maintenance team. It includes the Python/Django source code, database connection configuration, Local/LAN startup scripts, sample data, role-based demo accounts, ZKTeco FO-M1 test preparation, UAT/bug templates, installation guide, user manual and developer orientation. RECOMMENDED LOCAL SERVER TEST (Windows) 1. Extract the ZIP to a normal folder, e.g. D:\HR-Payroll-v0.39.4-dev 2. Read docs\HRPAY_Installation_Maintenance_Guide_BN.pdf 3. Run 00-FREEZE-MIGRATIONS-WINDOWS.bat on this exact reviewed source. Keep MIGRATION-FREEZE-RESULT.txt and the generated backend\apps\*\migrations\*.py files. 4. Confirm the freeze result says PASS and send the result/migration files back for review before final Local Practice acceptance. 5. Create a FRESH PostgreSQL UAT database by following DATABASE-POSTGRESQL-SETUP.txt. Do not point this build directly at the old v0.37.x ad-hoc migration database. 6. Double-click 01-SETUP-LOCAL-UAT-WINDOWS.bat and select PostgreSQL (option 1). 7. Run 03-CHECK-LOCAL-UAT-WINDOWS.bat 8. Run 04-RUN-SMOKE-TESTS-WINDOWS.bat 9. Start on server: 02-START-LOCAL-UAT-WINDOWS.bat 10. For colleagues on the same private LAN: 02B-START-LOCAL-UAT-LAN-WINDOWS.bat 11. Test roles/workflows using the demo accounts below. 12. Record bugs in BUG-LOG-TEMPLATE.csv and send screenshot + Bug ID + action/expected/actual result. LOCAL-UAT DEMO ACCOUNTS Password for all demo accounts: UAT-ChangeMe-2026! - uat.hr : HR Admin + sample Manager - uat.accounts : Accounts - uat.payroll : Payroll Officer - uat.it : IT - uat.employee : Employee Self-Service - uat.employee2 : Second Employee scenario The setup also asks you to create your own Super Admin. NEVER use these demo credentials in Production. DATABASE Approved architecture: Django/Python + PostgreSQL. SQLite is included only as a quick smoke-test fallback; use PostgreSQL for the main Local UAT because it matches the final database family. This project does not use Microsoft SQL Server. If SQL Server becomes a mandatory production requirement, that is an architecture change and must be decided before final v1.0.0. ZKTECO FO-M1 The package includes FO-M1 device profile/mapping and CSV/USB punch ingestion for practical testing. Direct TCP/IP or ADMS communication must be verified against the physical FO-M1 during Local/Live UAT before being treated as final. Use ZKTECO-FO-M1-LOCAL-TEST-CHECKLIST.csv and FO-M1-LIVE-PUNCH-TEST.csv. DOCUMENTS - docs\HRPAY_Installation_Maintenance_Guide_BN.pdf / .docx - docs\HRPAY_User_Manual_BN.pdf / .docx - docs\HRPAY_Developer_Orientation_BN.pdf / .docx TRIAL GATE Local PostgreSQL Setup -> Smoke Test -> Functional UAT -> FO-M1 Test -> Parallel Payroll -> Bug Fixes -> Release Candidate -> Live Trial -> v1.0.0 Final Handover. IMPORTANT BOUNDARY This source package has been syntax/static/package-structure checked in the build environment. The migration snapshot cannot be generated here because the build environment has no installable Django dependency network, so the explicit freeze step must run on your Local UAT machine first. Full Django + PostgreSQL runtime execution, backup/restore proof and physical FO-M1 communication test must occur on your Local UAT server. Keep MIGRATION-FREEZE-RESULT.txt, smoke-test logs, screenshots and bug evidence for the next patch/review.