Mobile & Backend & Landing
9 reads

OSG — Words Every Day

A mobile app that teaches German or English three words a day through notifications and Home Screen widgets, matched to the learner's level and job — with a FastAPI backend and a Vue admin dashboard.

Vue 3FlutterDartPythonFastAPISQLite

Overview

OSG helps people learn the vocabulary of a new language — German or English — without having to sit down and study. Three words a day arrive as notifications at 08:00, 12:00 and 18:00 and stay on the Home and Lock Screen widget. Each word comes with a translation and an example sentence, and the whole app speaks English, Uzbek or Russian.

It is aimed at people who work or plan to work abroad and have little time: they pick their level (A1–C1) and their job, and the daily words follow.

OSG app: Home, level, work area, guide

Key Features

  • Level-aware planning: two words a day at the learner's CEFR level and one a step above; lower levels only when nothing else is left.
  • Words for your job: about 1,000 words per language, including lists for 8 work areas (retail, IT, medicine, hospitality, construction, logistics, office, care work).
  • Works without opening the app: the next 7 days of words and reminders are scheduled as local notifications; the widgets switch words on their own.
  • Fixes reach phones in minutes: users flag a wrong translation on any word; after a fix in the dashboard, phones pick it up on their next check or with pull-to-refresh.
  • Native widgets: Android Home Screen (Kotlin) and iPhone Home Screen small/wide + Lock Screen (SwiftUI, Liquid Glass aware).
  • First-run guide: a coach-mark tour on the real screens and a one-tap "add the widget" flow.

Architecture

  • Mobile app — Flutter / Dart: offline-first word bank in SQLite (Drift), a deterministic 7-day planner, local notifications and a widget bridge. Builds and ships on its own; the server is optional.
  • Backend — Python / FastAPI: versioned word packs per language pair, anonymous usage pings, mistake reports, an admin API and Alembic migrations. Old app versions keep working: new fields and job-area words are opt-in per request.
  • Admin dashboard — Vue 3: word editing with CEFR level and work areas, bulk import with dry run, translation coverage, reports and usage stats. A read-only demo runs as a static build with no backend.
  • Content pipeline: word lists as JSON with a validator; job-area lists built from simple text files.

OSG admin dashboard

Links