go-itmo · Case study

All of ITMO.One Go import.

An unofficial Go library for the whole ITMO ecosystem: every route of my.itmo.ru and the BARS gradebook, plus the full ITMO.ID login. Two dependencies.

0my.itmo.ru routes
0typed methods
0BARS REST routes
0dependencies

How it fits together

  1. 01ITMO.ID
  2. 02my.itmo.ru
  3. 03BARS
01

Why

Every student tool around ITMO re-implements the same login and scrapes the same pages. I wanted one typed client that does it right, so my own bots and sites could stop doing it badly.

02

Coverage

  • All 452 routes of my.itmo.ru as 809 typed methods.
  • All 81 routes of the BARS REST API.
03

The login, all of it

ITMO.ID is Keycloak. The library handles PKCE, one-time codes, single sign-on across ITMO services and refresh-token rotation, so a session just keeps working.

04

Small on purpose

The only dependencies are golang.org/x/oauth2 and golang.org/x/net.

go get github.com/kewldan/go-itmo

Command palette

Jump to a section, a case study or a profile.