Skip to content

Commit a27923b

Browse files
committed
Merge branch 'main' of github.com:openpatch/classi
2 parents b1621bc + 5536b16 commit a27923b

1 file changed

Lines changed: 171 additions & 0 deletions

File tree

PRIVACY_POLICY.md

Lines changed: 171 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,171 @@
1+
# Privacy Policy for Classi
2+
3+
**Effective date:** 2026-04-28
4+
**Last updated:** 2026-04-28
5+
6+
This Privacy Policy describes how **OpenPatch** ("we", "us", or "our") handles
7+
information in connection with the **Classi** mobile and desktop application
8+
("the App"). Please read this policy carefully. By using the App you confirm
9+
that you have read and understood it.
10+
11+
---
12+
13+
## 1. Who We Are
14+
15+
Classi is developed and maintained by **OpenPatch**. If you have any questions
16+
or concerns about this Privacy Policy you may contact us at:
17+
18+
- **GitHub:** <https://github.com/openpatch/classi/issues>
19+
20+
---
21+
22+
## 2. Summary
23+
24+
> **Classi is a local-first application. It does not collect, transmit, or share
25+
> any personal data with us or any third party.** All data you enter — including
26+
> student names, grades, notes, and checklists — is stored exclusively on your
27+
> own device in an encrypted database file that you control.
28+
29+
---
30+
31+
## 3. Information the App Stores on Your Device
32+
33+
To deliver its teaching-management features, Classi stores the following
34+
categories of data **locally on your device only**:
35+
36+
| Category | Examples |
37+
|---|---|
38+
| Group / class data | Group names, academic year labels |
39+
| Student data | First name, last name, archived status, avatar |
40+
| Academic records | Grades, grade systems, grade history |
41+
| Notes | Free-text notes linked to students or groups |
42+
| Checklists | Checklist titles, items, and student-linked status |
43+
| Material tracking | Material names and per-student tracking status |
44+
| App settings | Chosen library path, auto-backup preferences, language |
45+
| Security credentials | Encrypted passphrase hash, recovery key (stored in the OS secure keystore) |
46+
47+
None of this data is ever sent to our servers, any analytics service, or any
48+
third party.
49+
50+
---
51+
52+
## 4. Data We Do Not Collect
53+
54+
We do **not** collect:
55+
56+
- Names, email addresses, or any personally identifiable information about you
57+
as the teacher or about your students
58+
- Usage analytics, crash reports, or telemetry
59+
- Location data
60+
- Device identifiers or advertising IDs
61+
- Payment information
62+
63+
The App has **no network features** and makes no outbound connections of any
64+
kind.
65+
66+
---
67+
68+
## 5. Encryption and Security
69+
70+
All library data is stored in a **SQLCipher-encrypted** `.classi` database file
71+
protected by a passphrase you choose during first-run setup. A recovery key is
72+
generated at setup time so you can regain access if you forget your passphrase.
73+
74+
The passphrase is stored in the device's **secure keystore**
75+
(`flutter_secure_storage`) and never leaves your device.
76+
77+
Optionally, you may enable **biometric unlock** (fingerprint / face). In that
78+
case the App stores the database passphrase in the OS secure keystore under a
79+
biometric-protected key, using the platform biometrics API (`local_auth`). No
80+
biometric data is accessed or stored by the App itself — this is handled
81+
entirely by the operating system.
82+
83+
---
84+
85+
## 6. Backups and Exports
86+
87+
If you enable **auto-export backups**, the App writes a `.classi-backup` file to
88+
a folder you select on your device. This file is a portable, encrypted copy of
89+
your library. It remains on your device; we have no access to it.
90+
91+
You are responsible for the security of any backup files you store, share, or
92+
transfer (e.g. via cloud storage, e-mail, or USB).
93+
94+
---
95+
96+
## 7. Permissions
97+
98+
The App requests only the permissions necessary to function:
99+
100+
| Permission | Purpose |
101+
|---|---|
102+
| **Storage / Files (READ_EXTERNAL_STORAGE, WRITE_EXTERNAL_STORAGE, MANAGE_EXTERNAL_STORAGE on Android 10 and lower)** | Reading and writing the `.classi` library folder and backup files you choose |
103+
| **Biometric / Fingerprint (USE_BIOMETRIC, USE_FINGERPRINT)** | Optional biometric unlock; only requested if you enable the feature |
104+
105+
No other device permissions are required or requested.
106+
107+
---
108+
109+
## 8. Children's Privacy
110+
111+
Classi is a tool **for teachers**, not for use directly by children. Although
112+
teachers may enter student names and academic records, these records are stored
113+
locally on the teacher's device and are never transmitted. We do not knowingly
114+
collect any data from individuals under the age of 13 through the App.
115+
116+
---
117+
118+
## 9. Data Retention and Deletion
119+
120+
Because all data is stored on your device, you are in full control of retention:
121+
122+
- **Deleting a library:** Remove the `.classi` folder from your device to
123+
permanently erase all data.
124+
- **Uninstalling the App:** Uninstalling the App removes app-private data. If
125+
you stored your library in shared storage (recommended), the `.classi` folder
126+
will remain until you manually delete it.
127+
- **Secure storage:** Passphrase entries in the OS secure keystore are removed
128+
when you uninstall the App on most Android versions.
129+
130+
---
131+
132+
## 10. Third-Party Libraries
133+
134+
Classi uses open-source Flutter packages to deliver its functionality. The
135+
libraries listed below run entirely on-device and do not transmit data:
136+
137+
| Package | Purpose |
138+
|---|---|
139+
| `drift` / `sqlite3mc` | Encrypted local database |
140+
| `flutter_secure_storage` | Secure keystore access |
141+
| `local_auth` | Biometric unlock |
142+
| `file_picker` | Folder and file selection dialogs |
143+
| `easy_localization` | UI translations (English and German) |
144+
| `go_router` | In-app navigation |
145+
| `fl_chart` | Grade history charts |
146+
| `avatar_maker` | Student avatar creation |
147+
148+
None of these libraries collect or transmit personal data.
149+
150+
---
151+
152+
## 11. Changes to This Policy
153+
154+
We may update this Privacy Policy from time to time. When we do, we will update
155+
the **"Last updated"** date at the top of this document and publish the new
156+
version in the repository. Continued use of the App after an update constitutes
157+
acceptance of the revised policy.
158+
159+
---
160+
161+
## 12. Contact
162+
163+
If you have questions, concerns, or requests related to this Privacy Policy,
164+
please open an issue on our GitHub repository:
165+
166+
<https://github.com/openpatch/classi/issues>
167+
168+
---
169+
170+
*Classi is open-source software released under the
171+
[MIT License](LICENSE).*

0 commit comments

Comments
 (0)