Skip to content
André Paul Grandsire edited this page Apr 12, 2026 · 2 revisions

Do It - Developer Documentation

This document provides an overview of the Do It project architecture and how to navigate its source code.

Project Overview

Do It is a GNOME task manager application written in TypeScript, using GTK4 and libadwaita.

Architecture

src/
├── core/           # Platform-agnostic business logic & interfaces
│   ├── interfaces/  # Abstract interfaces (settings, persistence, task-view)
│   └── utils/       # Core utilities (sort)
├── platform/       # Platform-specific implementations
│   └── gnome/       # GNOME/GTK4/Adw implementation
├── hooks/          # Reusable hooks (settings, task-sort)
├── utils/          # Utility functions
└── *.ts            # App entry points and shared types

Key Concepts

Core Layer (src/core/)

Contains platform-agnostic interfaces and implementations:

  • interfaces/: Abstract interfaces for settings, persistence, and task views
  • utils/: Core utilities like sorting algorithms

Platform Layer (src/platform/)

Contains platform-specific implementations:

  • Each platform has its own subfolder with platform-specific code

Shared Types (src/)

  • app.types.ts: Core types like ITask
  • app.enums.ts: Shared enums like SortingField, SortingStrategy
  • app.strings.ts: Localized strings
  • app.static.ts: Static configuration

Import Aliases

The project uses TypeScript path aliases (defined in tsconfig.json):

  • ~src
  • ~coresrc/core
  • ~gnomesrc/platform/gnome
  • ~hookssrc/hooks
  • ~utilssrc/utils
  • ~actionssrc/platform/gnome/actions

Building

  • GNOME: Use Meson (meson setup build && ninja -C build)
  • Use yarn dev for development

Resources