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.
- ๐ 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 + Vfrom your clipboard. - Neatly displayed horizontally inline with the Team Notebook title.
- Upload image file or directly paste with
- ๐งน 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.
# Clone the repository
git clone https://github.com/Crablegit/ICPCGenerator.git
cd ICPCGenerator
# Install dependencies
npm install
# Start local development server
npm run devOpen http://localhost:3000 in your browser.
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
- 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.