A simple chores / to-do manager that just works
  • TypeScript 33.1%
  • Go 28.8%
  • Vue 24.2%
  • CSS 9.5%
  • Nix 2.3%
  • Other 2.1%
Find a file
2026-06-08 13:27:26 -07:00
app Add coverage reporting 2026-06-06 14:01:25 -07:00
cmd Add node run to command 2026-06-03 14:57:15 -07:00
frontend-test/unit Add coverage reporting 2026-06-06 14:01:25 -07:00
internal/pkg Fix api documentation 2026-06-05 07:51:29 -07:00
public Initial commit with any real content 2026-05-02 14:32:33 -04:00
.envrc Suppress error messages if nix not installed 2026-06-04 14:08:11 -07:00
.gitignore Add coverage reporting 2026-06-06 14:01:25 -07:00
.nuxtrc Unit tests for task functions 2026-06-04 23:15:24 -07:00
devshell.toml Add go to direnv 2026-06-03 14:57:15 -07:00
Dockerfile Update dockerfile for monorepo 2026-06-03 15:00:16 -07:00
flake.lock Add nix devshell 2026-06-03 14:57:15 -07:00
flake.nix Add nix devshell 2026-06-03 14:57:15 -07:00
go.mod Add node run to command 2026-06-03 14:57:15 -07:00
go.sum Add node run to command 2026-06-03 14:57:15 -07:00
Makefile Update makefile 2026-06-03 14:57:15 -07:00
nuxt.config.ts Unit tests for task functions 2026-06-04 23:15:24 -07:00
package-lock.json Add coverage reporting 2026-06-06 14:01:25 -07:00
package.json Add coverage reporting 2026-06-06 14:01:25 -07:00
README.md Initial commit with readme 2026-06-03 14:51:19 -07:00
shell.nix Add nix devshell 2026-06-03 14:57:15 -07:00
tsconfig.json Initial commit with any real content 2026-05-02 14:32:33 -04:00
vitest.config.ts Unit tests for task functions 2026-06-04 23:15:24 -07:00

Donezo

A simple chores / to-do manager that just works

Goals

  • Simple all around
  • Flexible for even the most complex task schedules
  • Sensible defaults
  • No such thing as overdue

TODO

Backend written in Go State with Gorm (sqlite for now)

Frontend TBD

  • Models

    • Metatable

      • gorm.Model
        • ID
        • CreatedAt
        • UpdatedAt
        • DeletedAt
      • ExternalID (Guid)
    • Task

      • Title (String)
      • Description (String)
      • OccurrenceRule (Null)
      • AssignBy (Enum: LastCompleted, LeastCompleted, RoundRobin, Random)
      • AssignableTo (List)
    • User (We assume a single admin level role for now)

      • Name (String)
      • Email (String)
      • Password (String)
    • OccurrenceRule

      • Task (Task)
      • Frequency (Enum: Daily, Weekly, Monthly, Yearly, etc.)
      • Count (Int)
      • StartDate (DateTime)
      • EndDate (DateTime)
      • SkipInterval (Int) Number of intervals to skip between occurrences (e.g. every 2 days/weeks/months/years)
      • ByDay (List<Enum: Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday>)
      • ByMonth (List)
      • ByWeekDay (List)
      • ByMonthDay (List)
    • TaskAssignment

      • Task (Task)
      • User (User)
      • CompletedAt (DateTime)
  • Application Logic

    • Task Scheduling
    • Tests
    • More stuff I have not added yet
  • API

    • Endpoints /api/v1/
      • User Management
        • /user/register
          • POST
        • /user/login
          • POST
        • /user/logout
          • POST
        • /users
          • GET
        • /user/{id}
          • GET
          • PUT
          • DELETE
        • /oidc (Reserved for future OIDC logins)
      • Task Management
        • /tasks
          • GET
          • POST (e.g. to create a new task)
        • /task/{id}
          • GET
          • PUT
          • DELETE
          • POST (e.g. to mark as completed)
  • Frontend

Frontend

A proposed frontend for Donezo

Setup

  • Install dependencies: npm install
  • Start dev server: npm run dev
  • Build for production: npm run build
  • Preview prod build: npm run preview