Repository navigation
Home
This document provides an overview of the Do It project architecture and how to navigate its source code.
Do It is a GNOME task manager application written in TypeScript, using GTK4 and libadwaita. It targets Linux/GNOME only.
src/
├── actions/ # Gio SimpleAction handlers
├── persistence/ # Data storage implementation (gio-persistence.ts)
├── static/ # Static configuration grouped by domain (actions, settings, sorting, sidebar, tasks, messages)
├── store/ # Stateful stores (list-store.ts, project-store.ts)
├── views/ # UI code counterparts (e.g., doit.ts)
├── widgets/ # UI components (`.ui` files)
├── utils/ # Utility functions and settings
└── *.ts # App entry points and shared types
-
app.types.ts: Types likeITask -
app.enums.ts: Enums likeSortingField,SortingStrategy,AppSignals -
app.strings.ts: Localized strings -
app.wrapper.ts: Application lifecycle
Static configuration grouped by domain: action names (actions.ts), settings keys (settings.ts), sorting options (sorting.ts), sidebar items (sidebar.ts), task icons (tasks.ts), and debug messages (messages.ts).
Gio SimpleAction handlers that wire UI interactions to application behavior.
GTK widget implementations that display tasks and manage the UI (e.g., doit.ts, task-item.ts).
GTK4 .ui templates loaded via GResource.
File-based JSON storage using Gio (gio-persistence.ts).
Stateful stores that coordinate app-wide state and emit signals (e.g., list-store.ts holds the tasks, project-store.ts discovers projects from the task store).
Helper functions: settings access (settings.ts), sorting logic (sort.ts, tasks.sort.ts), logging (log-manager.ts), and the build-time generated application.js.
The project uses a single TypeScript path alias (defined in tsconfig.json):
-
~→src
- Use Meson (
meson setup build && ninja -C build) - Use
yarn devfor development