# Steady Steady is an ADHD-friendly task manager built with Flask. It provides a modular application foundation, secure authentication, task and subtask management, a seven-item Today view, status filters, priorities, progress indicators, and a single-task Focus Mode with countdowns, time blocks, context cues, positive completion feedback, forgiving streaks, bulk text capture, and portable JSON backups with reversible completed-task clearing. Per-user settings control theme, reading style, completion sound, and future reminder frequency. ## Local setup ```bash python -m venv .venv source .venv/bin/activate python -m pip install -r requirements.txt flask --app app run --debug ``` The development server is available at `http://127.0.0.1:5000`. Copy `.env.example` to `.env` or export its values in your shell. Replace the sample `SECRET_KEY` before using the app beyond local development. ## Database migrations Apply the committed migrations after installing dependencies: ```bash flask --app app db upgrade ``` When a model changes, generate a migration with `flask --app app db migrate -m "Describe the schema change"`, review the generated operations, and commit them so every environment applies the same schema. ## Tests ```bash python -m pytest ``` Tests use an isolated in-memory SQLite database and never write to the local development database. ## Data and backups After signing in, open `/tasks/transfer` to: - import up to 200 UTF-8 Markdown or plain-text task lines; - download a versioned JSON backup without credentials or account identifiers; - merge or replace tasks from a validated Steady backup; and - clear completed tasks with an immediate user-scoped undo action. JSON restore validates the complete file before changing tasks. Keep downloaded backups private because task descriptions may contain personal information. ## Personalization Open `/settings/` after signing in to choose Light, Dark, or system-controlled color mode; enable a dyslexia-friendly local reading style; turn completion sound on or off; and save a future reminder-frequency preference. The browser reminder control checks capability only. It does not request notification permission, register a service worker, or schedule reminders.