โ† Back
Crablegit

Crablegit/ICPCGenerator

๐Ÿš€ Web-based ACM-ICPC Team Notebook generator with 3-column LaTeX layout & 1-click Overleaf API integration. Zero TeX setup, zero server cost.

View on GitHub โ†—https://icpc.brianthecrab.id.vn โ†—
Stars
4
Forks
0
Watchers
4
Open issues
0
Contributors
2
Language
TypeScript
License
โ€”
Default branch
main
Created Oct 1, 2026Updated Oct 1, 2026

Star growth

Todayโ€”
This weekโ€”
This monthโ€”

Star history will appear here once this repo has been tracked for a couple of days.

README

Crab's ICPC Generator

A modern, fluid web application designed to auto-generate ACM-ICPC Team Notebooks (Cheatsheets) with the authentic 3-column LaTeX format based on codes2pdf.

Built with Next.js 14, Tailwind CSS, and Framer Motion, integrating seamlessly with the official Overleaf API for zero-cost, zero-setup PDF compilation.


โœจ Features

  • ๐Ÿš€ 1-Click Overleaf API Integration: Click "Generate Notebook" -> "Give me a star โญ" -> "Ok bro ๐Ÿš€" to immediately export your generated LaTeX code to Overleaf. Compile and download high-quality PDFs for free without installing heavy TeX Live packages or paying for virtual machines.
  • ๐ŸŒ“ Light & Dark Mode: Apple-inspired fluid theme switcher with smooth spring animations, automatically remembering your preference.
  • ๐Ÿ“‘ Authentic ACM-ICPC Table of Contents:
    • True 3-column A4 Landscape layout matching official ICPC world finals cheatsheet formats.
    • Dot leaders (. . . . . . . .) and dynamic page numbering.
    • Click any algorithm directly in the Table of Contents or sidebar to open the fast code editor.
  • ๐Ÿ“ Flexible Code Ingestion:
    • Bulk Folder / ZIP Upload: Simply organize your code files into topic folders, place them in a root directory or ZIP file, and drop it in. The app automatically parses folders into categories and files into algorithms.
    • Manual Category Management: Create categories (1 Algorithms, 2 DP Optimizations, etc.), upload single/multiple files (.cpp, .py, .java, .tex), reorder them, or create snippets from scratch.
  • โฌ‡๏ธ Smart Category Auto-Scroll: When clicking "Add Category", the sidebar smoothly scrolls to the bottom and activates the rename input so you can type immediately.
  • ๐Ÿซ School / University Logo (Optional):
    • Upload image file or directly paste with Ctrl + V from your clipboard.
    • Neatly displayed horizontally inline with the Team Notebook title.
  • ๐Ÿงน Reset & Clear Capabilities:
    • Dedicated Eraser button per category to clear code files inside that category.
    • Reset All button to reset the entire notebook to a clean slate.
  • ๐ŸŽจ Apple Fluid-Interface Principles:
    • Tactile spring interactions on pointer down.
    • Translucent glassmorphism surfaces (backdrop-blur-2xl).
    • Google Inter typography for clean readability, paired with monospace code formatting.

๐Ÿ› ๏ธ Getting Started Locally

# Clone the repository
git clone https://github.com/Crablegit/ICPCGenerator.git
cd ICPCGenerator

# Install dependencies
npm install

# Start local development server
npm run dev

Open http://localhost:3000 in your browser.


๐Ÿ“‚ Recommended Folder Structure for Bulk Upload

You can prepare a folder on your computer with the following hierarchy and drop it into the app:

My-ICPC-Notebook/
โ”œโ”€โ”€ 01 Algorithms/
โ”‚   โ”œโ”€โ”€ mo_on_trees.cpp
โ”‚   โ”œโ”€โ”€ mo_algorithm.cpp
โ”‚   โ””โ”€โ”€ sliding_window.cpp
โ”œโ”€โ”€ 02 DP Optimizations/
โ”‚   โ”œโ”€โ”€ convex_hull_trick.cpp
โ”‚   โ””โ”€โ”€ divide_and_conquer.cpp
โ”œโ”€โ”€ 03 Data structures/
โ”‚   โ”œโ”€โ”€ STL_Treap.cpp
โ”‚   โ”œโ”€โ”€ fenwick.cpp
โ”‚   โ””โ”€โ”€ dsu.cpp
โ”œโ”€โ”€ 04 Geometry/
โ”‚   โ””โ”€โ”€ circle_2points_radius.cpp
โ”œโ”€โ”€ 05 Graphs/
โ”‚   โ”œโ”€โ”€ scc_kosaraju.cpp
โ”‚   โ””โ”€โ”€ tarjan_scc.cpp
โ”œโ”€โ”€ 06 Math/
โ”‚   โ”œโ”€โ”€ lucas_theorem.tex   <-- .tex files render raw formulas/theorems
โ”‚   โ””โ”€โ”€ fft.cpp
โ””โ”€โ”€ 10 Strings/
    โ”œโ”€โ”€ suffix_array.cpp
    โ””โ”€โ”€ z_algorithm.cpp

๐Ÿ“œ Credits

  • Created by: Crabrian
    • GitHub: https://github.com/Crablegit
    • LinkedIn: https://www.linkedin.com/in/brianthecrab/
    • Discord: brianthecrab
  • Template Credit:
    • LaTeX template structure based on Erfaniaa/codes2pdf.