Last updated 18 September 2026
Nkwadaa STEM is an offline-first learning app covering Ghana's JHS (Basic 7–9) and SHS (Year 1–3) STEM curriculum. It's built and run by Marcus Perry Agbolosu. This page explains, in plain language, what data the app does and doesn't collect.
Reading chapters, doing labs, taking quizzes and BECE practice, using the glossary, calculator and flashcards — all of that works completely offline, with no account and no email. When you first open the app it asks for a first name or nickname. That is the only thing you must give to start, and we ask you not to use your full name. Your nickname and a few progress counters are sent to our server without an account (details below), so we can tell whether students are really learning with the app.
A handful of features are optional and need you to sign in, because they only make sense as something shared between devices or people: syncing your progress across devices, Quiz Duel, Team Duel, Chess, the Community boards, and joining a teacher's classroom. Signing in for any of these is what the rest of this page is about.
| Data | Why |
|---|---|
| Email address & a display name you choose | To identify your account when you sign in on another device. |
| Your password | Never stored or transmitted as plain text. It's run through bcrypt on our server the moment you set it, and only the resulting hash is kept — we cannot see or recover your actual password, even if asked to. |
| Your learning progress (XP, chapters completed, quiz history) | So it follows you between your phone, tablet or computer. |
| Quiz Duel / Team Duel / Chess activity (picks, scores, moves) | To run the match you're playing and show the result. |
| Community posts, comments and votes, under your display name | Visible to other signed-in students on the same board, same as any forum post. |
| Which classroom you've joined, if any | So your teacher can see who in their class is active. |
Everyone who uses the app, with or without an account, sends the following. It is tied to a random ID the app makes on your device, not to your email, phone number, location or any real-world identity:
| The first name or nickname you typed when you started | So we can see which learner's progress is which, and whether real progress is happening. |
| Your XP, how many chapters you've opened, labs and quizzes you've done, and your study streak | To measure real use of the app. If you were offline, the totals are sent when you're next online. |
| Whether the app runs in a web browser, on the home screen, or as the Android app, and roughly when you last used it | To know how many devices have the app and whether students come back. |
We do not receive your answers, your notes, or what you read. A shared phone can hold several students; each student's nickname and progress are recorded separately. To have a nickname and its progress removed, email us (see below) with the nickname and roughly when you started.
The You tab has a switch for notifications. It is off until you turn it on and allow it in your browser or phone. If you do, we store the delivery address your browser gives us for this device (a private address at your browser's own notification service, such as Google, Mozilla, Apple or Microsoft, with no name or email in it), the random device ID above, which alerts you chose, the hour you picked for the daily reminder, and your time zone offset so the reminder arrives at your local time. If you are signed in, we also link it to your account so we know who to tell when someone replies to your Community post. The message text itself passes through your browser's notification service, encrypted so that only your device can read it.
Turning notifications off in the app removes all of this straight away. Deleting your account removes it too. We only use it to send the alerts you chose.
The Deep Dives page has a Lecture archive. Those lectures are streamed from YouTube and are not stored in the app. Nothing is loaded from YouTube while you browse the page. Only when you press Play does your device load YouTube's player (from youtube-nocookie.com), which is operated by Google and handles your data under Google's own privacy policy. We do not send YouTube your name, your account or your progress. If you never press Play on a lecture, YouTube is never contacted.
Most students using this app for the JHS curriculum are children. We take that seriously: there is no advertising anywhere in this app, we never sell data, and the account system only exists to make specific features work — not to build a profile of anyone. The Community boards are visible to other students, moderated by student vote and staff review (see below), and any account that misuses them can be banned from posting. As with any online space, we encourage students to use the multiplayer and community features with a parent's or teacher's awareness.
Open your account panel in the app and tap Delete my account. This is immediate and permanent: your email, password and private progress are erased right away, and your sign-in stops working instantly — we don't wait for anything to expire. If you've posted in the Community or played a duel with someone else, that content stays up (removing it would delete other students' replies or match results too), but your name on it is replaced with "Deleted user."
You can also email marcusperryagbolosu@gmail.com to ask what data we hold about you, or to have it deleted for you.
This app and its data practices are intended to follow Ghana's Data Protection Act, 2012 (Act 843), administered by Ghana's Data Protection Commission.
If anything here changes, we'll update the date at the top of this page. Checking back occasionally is the best way to stay current.