The Legacy Senior Communities is committed to providing a clean environment to all residents and guests. To achieve this goal, housekeeping checkups are performed. Currently, the process is completely manual, and no data is saved. Therefore, we are tasked to fulfill the semester goal of creating the basis for a housekeeping check-up application.
Specifically, we need to design and develop an internal housekeeping quality control (QC) enterprise web application to convert manual, paper-based processes into an automated, digital experience—to significantly increase the efficiency, accuracy, and organization of housekeeping QC processes at The Legacy’s Midtown Park community in North Dallas.
-
The mobile web app shall facilitate quality checks on cleaned rooms by housekeeping leaders.
-
The app must systematically track individual housekeeping team member' performance since the start of their employment, aimed for use in performance reviews.
-
The general users of the web app shall be the housekeeping management team.
-
A signup and login system shall be in place for expansion of the management team.
-
Users should be able to select, sort, and filter a list of cleaning jobs that need quality control.
-
Users must be able to mark completed and incomplete tasks for each cleaning job.
-
Users must be able to mark if a room is missing or has a late housekeeper.
-
Users should be able to submit pictures for proof within the housekeeping quality control job report.
-
A cleaning score for each job, calculated based on the percentage of completion from a provided rubric, should be recorded and reported for each cleaning of a housekeeping team member.
-
Users should be able to sort and filter the rubric.
-
Users should complete reports within the Evaluate page.
-
The form should display relevant information, including date, room details, team members, and cleaning job type (Daily or Detailed/Yearly).
-
A predefined list of requirements should be provided based on room type and cleaning job requirements. For items that do not need to be cleaned during every job, such as items that only need to be checked weekly or monthly, they should only appear on the list when these items are required to be checked.
-
Users can add or remove requirements as needed and provide additional inputs such as notes and comments.
-
Once submitted, the report should not be editable by the user.
-
Users should be able to print out the requirement list for the room to be distributed to a team member
-
The app must generate dynamic and interactive performance reports for each housekeeping team member.
-
Users should be able to identify team members who are excelling or underperforming in their cleaning jobs.
-
Users should be able to select housekeeping team members to view their performance data and organize to identify patterns/tendencies (e.g., housekeeping team members consistently miss specific items that need to be cleaned).
-
The web app shall show a chart displaying team members’ cleaning scores for the past three months by default and the ability to select a time range.
-
Users shall be able to sign reports to indicate completed interventions digitally.
-
Users should be able to print reports.
-
The app should store performance data for up to one year. 3.8 Users can digitally sign reports to indicate intervention, if needed, has been completed.
-
Users shall be able to add more room categories.
-
Users shall adjust room categories depending on the resident.
-
Users should manage requirements for each room.
-
Users shall be able to write notes for each room.
-
Users should be able to create/update/delete buildings, floors, and rooms.
-
Users shall be able to assign team members to rooms to create a schedule for the team members.
-
Users should be able to drag housekeepers' icons to rooms to create schedules.
-
Task assignment should separate common areas and rooms.
-
Users should be able to print the team members' schedules out in the correct format.
-
Users should be able to create/read/update/delete team members under their management.
-
All users should share the same pool of users
-
The app's user experience should align with The Legacy Senior Communities’ brand standards, which can be seen on Legacy’s Landing Page.
-
The user interface should resemble or follow Salesforce’s Lightning Design System.
-
Provide a simple and intuitive interface for users with basic levels of technological proficiency.
-
Users and leaders should be able to customize settings to meet their unique needs and preferences.
-
The app should support multiple languages
-
The printed schedules, requirement lists, and reports should support multiple languages.
-
The app should provide efficient response times for users during quality checks and data input.
-
The app should provide real-time updates on the status of housekeeping tasks, such as when a quality control checkup has been completed.
- The system must maintain high reliability with minimal downtime.
- Ensure compatibility with major web browsers, mobile devices, and tablets.
- The codebase should be well-documented to facilitate easy maintenance and updates.
- The app should have privacy and security measures in place to protect information
- The web app should be hosted on cloud services
- Install Node.js on your machine
- Download and install MySQL Workbench and set up a new local server onto your machine. (SQL Workbench guides you through the set up process)
- Download the MySQL Shell in order to run queries on the locally hosted database.
-
Run the following command in the terminal
sqlsh -u <USERNAME>
-
Run the following command in the MySQL Shell to connect to the database
\connect <USERNAME>@localhost:<PORT>/<DATABASE>
USERNAME
is the account that was setup to access the databasePORT
is the value set during database setupDATABASE
is the name given to the database during setup
-
Clone the Github Repo to your local machine.
git clone https://github.com/UTDallasEPICS/Legacy-Housekeeping-QC.git
-
Create a .env file in the root directory of the local rep that contains the following information:
DATABASE_URL="mysql://<USERNAME>:<PASSWORD>@<DB_HOST>:<DB_PORT>/<DATABASE>" NEXT_PUBLIC_PRISMA_URL="mysql://<USERNAME>:<PASSWORD>@<DB_HOST>:<DB_PORT>/<DATABASE>" NEXTAUTH_URL="http://<S_HOST>:<S_PORT>" NEXTAUTH_SECRET="<BASE64SECRET>"
-
USERNAME
: The username credentials required to connect to the database -
PASSWORD
: The password credentials required to connect to the database -
DB_HOST
: The IP of the MySQL database running on the machine -
DB_PORT
: The port of the MySQL database running on the machine -
S_HOST
: The IP of the next server running on the machine -
S_PORT
: The port of the next server running on the machine -
BASE64SECRET
: Secret used for security (more information below)Use the following command to generate a base64 secret for the NEXTAUTH_SECRET field.
openssl rand -base64 32
requires openssl installation and environment setup
-
-
Install necessary project dependencies from the root directory.
npm install
Will install dependencies into the node_modules folder, full list of dependencies can be viewed in the package.json file
-
Migrate the Prisma scheme contained in the repo to your database. Use the same command upon any changes to the schema to update your local database.
npx prisma migrate dev
-
Run the local development server.
npm run dev
-
Open the following URL in the web browser to view the web app
http://<S_HOST>:<S_PORT>