Skip to content

Picture based login #14021

@rtibbles

Description

@rtibbles

This issue is not open for contribution. Visit Contributing guidelines to learn about the contributing process and how to find suitable issues.

Overview

Requirements

The requirements define the scope and success-criteria of the project. They should not be adjusted without logging decisions and notifying stakeholders.

What problem are we solving?

Kolibri currently uses username-based passwordless login with autocomplete. This creates barriers for young learners (ages 5-7) and pre-literate students who cannot recognize or select their username from text lists. In Uganda refugee learning centers, literacy learners consistently require teacher assistance for login, creating bottlenecks and preventing independent access to learning content.

Why this? Why now?

  • User testing with 7 learners (ages 5-12) in Uganda showed considerable success in using simple 3-icon sequences, with only one user on each trial run having any difficulties
  • Repeated use generally showed a significant speed up after only one previous try
  • In spite of previous attempts to speed up login, literacy learners are presented with a significant barrier - a pictorial login is a significant improvement

Outcomes

Specific needs that are being addressed, and how we will know when the project is done

  • Learners are shown the pictorial login by default when enabled
  • Coaches and admins can still access username based login
  • Coaches can see a printable list of users and their pictorial sequences when enabled
  • When the facility setting is activated, existing users without a pictorial sequence are automatically assigned one
  • New users are assigned one on creation
  • KDP administrators can enable/disable pictorial login via facility settings
  • Icons validated with users from 3+ cultural/linguistic contexts, documented through user testing
  • Median login time is under 10 seconds in Flying Colors classrooms

Constraints

Budgets, deadlines, technical limitations, and other constraints

  • 44x44px minimum touch targets, keyboard navigation support, screen reader support
  • Disabled by default (opt-in via facility settings)
  • Screen displays without scroll to view any login elements on any breakpoint
  • Release as part of patch release in 0.19 series to allow early rollout
  • Login sequence should be stored as part of facility user data so that it can be synchronized
  • If more than 500 users in facility, must turn off the pictorial based login flow

Out of scope

  • Account recovery flow for forgotten sequences
  • Biometric authentication
  • Adult user (coach/admin) migration to pictorial login
  • Custom icon upload
  • Adaptive security (4+ icon sequences)
  • Analytics dashboard
  • Sequence strength indicators
  • Animated icon feedback

Context

Relevant background information including Notion opportunities, Google docs, clearinghouse entries, slack conversations, Github issues, or any other relevant background information

  • User testing results, November 2025, YIDA/Flying Colors, Uganda:

| Learner | Passcode Icon Sequence | First sequence - did it match? Yes or no 
(Add any notes you might have about how many attempts, did the learners make corrections, etc.) | Approximate time to complete | Second sequence - did it match?  Yes or no 

(Add any notes you might have about how many attempts, did the learners make corrections, etc.) | Approximate time to complete | Notes, Observation, Question responses |
| --- | --- | --- | --- | --- | --- | --- |
| 1 | Bird, Star, Fish | 3 attempts, all right, no correlations made | 1 minute | Yes, it matched, one attempt, no corrections made | 4 seconds | Happy, smiling face, confident |
| 2 | Car, Sun, Heart | 3 attempts all right, no corrections | 30 seconds | Yes it matched, no corrections made | 3 seconds | Happy, confident, responded to questions |
| 3 | Star, Dog, Fish | 2 attempts all right, no corrections. | 8 seconds | Yes it matched, no corrections, | 4 seconds | Confident, no fear, happy |
| 4 | Apple, Car, Bird | 5 attempts, all right, no corrections made | 2 minutes | Yes it matched, no corrections made. | 3 seconds | Accurate, understanding pictures used, smiling, happy. |
| 5 | Dog, Bird, Fish | 3 attempts, all right, no corrections made | 7 seconds | It didn't match, yes were corrections made, 3 attempts, I failure among the 3 attempts | 2 minutes | Some fear, didn't tap on the right pictures, took time to respond. |
| 6 | Heart, Star, Sun | 4 attempts all correct,no corrections | 10 seconds | Yes it matched, no corrections made, I attempt. | 4 seconds | Happy, smiling, understanding the pictures |
| 7 | Bird, Heart, Car | 3 attempts, all right | 5 seconds | Yes it matched, no corrections made, 2 attempts, all right | 2 seconds | Happy, confident |

Contributors

[Fill this out as people are assigned]

  • Technical lead: [github handle]
  • Individual contributors: [list all github handles]
  • Designer: [if a specific designer is leading]
  • Other relevant LE team members: [optional, i.e. imps point person]

Goals

  • Who is this feature for? Outline user stories below, but also mention if there is a specific partner and/or deployment
  • How do we know this feature is successful?

User Stories or Requirements

[Break down the main workflows thematically, but still at a high level. How are the goals of the project realized in the UI? If there isn't a UI portion of this project, what are the key outcomes or improvements? There should probably only be a few of these per project]

Target Quarter and Due date

  • What is the timeline of this project?
    • If there is a specific due date, especially for a contractual deliverable, include it. Otherwise, include an estimated delivery date, and what quarter(s) this will be worked on

Product Issues

[Issues should be attached as sub issues as they are created. There will probably be 1-2 per User Story]

🤖 This issue was written with AI assistance, under supervision, review and final edits by @rtibbles 🤖

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions