Codeforces does not provide good methods to train. You have regular contests (which take place at 7am Vancouver time...), virtual contests, and the problemset. If you want a timed practice experience that lasts less than two hours, you're out of luck. The main purpose of this project is to create a practice environment that is a little more flexible, allowing for the completion of individual problems under timed conditions.
Most codeforces problems have an associated rating. A user with a rating of
backend/ Go HTTP API
frontend/ Vite + React single-page app
cd backend
go run .The API runs on http://localhost:8080 by default.
Available endpoints:
GET /api/healthGET /api/messagePOST /api/auth/registerPOST /api/auth/loginGET /api/auth/mePOST /api/auth/logoutGET /api/user.info?handles=touristGET /api/user.status?handle=touristGET /api/problemset.problems
Account endpoints use MySQL. Configure either a full DSN:
MYSQL_DSN='user:password@tcp(127.0.0.1:3306)/pathtoicpc?parseTime=true&charset=utf8mb4&collation=utf8mb4_unicode_ci' go run .or individual values:
DB_NAME=pathtoicpc DB_USER=root DB_PASSWORD=password go run .The backend creates the users and user_sessions tables on startup when MySQL is configured.
Set a custom port with:
PORT=9000 go run .cd frontend
npm install
npm run devThe frontend runs on http://localhost:5173 by default. During development, Vite proxies /api requests to the Go backend.
Routes:
//account/about/dashboard