# Frontio – Feature list

Features and improvements still to build. Problems found while testing go in
`test-notes.md` instead.

- Each item has a number. Say "build feature 3" to start one.
- **Release** is decided by Sanduni: `Launch` (needed before going live), `Later`, or
  `Not decided`. The *Suggested* note is Claude's view only.
- **Status**: `To do`, `In progress`, `Built – needs retest`, `Done` (Sanduni marks Done).

## Security and launch readiness

1. **Two-step sign-in for owner, partners and admins** (security rule 3)
   A code sent by email or text after the password. Not built yet.
   Release: Not decided. *Suggested: Launch.* Status: To do.

2. **Data-separation tests** (security rule 6)
   Automated checks that one organization, and one site, can never see another's data.
   Run after any change to queries or roles.
   Release: Not decided. *Suggested: Launch.* Status: To do.

3. **Run database updates automatically after uploading a new version**
   Today updates run when the owner opens the console. Decide how this works on the live
   server before the first live update. Until then, after uploading new files, open the owner
   console first, before anyone else signs in: for example, the activity log needs update 10
   before staff actions can be recorded.
   Release: Not decided. *Suggested: Launch.* Status: To do.

4. **Limit how often links and codes can be resent**
   Stops someone sending many texts to one employee by mistake, or on purpose.
   Release: Not decided. *Suggested: Launch.* Status: To do.

## Employees and messages

5. **Phone notifications ("web push")**
   When the employee has saved the training page to their home screen, send new courses
   and reminders as phone notifications. Android works in Chrome or from the home screen;
   iPhone only from the home screen on iOS 16.4 or newer. Texts stay as the backup.
   Needs a database change and an encryption library or extra code (ask first).
   Release: Not decided. *Suggested: Later.* Status: To do.

6. **One text when several courses are assigned at once**
   Today each Assign with "Send link now" ticked sends a text, so assigning three courses
   one after another sends three texts. Options: assign several courses in one step, or
   wait a few minutes and send one combined text.
   Release: Not decided. *Suggested: Launch.* Status: To do.

## Records and reports

7. **Limit safety reports and huddles by site**
   Admins and Supervisors with assigned sites currently see every site's safety reports
   and huddles.
   Release: Not decided. Status: To do.

8. **Old and new values in the activity log**
   Record what a value was before and after each change (section 17 of the roles document).
   Some actions already include this in the text.
   Release: Not decided. Status: To do.

9. **Compliance checklist**
   Defined in feature specification v2, section 7, and built as Compliance tracking.
   Release: Launch. Status: Built – needs retest.

## Courses

10. **Simple SCORM 2004 support**
    SCORM 1.2 works. SCORM 2004 is next, as planned.
    Release: Not decided. Status: To do.

## Tidy-ups

11. **Move the remaining page wording into the messages file**
    New messages are in `app/lib/messages.php`. Older pages still have wording in the page
    code. Move it page by page when those pages are changed.
    Release: Not decided. *Suggested: Later.* Status: To do.

12. **Line up the Due date and Renewal period dropdowns in course pop-ups**
    In the Edit pop-up the Due date box sits a little lower than the Renewal box.
    Release: Not decided. *Suggested: Launch.* Status: To do.

## Suggested (not asked for yet)

13. **Print several How-to QR codes on one sheet**
    One page with the QR codes of chosen How-to pages, to post around a site.
    Release: Not decided. Status: To do.

14. **Switch on owner and partner bundles for chosen sites**
    Today they are switched on for the whole organization only, by people who cover every site.
    Release: Not decided. Status: To do.

15. **Remove the unused `job_title_courses` table**
    Its rows were moved into bundles by database update 17. Removed by database update 18.
    Release: Not decided. Status: Built – needs retest.

16. **Page background colour for each organization**
    Today the light page background is the same for everyone; only the main and second colours
    are set per organization. Either a third colour on the organization form (needs a new
    database column), or a very light tint of the main colour worked out automatically (no new
    setting or column).
    Release: Not decided. Status: To do.

17. **Team progress for employees (no names)**
    Each site or area sees how it is doing, for example "Maple Wing: 94% on time this month", and how
    it compares with other areas. Nobody is named. Uses on-time completions already recorded.
    Idea from Sanduni (8 Nov 2026): group by job title rather than area, since employees can move between
    areas. Leaderboards wait until a real client is on board.
    Release: Not decided. *Suggested: first of the three motivation features.* Status: To do.

18. **Personal achievements for employees (private)**
    Badges only the employee sees, such as All caught up, On time 5 in a row, Quick check streak and
    Certificates all current, shown in the header of the new employee home screen.
    Release: Not decided. Status: To do.

19. **Course leaderboards (optional)**
    For each course, a short list of who finished early or scored highest in the quick check. First
    names only, the same site only, disabled by default and enabled by a Super Admin, and each
    employee can hide themselves. Points only for finishing on time or early and taking the quick
    check: never for speed through a course or for safety reports. Check with the organization about
    privacy (security rule 9) before enabling.
    Release: Not decided. Status: To do.

20. **Licence reuse protection**
    Today an archived employee frees their licence straight away, so a company could train people, archive them
    and add new ones on the same licences. Ideas: an archived employee keeps their licence for 90 days (a setting
    in the owner console); a weekly note to the owner when a company archives more than 20% of its licences in a
    month, or archives people soon after they finish training; or charge by people trained in the year.
    Release: Not decided. *Suggested 14 Nov 2026: the 90-day hold plus the owner note.* Status: To do.

21. **External courses: opened but no proof**
    A reminder to the employee, and a note to their manager, when an external course was opened but no
    certificate or attendance was sent after a set number of days.
    Release: Not decided. Status: To do.

22. **External courses: certificate number and date**
    Ask for the certificate number and completion date with the uploaded certificate, so managers can check it
    against the provider's own records.
    Release: Not decided. Status: To do.
