homedocumentation
$man itl

DOCUMENTATION

Complete guide to every feature in ITL. Learn how to maximize your competitive programming workflow — from template browsing to progress tracking and contest scheduling.

15 sections
All features covered
Always up to date
$cat getting_started.md

Getting Started

Informatics Template Lib (ITL) is a competitive programming template library designed to help you find, copy, and organize optimized algorithm implementations for contests. Think of it as your personal algorithm toolbox — always accessible, always ready.

Whether you're preparing for Codeforces rounds, AtCoder contests, LeetCode weeklies, or CodeChef challenges, ITL centralizes every template you need in one searchable hub.

Quick Start Checklist
[01]Browse the template library at /categories or /templates to find the algorithms you need.
[02]Click any template to see its full code, complexity analysis, and explanatory notes.
[03]Copy the code with one click and paste it directly into your contest solution.
[04]Create an account to unlock personalization: save custom templates, track progress, organize collections, and more.
[05]Link your competitive programming handles (Codeforces, AtCoder, etc.) in Settings to see your rating stats.
Pro tip:You don't need an account to browse and copy templates. But creating one unlocks powerful features like progress tracking, custom template versions, and collections.
$ls templates/ --verbose

Browsing Templates

Templates are organized into categories (Graph Theory, Dynamic Programming, Math, Trees, Geometry, etc.). Each category groups related algorithms together for intuitive discovery.

Category Browsing
Navigate by algorithm family. Each category shows a count of available templates and a color-coded icon.
Fuzzy Search
Hit Ctrl+K (or ⌘K) from anywhere to open the global search. It uses fuzzy matching so you can find templates even with typos.
Syntax Highlighting
All code is rendered with Shiki for accurate, IDE-quality syntax highlighting across C++, Python, Java, and more.
Rich Notes & Math
Templates include algorithm explanations with Markdown formatting and LaTeX math rendering (via KaTeX) for formulas.
Template Detail Page Includes
Full source code with line numbers
Time & space complexity annotations
Multiple language implementations (when available)
Tags for quick categorization
Like counter and copy counter
Contributor attribution
Use the keyboard shortcut ⌘K or Ctrl+K to instantly jump to the search bar from any page. The fuzzy search powered by Fuse.js will match partial words, abbreviations, and even misspellings.
$cp template.cpp ./solution.cpp

Copy & Use

Every template has a one-click copy button. Click it, and the entire code block is copied to your clipboard — ready to paste into your IDE or online judge submission box.

[01]Open any template page.
[02]If the template supports multiple languages, switch between tabs (C++, Python, Java, etc.).
[03]Click the copy icon in the top-right corner of the code block.
[04]Paste directly into your contest environment.

Templates are contest-optimized: they use fast I/O, minimal headers, and clean naming conventions so you can integrate them into solutions without refactoring.

The copy counter on each template tracks how many times it's been copied globally. Popular templates tend to be battle-tested and reliable for contests.
$useradd --register

User Accounts

Creating a free account unlocks the full power of ITL. Here's what you get:

Custom Templates
Save your own modified versions of any template with your personal optimizations.
Collections
Organize templates into named groups — like 'Contest Favorites' or 'Must-Know Graph'.
Progress Tracking
Mark templates as Learning, Implemented, or Mastered to track your algorithmic growth.
Liked Templates
Like templates to build a personal favorites list visible in your dashboard.
Contributions
Submit new templates or suggest edits to existing ones for admin review.
CP Profiles
Link your Codeforces, AtCoder, LeetCode, and CodeChef handles for rating tracking.
Public Profile
A shareable profile page with your avatar, display name, bio, linked handles, and CP stats.
How to Register
[01]Click Login in the navbar, then 'Create Account'.
[02]Enter your username, email, and password.
[03]Check your email for a verification code.
[04]Enter the code to verify and activate your account.
$cat dashboard/overview.log

Dashboard Overview

Your dashboard is the command center. The Overview tabgives you a bird's-eye view of your entire ITL activity:

Overview Bento Cards
LearningImplementedMastered— Quick count cards showing your progress distribution
Saved templates count
Collections count
Contributions submitted
Liked templates count
Recent progress timeline
Codeforces rating widget (if handle linked)

The dashboard uses a tab-based navigation system. Switch between Overview, My Templates, Contributions, Liked, Collections, Statistics, and Preferences.

$ls ~/templates --saved

My Templates

The My Templates feature lets you save personalized versions of any template. When you visit a template page while logged in, you can:

[01]Click 'Personalize' on any template detail page.
[02]Edit the code to match your personal coding style, add custom macros, or optimize for your use case.
[03]Save your custom version — it's stored in your account and accessible from the dashboard.
[04]Your custom version is separate from the original. The original stays untouched.

In your dashboard under the my_templates tab, you can search, browse, and directly open any of your saved custom templates. Each entry shows the template name, language, and last updated date.

This is perfect for maintaining your own "contest kit" — standard templates modified with your preferred variable names, I/O methods, and debug macros.
$ls ~/collections/

Collections

Collections let you group templates into custom folders. Think of them as playlists for algorithms.

Example Collections
Contest Essentials — BFS, DFS, Dijkstra, Binary Search, Segment Tree
Weak Topics — Templates you struggle with and need to practice
Div2 Must-Know — Algorithms that appear frequently in Div2 contests
[01]Go to the Collections tab in your dashboard.
[02]Click 'Create Collection' and give it a name and optional description.
[03]Visit any template page and add it to a collection from the personalization panel.
[04]View, manage, and remove items from your collections in the dashboard.
$itl pdf compile --layout=2-col

Reference Generation

The ICPC Team Reference Builder (/editor) lets you compile your algorithm templates into a print-ready, contest-compliant LaTeX PDF reference booklet (similar to Stanford, MIT, or KACTL reference documents).

Live PDF Preview
Real-time split-view live rendering powered by Tectonic LaTeX compilation. See exact page layouts and formatting before exporting.
Multi-Column Density
Toggle between 1-column, 2-column, or 3-column layout density to fit maximum code into contest page limits (e.g. 25-page ICPC limit).
Collection & Template Load
Import saved collections directly from your dashboard or add individual templates into your custom reference booklet with one click.
KACTL Code Hashes
Automatically generate MD5 verification hashes for each code section to ensure zero typing errors when copying code during live contests.
PDF Layout & Formatter Settings
Document Title & Branding: Customize title, team name, and institution.
Column Layout: 1, 2, or 3 columns per page.
Font Size: Small, Medium, or Large typography density.
Notes & Hints: Custom problem notes in text, lined notebook, or clean mode.
Line Numbers & Page Breaks: Toggle line numbers and page-break per template.
Export Theme: Monochrome (print-friendly), Dark, or Light themes.
How to Generate a Reference Document
[01]Navigate to the ICPC Reference Builder at /editor (or click 'Add to Reference' from any template page).
[02]Load a saved collection from your dashboard or pick templates manually.
[03]Customize algorithm code, add custom hints or edge cases in the notes area.
[04]Click 'PDF Settings' to tune column density, KACTL hashes, titles, and font size.
[05]Toggle 'Live PDF Preview' to inspect the rendered PDF output.
[06]Click 'Generate PDF' to compile and download your contest-ready reference booklet.
ICPC Contest Ready: Use 2-Column or 3-Column mode with Small Font Size and Monochrome Theme to maximize code density and ensure your reference booklet easily stays within official page limits while producing clean, high-contrast printouts.
$track --status pipeline

Progress Tracking

Progress tracking is one of the most powerful features in ITL. It transforms the platform from a passive copy-paste library into an active study system.

The 3-Stage Pipeline
Learning
You've started studying this algorithm. You understand the concept but haven't coded it from memory yet.
Implemented
You've successfully coded this algorithm at least once. You can implement it with reference but not fully from memory.
Mastered
You can write this algorithm from scratch during a contest without looking anything up. It's in your muscle memory.
How to Set Progress
[01]Visit any template detail page while logged in.
[02]Look for the 'Progress' selector in the personalization panel on the right side.
[03]Click one of the three status buttons: Learning, Implemented, or Mastered.
[04]Your status is saved instantly and reflected in your dashboard statistics.
Why this matters:Before a contest, check your dashboard. If segment trees are at "Learning" but the contest likely has tree problems, you know to review. This self-awareness directly improves your rating trajectory.
$stats --readiness-score

Statistics & Analytics

The Statistics tab in your dashboard visualizes your progress data:

Readiness Score
A radial ring showing your mastery percentage — the fraction of tracked templates you've fully mastered.
Status Breakdown
Progress bars for each status (Mastered, Implemented, Learning) showing distribution across all tracked templates.
Tracked Implementations
A filterable list of every template you're tracking, with status badges and links to the template pages.
Status Filters
Filter the list by All, Mastered, Implemented, or Learning to focus on specific areas.
The Readiness Score answers the question: "What percentage of the algorithms I'm studying am I contest-ready for?" Aim for 70%+ before entering a rated contest.

The overview tab also shows a Recent Progress Timeline — your latest status changes with timestamps, so you can see your learning momentum at a glance.

$git push origin contribution

Contributing

ITL grows through community contributions. Logged-in users can submit two types of contributions:

New Template
Submit a new algorithm implementation. Provide the title, category, code (in one or more languages), complexity annotation, and optional notes.
Edit Request
Suggest improvements to an existing template — fix bugs, optimize performance, add an alternative language, or improve notes.
Contribution Workflow
[01]Navigate to the /contribute page (or click 'Contribute' in the navbar).
[02]Select whether you're submitting a new template or an edit to an existing one.
[03]Fill in the form with all required fields.
[04]Submit — your contribution enters the review queue.
[05]An admin reviews and approves, rejects, or requests changes.
[06]You get an email with the outcome, and can track it in the dashboard 'Contributions' tab.
Review Outcomes
PendingChanges RequestedApprovedRejected
  • Approved — your work goes live and you're credited on the template page.
  • Changes Requested — the reviewer emails you what to fix. The email has a button that reopens your submission pre-filled so you just apply the changes and resubmit.
  • Rejected — not accepted this time; the email includes the reviewer's optional note explaining why.

Approved contributions are credited with your name and optional Codeforces handle, displayed on the template page.

$cron contests --watch

Contest Calendar

ITL aggregates live upcoming contests from all major competitive programming platforms into a single unified timeline:

CodeforcesAtCoderLeetCodeCodeChef

The contest calendar is visible on the homepage and shows countdown timers, contest names, durations, and direct links to the contest pages.

Calendar Feed (ICS)

Logged-in users can generate a personal calendar subscription link from the dashboard Settings tab. Add this link to Google Calendar, Apple Calendar, or any ICS-compatible calendar app to get automatic contest reminders.

The calendar feed is personalized to your account and updates automatically. Never miss a contest again — your phone will remind you before each one starts.
$whoami --cf-stats

CP Profiles

Link your competitive programming handles to see your rating statistics directly in your ITL dashboard:

Supported Platforms
Codeforces — Full stats widget: rating, max rating, rank, color badge, contests participated, problems solved
AtCoder — Handle linking
LeetCode — Handle linking
CodeChef — Handle linking
[01]Go to Dashboard → Preferences tab.
[02]Enter your handle for each platform.
[03]For Codeforces, you can verify your handle by adding a verification token to your Codeforces bio.
[04]Once linked, your rating data appears in the dashboard overview.

You can also set a rating goal in your profile to track your progress toward a target rating.

$cat ~/profile/public.json

Public Profile

Every account has a public profile page at /profile/<username>. It's a shareable card that shows who you are and what you work on — no login required to view it.

Avatar Upload
Upload a profile picture (image, up to 1MB). Replacing it automatically cleans up the old file.
Display Name
Set a friendly display name shown on your profile and used to credit your contributions.
Bio
Add a short bio to tell visitors about yourself, your goals, or your favorite topics.
Linked Handles & Stats
Your public profile surfaces your linked CP handles and rating stats alongside your identity.
How to Edit Your Profile
[01]Go to Dashboard → Preferences tab.
[02]Upload an avatar, set your display name, and write a bio.
[03]Link your CP handles and rating goal (see CP Profiles above).
[04]Changes save to your profile and appear at /profile/<your-username>.

Contributor chips on template pages link straight to the contributor's public profile, so approved authors and editors are one click away from their profile.

Your profile page is public— anyone with the link can view your avatar, name, bio, handles, and stats. Keep the bio to what you're happy to share publicly.
$nano ~/.itl/config

Settings & Preferences

ITL offers several customization options to tailor the experience to your preferences:

Retro Effects
Open the effects panel (gear icon in the bottom-right corner) to toggle terminal sound FX and the animated matrix background on or off.
Reduce Motion
Disable all animations and transitions for a minimal, distraction-free experience. Great for low-performance devices.
Compact Density
Shrink the UI density so more content fits on screen — useful on smaller displays or when you want less whitespace.
Line Numbers
Toggle line numbers in code blocks on or off depending on your preference.
Look for the small gear icon floating in the bottom-right corner of any page. That opens the effects panel where you can toggle sound FX, the matrix background, and all display preferences.
$ echo "Ready to start?"

START EXPLORING NOW

Browse the template library, create an account, and build your personal competitive programming toolkit.