Skip to content

trukhinyuri/done

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

12 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Done

Go Version License Platform

A beautiful, NinStyle-inspired gamified task manager that rewards efficiency and consistency. Built with Go and vanilla JavaScript for maximum performance.

Done App Screenshot

Demo Video

Done App Demo

Features

  • ๐ŸŽฎ Advanced Gamification - Database-backed point system with streaks, achievements, and smart predictions
  • โšก Fast & Native - Lightweight Go backend with native window support
  • ๐ŸŒ™ Dark Mode - Beautiful dark theme with NinStyle-inspired design
  • ๐ŸŽฏ Smart Tasks - Time tracking, deadlines, and drag-and-drop reordering
  • ๐Ÿ’พ Local First - Your data stays on your machine (~/tasks.db)
  • ๐ŸŽ macOS App - Native .app bundle with WKWebView
  • ๐Ÿ“Š Beautiful Reports - Daily HTML reports saved to ~/tasksReport/
  • ๐Ÿ† Golden Victory Screen - Completed tasks displayed in celebratory style
  • ๐Ÿ“Œ Sticky Header - Schedule section stays visible while scrolling
  • ๐Ÿ”Š Sound Effects - NinStyle audio feedback (toggleable)

Installation

macOS App

# Build from source
git clone https://github.com/trukhinyuri/done.git
cd done
./build.sh --app
open bin/Done.app

Command Line

# Build and run
git clone https://github.com/trukhinyuri/done.git
cd done
./build.sh
./done

Visit http://localhost:3001

Usage

  1. Add Task - Enter task name and estimated time
  2. Set Deadline - Optional deadline with smart date auto-completion
  3. Start Working - Click task to expand controls and start timer
  4. Complete - Mark as done to earn points based on efficiency
  5. View Progress - Check your daily achievements in the golden "Done Today" section

Keyboard Shortcuts

  • Cmd/Ctrl + Enter - Quick add task
  • Cmd/Ctrl + V - Paste from clipboard (works in all fields)
  • Escape - Cancel dialogs

Gamification System

All gamification data is now stored in the database for persistence across sessions.

Point Calculation

Base Points:

  • 10 points - Tasks < 1 hour
  • 25 points - Tasks 1-2 hours
  • 50 points - Tasks > 2 hours

Bonuses:

  • +10 points - Complete before deadline
  • Streak bonus - Increases with consecutive days
  • Level bonus - 500 points when leveling up

Levels

  1. Done (0 points)
  2. Apprentice (500 points)
  3. Journeyman (1,500 points)
  4. Expert (3,000 points)
  5. Master (5,000 points)
  6. Champion (8,000 points)
  7. Hero (12,000 points)
  8. Legend (17,000 points)
  9. Mythic (25,000 points)
  10. Deity (50,000 points)

Achievements

  • ๐ŸŽฏ First Steps - Complete your first task
  • ๐Ÿ”ฅ On Fire - 3 day streak
  • โšก Week Warrior - 7 day streak
  • ๐ŸŒŸ Monthly Master - 30 day streak
  • ๐Ÿ’Ž Point Collector - Earn 1,000 points
  • ๐Ÿ‘‘ Point Master - Earn 5,000 points

Reports

Daily HTML reports are automatically generated in ~/tasksReport/ with:

  • Individual task completions with timestamps
  • Beautiful dark theme matching the app
  • Daily summaries with statistics
  • Task completion times and durations

Report Example

Development

Prerequisites

  • Go 1.21+
  • Chrome or Safari (for app mode)

Build

# Development
go run done.go

# Production binary
./build.sh

# macOS app bundle
./build.sh --app

# All platforms
./build.sh --all

Project Structure

done/
โ”œโ”€โ”€ done.go                 # Main server
โ”œโ”€โ”€ frontend/              # Web UI
โ”‚   โ”œโ”€โ”€ index.html
โ”‚   โ”œโ”€โ”€ index.css         # NinStyle-inspired theme
โ”‚   โ”œโ”€โ”€ gamification.js   # Points & achievements
โ”‚   โ””โ”€โ”€ *.js              # Vanilla JavaScript
โ”œโ”€โ”€ lib/
โ”‚   โ”œโ”€โ”€ database/         # Task & gamification storage (BoltDB)
โ”‚   โ””โ”€โ”€ webview/          # Native window support
โ””โ”€โ”€ build.sh              # Build script

API

Method Endpoint Description
GET /api/getTasks List all tasks
POST /api/addTask Create task
POST /api/completeTask Mark as done & update gamification
POST /api/removeTask Delete task
POST /api/rearrangeTasks Reorder
GET /api/getGamification Get points, streaks, level
POST /api/updateGamification Update gamification data
GET /api/getTodayResults Get today's completed tasks

Docker

docker build -t done .
docker run -p 3001:3001 -v ~/tasks.db:/tasks.db -v ~/tasksReport:/tasksReport done

Configuration

done -help
  -port int        Port (default 3001)
  -dbpath string   Database path (default "~/tasks.db")
  -native         Open in native window
  -chrome         Open in Chrome app mode

Recent Updates

  • Database-backed Gamification - Points, streaks, and achievements now persist in database
  • Golden Victory Screen - "Done Today" section with celebratory golden theme
  • Beautiful Reports - HTML reports with dark theme saved to ~/tasksReport/
  • Smart Predictions - Days to next level calculated only after completing tasks
  • UI Improvements - Fixed hover effects, improved text formatting

Contributing

Pull requests are welcome! For major changes, please open an issue first.

License

MIT


Report Bug โ€ข Request Feature

About

Done. The Task Manager

Resources

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors