t-learn
A full-stack education platform that delivers interactive coding lessons through a terminal-style web interface.

- Role
- Software developer
- Built with
- Go (net/http), PostgreSQL, SQLC, Goose, React, TypeScript, Docker Compose
What it does
Students browse courses and lessons with the cd and ls commands and work through multi-step tasks, and the platform tracks their progress. Administrators create and manage courses, lessons and verification tasks through admin commands.
- Web terminal with cursor movement, command history and copy/paste.
- Lessons render from Markdown, including code blocks.
- Role-based admin endpoints and a seeder for demo content.
Architecture
A Go REST API (standard net/http with custom routing) handles authentication, content and progress. PostgreSQL holds the data, with type-safe queries generated by SQLC and migrations run by Goose. The React + TypeScript frontend emulates the terminal and talks to the API over REST.
Web sessions use JWTs, the CLI uses API keys, and Argon2id hashes passwords.