Sign in
    GolangGolang·Basic

    CLI Task Manager

    A command-line interface (CLI) application for managing your daily tasks. Users can add, list, complete, and delete tasks. The task list is persisted to a local file (e.g., JSON), so your tasks are saved between sessions.

    What you'll build

    This project is an advanced command-line interface (CLI) Task Manager built in Go. You will start by building a simple application to manage tasks (add, list, complete, delete) that are persisted in a local JSON file. As the project evolves, you will significantly enhance its capabilities to make it a robust, portfolio-ready application. These enhancements include adding features like task priorities, due dates, and tags. You will refactor the application to follow best practices in software architecture by separating concerns, preparing it for a seamless upgrade of the persistence layer from a simple JSON file to a more powerful SQLite database. You will also implement a professional CLI structure using the 'cobra' library, write unit tests to ensure code quality, and add user-friendly touches like formatted and color-coded output. This project is designed not just to teach you the fundamentals of Go, but to also instill good software engineering practices that are valuable for turning a project into a potential business or a standout piece in your portfolio.

    What you'll learn

    • Go fundamentals: structs, slices, functions, and interfaces.
    • File I/O using the `os` package.
    • Data serialization and deserialization with JSON (`encoding/json`).
    • Building command-line applications and parsing arguments.
    • State management by persisting data to the filesystem.

    Roadmap

    10 steps · 64 tasks
    1. ○
    2. ○
    3. ○
    4. ○
    5. ○
    6. ○
    7. ○
    8. ○
    9. ○
    10. ○
    Sign in to start

    Project facts

    Level
    Basic
    Track
    Golang
    Steps
    10
    Tasks
    64
    Learners
    +1114
    Sign in to start