# Go Project Ladder 🚀

A progressive set of Go projects (1/10 → 10/10) with requirements and usage expectations.


1. JSON Prettifier (Difficulty 1/10)

Requirements

Usage

jsonfmt input.json       # pretty-prints
jsonfmt -min input.json  # minifies

2. Word Counter (wc clone) (Difficulty 2/10)

Requirements

Usage

wc file.txt          # prints lines, words, chars
wc -c file.txt       # prints only characters
wc -w file.txt       # prints only words
wc -l file.txt       # prints only lines

3. Notes CLI (Difficulty 3/10)

Requirements

Usage

notes add "Buy milk"
notes list
notes delete 1

4. URL Shortener (In-Memory) (Difficulty 4/10)

Requirements

Usage

curl -X POST localhost:8080/shorten -d "https://example.com"
# returns http://localhost:8080/abc123

curl localhost:8080/abc123
# redirects to https://example.com

5. Expense Tracker (Difficulty 5/10)

Requirements

Usage

expenses add "Coffee" 150 Food
expenses list
expenses summary
expenses export report.csv

6. TCP Chat Server (Difficulty 6/10)

Requirements

Usage

go run chatserver.go
# in another terminal:
telnet localhost 9000

7. SQLite Notes App (Difficulty 7/10)

Requirements

Usage

notes add "Read Go book"
notes list
notes search "Go"
notes delete 2

8. Static Site Generator (Difficulty 8/10)

Requirements

Usage

ssg build content/ public/
# converts all markdown in content/ into HTML

9. Kanban CLI (Difficulty 9/10)

Requirements

Usage

kanban add "Learn Go concurrency"
kanban list
kanban move 1 Doing
kanban list Doing

10. Mini Git (Difficulty 10/10)

Requirements

Usage

minigit init
minigit commit -m "First commit"
minigit log

Includes the project ideas and Plans that I have.

  1. I want to create some sort of automatic telegram channel content downloader, meaning if there is something that I want from a channel to be downloaded it should download it automatically.
  2. Fuzzy search enabled notes manager and synchronisations, that will totally be helpful if merged with bookmarks
  1. Automatic mount with rclone and having some good speed
  2. An automated script for the automation of scenarios in MPTCP