{"id":20621423,"url":"https://github.com/emarifer/go-cli-bubbletea-todoapp","last_synced_at":"2025-06-11T02:03:07.386Z","repository":{"id":257015801,"uuid":"857090433","full_name":"emarifer/go-cli-bubbletea-todoapp","owner":"emarifer","description":"Command line application (CLI Todo App) made with Bubble Tea (to create a TUI) \u0026 Cobra frameworks, and CRUD to a SQLite database","archived":false,"fork":false,"pushed_at":"2024-09-15T12:36:03.000Z","size":589,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-17T05:26:22.994Z","etag":null,"topics":["bubbles","bubbletea","cli-app","cli-todo","cli-tool","cobra","golang","gorm-orm","lipgloss","sqlite3","text-based","text-ui","text-user-interface"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/emarifer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-09-13T19:31:11.000Z","updated_at":"2024-09-15T12:34:41.000Z","dependencies_parsed_at":"2024-09-14T10:43:11.354Z","dependency_job_id":"634844cc-4c75-4a57-a1ba-c585ed3f4a70","html_url":"https://github.com/emarifer/go-cli-bubbletea-todoapp","commit_stats":null,"previous_names":["emarifer/go-cli-bubbletea-todoapp"],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emarifer%2Fgo-cli-bubbletea-todoapp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emarifer%2Fgo-cli-bubbletea-todoapp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emarifer%2Fgo-cli-bubbletea-todoapp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emarifer%2Fgo-cli-bubbletea-todoapp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/emarifer","download_url":"https://codeload.github.com/emarifer/go-cli-bubbletea-todoapp/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242298976,"owners_count":20104922,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bubbles","bubbletea","cli-app","cli-todo","cli-tool","cobra","golang","gorm-orm","lipgloss","sqlite3","text-based","text-ui","text-user-interface"],"created_at":"2024-11-16T12:17:48.584Z","updated_at":"2025-03-06T23:17:01.967Z","avatar_url":"https://github.com/emarifer.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n# Command line application (CLI Todo App) made with Bubble Tea (to create a TUI) \u0026 Cobra frameworks, and CRUD to a SQLite database\n\n\u003cimg src=\"doc/logo.png\" width=\"55%\"\u003e\n\n\u003cbr /\u003e\n\n![GitHub License](https://img.shields.io/github/license/emarifer/go-cli-bubbletea-todoapp) ![Static Badge](https://img.shields.io/badge/Go-%3E=1.23-blue)\n\n\u003c/div\u003e\n\n\u003chr /\u003e\n\n### Features 🚀\n\n- [x] **Using [GORM](https://gorm.io/) for agile database management:** The database used is SQLite3 and its (hidden) storage file is created in the user folder.\n- [x] **Using [Cobra](https://github.com/spf13/cobra) framework:** A library for creating powerful modern CLI applications. `Cobra` provides its own [program](https://github.com/spf13/cobra-cli) that will create your application and add any commands you want. It's the easiest way to incorporate `Cobra` into your application. If you prefer to use this option to create CLI apps with `Cobra`, install it with the command: `go install github.com/spf13/cobra-cli@latest`.\n- [x] **Using the [Bubble Tea](https://github.com/charmbracelet/bubbletea) framework:** The functional and stateful way to build terminal apps. A Go framework based on [The Elm Architecture](https://guide.elm-lang.org/architecture/). `Bubble Tea` is well-suited for simple and complex terminal applications, either inline, full-window, or a mix of both.\n- [x] **Using the [Lip Gloss](https://github.com/charmbracelet/lipgloss) library:** From the same creators of the Bubble Tea framework. It allows you to style the TUI (text-based user interface) in a similar way to how it is done with CSS, allowing you to easily create layouts.\n\n---\n\n### 🖼️ Screenshots:\n\n\u003cdiv align=\"center\"\u003e\n\n###### Terminal showing how to achieve autocompletion in the current session and the resulting list of commands:\n\n\u003cimg src=\"doc/screenshot-01.png\" width=\"80%\" align=\"top\"\u003e\n\n\u003cbr\u003e\n\n###### Terminal showing application help:\n\n\u003cimg src=\"doc/screenshot-07.png\" width=\"50%\" align=\"top\"\u003e\n\n\u003cbr\u003e\n\n###### Terminal showing successful task creation and list of tasks in table form:\n\n\u003cimg src=\"doc/screenshot-03.png\" width=\"60%\" align=\"top\"\u003e\n\n\u003cbr\u003e\n\n###### Terminal showing the task creation form indicating a warning \u0026 the details of a specific task given its ID:\n\n\u003cimg src=\"doc/screenshot-02.png\" width=\"47%\" align=\"top\"\u003e\u0026nbsp;\u0026nbsp;\u003cimg src=\"doc/screenshot-04.png\" width=\"47%\" align=\"top\"\u003e\n\n\u003cbr\u003e\n\n###### Terminal showing the update of the fields of a task given its ID \u0026 the error output of the application when the user does not enter the correct arguments:\n\n\u003cimg src=\"doc/screenshot-05.png\" width=\"48%\" align=\"top\"\u003e\u0026nbsp;\u0026nbsp;\u003cimg src=\"doc/screenshot-06.png\" width=\"48%\" align=\"top\"\u003e\n\n\u003cbr\u003e\n\n\u003c/div\u003e\n\n---\n\n### 👨‍🚀 Getting Started:\n\n#### Installing the application\n\nIf you want to install the application on your machine and you have Go installed, you can simply run the following command (requires Go 1.23 or higher):\n\n```\n$ go install -ldflags=\"-s -w\" github.com/emarifer/go-cli-bubbletea-todoapp/cmd/task@latest\n```\n\nThis will download the source code (and any necessary dependencies) and compile it into an executable that will be placed in the PATH you've set for Golang binaries.\n\n\nIf you don't have Go, you can download the appropriate executable for your system from [here](https://github.com/emarifer/go-cli-bubbletea-todoapp/releases). Once unzipped, you can place it in the folder where your system normally stores executables (although you could place it in any directory). Then, you just have to update the system PATH with that address.\n\n#### Building the app yourself (Go 1.23 or higher required)\n\n- Clone the repository and run the following commands:\n\n```\n$ go mod tidy \u0026\u0026 go run ./cmd/task -h # to start the application in development mode\n```\n\n- Build for production:\n\n```\n$ go build -ldflags=\"-s -w\" -o ./bin/task ./cmd/task # ./bin/task -h to run the application\n```\n\nIn the latter case, you can call the `task` command by placing the executable you generated in the appropriate directory on your system and proceeding as above.\n\n---\n\n### Happy coding 😀!!","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Femarifer%2Fgo-cli-bubbletea-todoapp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Femarifer%2Fgo-cli-bubbletea-todoapp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Femarifer%2Fgo-cli-bubbletea-todoapp/lists"}