ChipCLASSROOM HEROES
← Back to Privacy Policy

Data Inventory

Last Updated: March 8, 2026

This page lists every piece of student data that Classroom Heroes collects and stores. For each field, we explain what it is, why we collect it, how long we keep it, and what happens when a student is deleted.

1. Student Account Data

Stored in the students table in our Supabase database.

FieldWhat It IsWhy We Collect ItHow Long We Keep It
nameStudent's first name onlySo teachers and classmates can identify the studentUntil student is deleted
class_idLinks the student to their classSo the student appears in the right classUntil student is deleted
total_pointsTotal points the student has earnedTo track overall progress and reward learningUntil student is deleted
current_streakNumber of consecutive days the student has been activeTo encourage daily engagement with bonus pointsUntil student is deleted
last_active_dateThe last date the student used the platformTo calculate the daily streakUntil student is deleted
avatarAvatar customization choices (colors, features)To let the student personalize their characterUntil student is deleted
is_activeWhether the account is active or deactivatedTo allow teachers to deactivate students without deleting dataUntil student is deleted
created_atWhen the student account was createdInternal record keepingUntil student is deleted
updated_atWhen the student record was last changedInternal record keepingUntil student is deleted

When a student is deleted, every field in this table is permanently removed.

2. Learning Progress

Stored in the student_progress table. One row per student per episode.

FieldWhat It IsWhy We Collect ItHow Long We Keep It
video_completedWhether the student watched the episode videoTo track which episodes the student has completedDeleted when student is deleted
quiz_completedWhether the student passed the episode quizTo unlock the next episode and show progress to teachersDeleted when student is deleted
quiz_scoreThe student's best quiz score for this episodeTo show the teacher how well the student understood the materialDeleted when student is deleted
game_completedWhether the student completed the episode mini-gameTo track full episode completionDeleted when student is deleted
game_scoreThe student's best game score for this episodeTo award points and show performance to teachersDeleted when student is deleted
completed_atWhen the student completed this episodeTo show completion timeline to teachersDeleted when student is deleted

All learning progress rows are automatically deleted when the student is deleted (cascading deletion).

3. Quiz Attempts

Stored in the quiz_attempts table. One row per quiz attempt.

FieldWhat It IsWhy We Collect ItHow Long We Keep It
answersThe answers the student chose for each quiz questionTo calculate the score and show which questions were missedDeleted when student is deleted
scoreHow many questions the student got rightTo determine if the student passed (80% required)Deleted when student is deleted
max_scoreThe total number of questions on the quizTo calculate the percentage scoreDeleted when student is deleted
completed_atWhen the student submitted this quiz attemptTo order attempts by timeDeleted when student is deleted

All quiz attempt rows are automatically deleted when the student is deleted (cascading deletion).

4. Game Attempts

Stored in the game_attempts table. One row per game attempt.

FieldWhat It IsWhy We Collect ItHow Long We Keep It
scoreThe score the student earned in the mini-gameTo award points and track performanceDeleted when student is deleted
completed_atWhen the student finished the gameTo order attempts by timeDeleted when student is deleted

All game attempt rows are automatically deleted when the student is deleted (cascading deletion).

5. Badges Earned

Stored in the student_badges table. One row per badge earned.

FieldWhat It IsWhy We Collect ItHow Long We Keep It
badge_idWhich badge the student earnedTo display earned badges on the student profileDeleted when student is deleted
earned_atWhen the student earned the badgeTo show badge history in orderDeleted when student is deleted

All badge records are automatically deleted when the student is deleted (cascading deletion).

6. Session Data

Session data is stored as cookies in the student's browser and as a hash in our database.

ItemWhat It IsWhy We Use ItHow Long It Lasts
student_session cookieAn HMAC-signed token stored in the browserTo keep the student logged in without a password8 hours, then expires automatically
session_token_hashA hashed version of the session token, stored in the databaseTo verify the session cookie is valid when the student makes requestsCleared on logout or when the student is deleted
csrf_token cookieA random security token stored in the browserTo prevent cross-site request forgery attacksBrowser session (cleared when the browser is closed)

The session_token_hash stored in our database does not contain the student's name, email, or any identifying information. It is only a cryptographic hash used to verify that a session cookie is valid.

7. Data We Do Not Collect

Classroom Heroes does not collect the following from students:

  • Email addresses
  • Last names
  • Home addresses
  • Phone numbers
  • Photos or videos of students
  • Biometric data (fingerprints, face scans, voice prints)
  • Location data (GPS, IP-based geolocation)
  • Browsing history outside the Classroom Heroes app
  • Social media accounts
  • Parent or guardian contact information

We designed Classroom Heroes to work with the minimum amount of student information possible. A first name and a class code are all a student needs to use the platform.