Application Updates, August 2020 Through October 2021
Application Updates to Existing Features
- Quality of Life Application Updates
- Batch Accept / Mark as Paid: Added “Batch Accept” user interface on Home > Financial > Outstanding.
- Active Gyms Near Me: Updated find gyms near me feature to only display active facilities.
- Kiosk Camera Integration: Updated user interface to automatically disable camera integration when user selects “Automatically pick the closest class timewise and log attendance” option on Integrations and Kiosk > Sign In Kiosk.
- Update Identification and Processing of Active Members: Re-coded the scheduled task that reviewed member status to handle each facility individually, thereby reducing the timeframe in any given day whereby the active and alumni status of users would be inaccurate to a few seconds opposed to several dozen minutes.
- Hourly Automations: Moved certain hourly automations to a dedicated scheduled task and thread to provide more reliable timing on notifications, added SMS reminder logs, and provisioned error handling notifications.
- Reservation Reporting: Updated Home > Reports > “Reservations” and “Members who reserved, but didn’t attend” to output consistent columns and display the date and time the reservation was originally made.
- Geo Location Optimization: Force short timeout on geo location requests to ensure fast load-times on several features that trigger a location pre-population event.
- Dashboard Fast Load: Updated Dashboard load methodology to post-back requests for all data elements, reducing initial load time by up to seventy percent, and enhancing UX with loading and completion events.
- Error Handling Notification: Added language to JavaScript load error to instruct users how to perform a cache refresh to correct error.
- Door Access Control Call Logs: Force call logs to load with Validate User filter, reducing load time to mere seconds instead of minutes when applications was loading thousands of keep alive requests, and doubled processing and memory resources of database server.
- Door Access Control Lockup: Restructured some recurring queries to ensure 3000 – 5000 millisecond load times on Door Access Control post back requests.
- Amazon S3 Image Storage: Deployed Amazon S3 for all file storage within the RhinoFit application.
- WAF, Load Balancer, Processing Power, and Infrastructure: All public-facing RhinoFit end points now has multiple servers behind a load balancers, providing enhanced up-time and performance to end users, and affording protection against common application attacks and DDoS attacks via Amazon’s Web Application Firewall and Shield.
- General Enhancements and Upgrades
- Terms of Service 2020: Terms of Service uploaded with signature request enabled.
- HTML5 WebCam Integration: Converted Flash-based web camera interface to HTML5.
- Optional Find Gym Near Me: Added switch to manually remove a facility from find gym near me results.
- More Precise Gym Search: Removed rounding on latitude and longitude to increase accuracy of find gym near me search results in United States.
- Product Sales Report – Product Variations: Updated Product Sales report to show each product variation and its associated report values, rather than aggregating all sales under the root product.
- Sort Payments by Month: Added a numerical column to Home > Reports > Payments Month report to allow for ascending and descending sorting by month.
- Offline Payment Options, New: Added “CashApp”, “Venmo”, and “Paypal” as new offline payment options in Accept Payment user interface.
- Knowledge Base for Reports: Added support in Knowledge Base to load on reports that have associated articles.
- Cleanup Scheduled Tasks: Removed some historical but now unused scripts from scheduled task services related to hourly automations.
- Offline Payment Options, New: Added “Payroll Deduct” offline payment type to “Accept Payment” user interface.
- RhinoFit Email Service: Updated email backend authentication to a modern authentication protocol.
- Group Membership Size: Expanded online group signup from maximum of 5 users to 15.
- Failed Bill Invoice: Added support to display printable bill invoices on failed bills, plus some minor updates to UI to clarify functionality.
- Disable Barcode Generation: Installed setting on Setup > Setup > Configuration, “Automatic barcode generation”, to enable or disable automatic barcode generation for users who do not have a barcode, and added help box assistance to explain the functionality.
- Order Memory: Expand available memory from 256MB to 512MB for Products > Orders page.
- Batch Reserve Scope Limiter: Updated batch reserve UI to only display classes with end dates after today and start dates before or on today.
- Find Gym Near Me Outside United States: Updated find gyms near me feature to work on facilities outside of the United States and deployed ReCaptcha to mitigate against abuse by bots.
- Signup Page: Update registration page to clarify that it creates a facility rather than a user account within a facility and deployed ReCaptcha to mitigate against bots.
- Security Related Application Updates
- Automated Data Injection Vulnerability: Patched data injection vulnerability with bot-detecting session checker.
- Optional Bot Detection: Enable or disable bot detection per facility.
- SQL Vulnerability: Added SQL injection detection and prevention to some non-public inputs.
- Disabled Yearbook Support: Removed supporting pages and infrastructure for annual yearbook distribution, as they are no longer used and the available end points exposed potential attack vectors.
- ReCaptcha: Installed ReCaptcha on public Prospect Widget and modified server configuration to block abusive web traffic.
- Prevent XSS: Addition XSS vulnerability prevention added to application and other public-facing end points.
- Application Updates to Fix Bugs
- Purchase Limit Blocking Membership Edit: Fixed memberships with purchase limits, which were applied to users to the point of maxing out the purchase limit, that prevented the applied user membership from being edited.
- Appointment Configuration Required for Public Calendar: Fixed public calendar failing to load classes and appointments and failing to consider location and instructor filters when appointment configurations were not setup.
- Business Hours on Staff Calendar: Fixed business locations setup without hours causing the Book Appointments calendar to not load.
- Absent Student Report: Fixed Absent Student Report from throwing an error on request.
- Asynchronous Bill Processing: Forced bill processing to perform another check, during scheduled task execution, before paying bill to ensure the bill amount hasn’t changed state during processing; updates bill in memory to new state if change is detected.
- Payments Report Refund Description: Fixed refunds not properly correlating and reporting its original bill description.
- Monthly Statement Image: Updated Rhino image on Monthly Statement.
- Quotes in Waiver Setup: Added support for quotation marks when setting up waiver text.
- Web Cam and Signature Conflict: Fixed conflicting DOM elements on features where web cam and waiver signatures were conducted concurrently (Sign In Kiosk, View Member, Student Profile).
- Set Active Members: Separated active member reconciliation from other scheduled tasks to prevent unexpected data collisions between membership counts and automated subscription billing.
- MIME x-asm Handling: Updated spreadsheet upload support for MIME type x-asm, as some software saves CSV and excel files with the x-asm MIME type.
- Forecast Report Discrepancy: Updated Home > Reports > “Forecasting for the current month” report to ensure non-renewing memberships of the prior month are excluded and cancelled bills are ignored.
- User Info and Product Order Bug: Fixed user info data display corruption (View Member, Access Tracking), and Products > Orders long load times that sometimes also generated an error.
- Erroneous Failed Payment Emails: Fixed logic that allowed for a failed payment notification that was linked to a user set to “Do Not Contact” to cause subsequent notifications, in an edge case, to notify the incorrect account owner.
- Membership Store Pricing Headers: Fixed public membership store’s item information to display the correct type of billing (weekly, monthly, etc.) for the respective membership.
- Seller of New Memberships: Fixed “Sold By” output on Home > Reports > New Memberships to properly display the staff name and link to staff member, instead of the purchasing user, for sold memberships.
- Data Conversion Error: Changed user input to sanitize birthday input as Y-m-d, fixing Prospect Widget and Waiver Tablet input that was not properly saving user birthdays.
- Barcode ID Oversights: Updated membership store signup page to only display the Barcode ID if configured as a required field, and updated Home > Reports > “Current active members” to display each member’s Barcode ID.
- Appointment Membership Erroneous Free Booking: Fixed logic in weekly and monthly appointment membership subsystems that allowed for future appointments (next week or next month) to be booked for free, regardless of prior usage or membership renewal status.
- Membership Store Tuition and Packages: Fixed tuition and packages on public membership store to properly display price and payment terms.
- Appointment Overview Report: Updated Home > Reports > Appointment Overview to display bill status and filter on bill status and a minor update fixing custom fields on the student registration page.
- Concurrent Membership with Trial Conflict: Updated scheduled task that sets user status to always report a single active membership, despite concurrent trial memberships, as an active user instead of inadvertently (in edge cases) reporting the user as a trial member.
- Class History Report: Fixed Class History report so it shows instructor’s names and added a filter for “Has Attendance and Reservations”.
- Public Store Single-Payments: Fixed single-payment memberships (Punch Pass) sticking to bottom of page on public store.
- Hourly Automations: Updated reminder automations to fully link to their respective classes and log resulting outbound messages.
- Send Receipt (GMS): Fixed outbound receipts of GMS Credit Card and ACH Payments to transmit post-transaction status of bill and payment.
- Geo Location Service Provider: Changed geo location provider and integration to ensure fast load-times on several features that trigger a location pre-population event.
- Reservations Today Report: Updated Reservation(s) Today dashboard tile to exclude reporting reservations that persist in memory after a class time or class is deleted.
- Public Field User Data Propagation: Forced user correlated system-based data elements entered on public-facing systems to store with user object, rather than custom field associations, which facilitates numerous down-stream features that rely on inherent user data to function.
- SMS Text Messaging: Fixed sporadic SMS automation delivery issues, whereby certain encoded text was not being accepted by RhinoFit’s SMS provider and its API had no documented encoding requirements, whereby associated systems now parse and re-encode messages prior to delivery.
- Kiosk Erroneously Displaying All Class Times: Re-coded kiosk input search to capture unique user upon entry of barcode into sign in kiosk, ensuring the user is loaded, their membership level is accessed, and their eligible class times are displayed.
- Member Data Required Field: Fixed profile data entry page for admin and user. If one field was set to required they were all being required. Now, each required field behaves independently as expected.
- Currency on POS Product Page: Updated POS Product to display facility’s actual currency, instead of default USD ‘$’, when viewing details on a product.
- Public Membership Store Amount: Fixed membership store’s amount displaying erroneous values for packages and taxes.
- Moneris Receipts: Fixed receipts generated from Moneris payment processing so they properly display transaction data in outbound emails.
- Edit User Save Function: Fixed edge case where certain values in memory were posting to DOM, causing JavaScript errors, and preventing user edits from being saved.
- Image Upload File Size: Increased file size limit from 1MB to 10MB on Upload user interface as it pertains to uploading a .jpg, .png, or .gif file, matching the 10MB limit when taking a picture with a webcam or uploading a .pdf, .doc, .docx, .csv, .xls, or .xlsx.