How tangislearning/todolist works
TodoList is a local-first, cross-platform task manager with desktop and Android support. Its main workflow is users managing tasks and related features in the JavaScript interface, with backend APIs persisting task data in SQLite; platform services provide device-specific capabilities. Additional branches cover attachments, recurrence, views, export, LAN sharing, WebDAV sync, and storage-location migration. Edges are limited to relationships evidenced by excerpts, the SOURCE INDEX, or README; some frontend-to-backend wiring is not shown and is therefore omitted.
Main entry points: webdav_data_sync.py WebDAV sync · todo_api.py Todo API · todo_database.py SQLite database · service.py Storage facade
Components 23
User interface
- Frontend shell
frontend/js/main.js - Task interaction
frontend/js/features/todo/todo.js - Views and filters
frontend/js/features/view-manager.js - Settings
frontend/js/features/settings/settings.js
Application API
- Todo API
backend/api/todo_api.py - Feature API mixins
backend/api/mixins - Attachment API
backend/api/mixins/attachment_api_mixin.py
Task data
- SQLite database
backend/database/todo_database.py - Task CRUD
backend/database/mixins/task_crud_mixin.py - Database schema
backend/database/schema.py - Recurrence rules
backend/features/recurrence - Attachment service
backend/features/attachment/attachment_service.py
Data and sync
- Storage facade
backend/storage/service.py - App configuration
backend/config_manager.py - Data export
backend/storage/data_export.py - WebDAV sync
backend/features/webdav/webdav_data_sync.py - WebDAV client
backend/features/webdav/webdav_client.py - LAN sharing
backend/features/p2p - Storage migrator
backend/storage/migrator.py
Platform services
- Platform factory
backend/platforms/core/factory.py - Platform capabilities
backend/platforms/interface/service.py - Backend startup
backend/start.py
Other components
- User
Connections 26
- User → Frontend shell: uses
README.md - Frontend shell → Task interaction: loads
- User → Task interaction: manages tasks
README.md - User → Views and filters: selects views
README.md - User → Settings: configures
README.md - Todo API → SQLite database: creates
backend/api/todo_api.py - Todo API → Data export: creates
backend/api/todo_api.py - Todo API → LAN sharing: creates
backend/api/todo_api.py - Todo API → Feature API mixins: inherits
backend/api/todo_api.py - Feature API mixins → Attachment API: exports
backend/api/mixins/__init__.py - Attachment API → Attachment service: calls
backend/api/mixins/attachment_api_mixin.py - Attachment API → SQLite database: reads and writes
backend/api/mixins/attachment_api_mixin.py - SQLite database → Database schema: initializes
backend/database/todo_database.py - SQLite database → Storage facade: resolves path
backend/database/todo_database.py - Task CRUD → Recurrence rules: uses rules
backend/database/mixins/task_crud_mixin.py - Storage facade → App configuration: reads settings
backend/storage/service.py - Storage facade → Storage migrator: coordinates migration
backend/storage/service.py - Backend startup → Todo API: creates
backend/start.py - Backend startup → SQLite database: creates
backend/start.py - Backend startup → WebDAV sync: starts
backend/start.py - WebDAV sync → WebDAV client: uses
backend/features/webdav/webdav_data_sync.py - WebDAV sync → Storage facade: uses
backend/features/webdav/webdav_data_sync.py - WebDAV sync → App configuration: reads settings
backend/features/webdav/webdav_data_sync.py - WebDAV sync → Platform factory: uses
backend/features/webdav/webdav_data_sync.py - Platform factory → Platform capabilities: implements
backend/platforms/core/factory.py - App configuration → Platform capabilities: gets config path
backend/config_manager.py