A collection of backend practice projects built with Go while learning backend development.
These projects revolve around building and extending an ASCII Art Generator, gradually adding new features such as file output, text alignment, colors, and a web interface.
The goal was to learn Go by building real tools, not just studying theory.
A command-line tool that converts text into ASCII art using different banner styles.
Input
Hello
Output
_ _ _ _
| | | | ___| | | ___
| |_| |/ _ \ | |/ _ \
| _ | __/ | | (_) |
|_| |_|\___|_|_|\___/
- Converts text into ASCII art
- Multiple banner styles
- Handles newlines
- Validates input characters
- Reads ASCII templates from files
go run . "Hello" standard
Adds the ability to save generated ASCII art into a file.
go run . --output=result.txt "Hello" standard
Output will be written to:
result.txt
- File creation in Go
- Writing to files
- Handling CLI flags
- Error handling
Adds alignment support to ASCII art output.
- left
- right
- center
- justify
go run . --align=center "Hello" standard
- Terminal width detection
- Spacing calculations
- Layout formatting
Adds color support to ASCII output using ANSI escape codes.
go run . --color=red Hello
- ANSI escape codes
- Terminal styling
- Output manipulation
A web version of the ASCII generator built using Go's HTTP server.
Users can enter text on a webpage and receive ASCII art generated by the backend.
- Web form input
- Banner selection
- ASCII output display
- Error handling
- Static file serving
- HTML templates
- User enters text on webpage
- Form sends POST request to Go server
- Server processes the text
- ASCII art is generated
- Result is rendered back to the page
ascii-art-web
│
├── main.go
│
├── banners
│ ├── standard.txt
│ ├── shadow.txt
│ └── thinkertoy.txt
│
├── templates
│ └── index.html
│
├── static
│ └── style.css
│
└── README.md
These projects helped me improve my backend development skills in:
- Go programming
- HTTP servers
- File handling
- CLI tool development
- String manipulation
- Template rendering
- Error handling
- Debugging and refactoring code
Instead of jumping into large frameworks, I focused on building small tools from scratch to better understand how backend systems work.
By progressively adding features such as:
- File output
- Alignment
- Color
- Web interfaces
I was able to learn how real backend applications evolve over time.
Possible upgrades include:
- REST API version of the generator
- Docker support
- More ASCII fonts
- Improved web UI
- Downloadable ASCII output
Ayodeji Olanrewaju
Backend developer in training focused on building practical tools with Go.
GitHub Portfolio in progress.
