Skip to content
Alan David edited this page Mar 4, 2021 · 1 revision

Gig offers a way to keep track of all the tasks you've done separated by category. In other words, a log of all done tasks.

Conventions

  • gig: Name of the CLI application.

Scope

This section defines what's the purpose of the software, and what it must and it must not do.

This app serves as a tracker of all the tasks I've done separated by category. This way I have historic logs of tasks by project as a reflection of what I've completed.

  • Create categories
  • Add tasks related to a category
  • See the tasks of a specific category
  • List all categories
  • Export all database history to a single JSON file
  • Store all entries in a single file

Use Cases

User creates a new category called "apply"

$ gig new "apply"

User adds tasks to "apply"

$ gig add apply "Attended engineering weekly meeting"
$ gig add apply "Merged some branch"

User list all categories

$ gig list

User lists tasks of a category

$ gig list -t "apply"

User exports all entries to a JSON file

$ gig export

Out of Scope

  • User authentication
  • Keep track of users
  • Keep track of statistics
  • Export tasks by category

Architecture

The system is a Command Line Interface (CLI) application. All data will be saved in one file in the user's machine, and in a key-value fashion.

Data Model

Category

  • Key - int
  • Value - Database Bucket

Task

  • Key - int
  • Value - string
  • Created - string

Costs

By the firsts iterations of app, there won't be costs in any of the user and developer hands. As of the user, the CLI will be a free binary that everyone can use.

As of the developer, there won't be costs of maintaining the app. The app makes no use of any cloud computing resource or data storage service.

Clone this wiki locally