Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
ff37877
Add hover transitions to YouTube video cards, now shows properly whic…
impxcts May 6, 2026
265b5aa
Added smoother transitions for showing/hiding the side panels to make…
impxcts May 6, 2026
bb89c08
Improved responsiveness on mobile devices for screens under 768px.
impxcts May 6, 2026
7bb0b8d
added focus ring styles to help with users navigating the application…
impxcts May 6, 2026
30bc70d
replaced default browser scrollbars with thin themed scrollbars acros…
impxcts May 6, 2026
1c62db9
Improve muted text contrast across the panels to meet the WCAG standa…
impxcts May 6, 2026
3b12a74
Added tooltip to compile button and empty state illustration in the r…
impxcts May 6, 2026
b879b3d
added count badge for the videos in the right panel.
impxcts May 6, 2026
40d80bb
Added all the necessary videos for Linear Algebra I, which includes 2…
impxcts May 6, 2026
2fe44af
Added YouTube videos for the following topics within Linear Alegbra I…
impxcts May 6, 2026
656d7b3
added clear search button to YouTube Search Results.
impxcts May 6, 2026
e81e368
Added Ctrl + Enter and Ctrl + s keyboard shortcuts for compile and save.
impxcts May 6, 2026
07fb170
Added a character counter to the title input with a limit of 80 chara…
impxcts May 6, 2026
d65f9eb
replaced the alert() with a toast notification on save.
impxcts May 6, 2026
251f5e0
Added new pink theme: 'blossom
impxcts May 6, 2026
208ffed
Bug fix: show full YouTube video thumbnails by usig 100% height inste…
impxcts May 6, 2026
839817b
Added a select all/deselect all for all subjects.
impxcts May 7, 2026
b3ce36a
change browser tab title to reflect the name of the cheat sheet.
impxcts May 7, 2026
98d3290
Added a page counter to the top of the pdf.
impxcts May 7, 2026
27052ee
fixed some bugs preventing the toast notification from working properly.
impxcts May 7, 2026
92737e7
bug fix: correct syntax for PDFPreview and implemented a scroll-to-to…
impxcts May 7, 2026
212aa0e
removed canvas-confetti from package-lock.json since this feature is …
impxcts May 7, 2026
0bbe0f9
fixed some invalid syntax brought to my attention from the Copilot re…
impxcts May 7, 2026
e015c7c
test: fix for package-lock.json.
impxcts May 7, 2026
4aaa678
chore: remove unused canvas-confetti dependency
impxcts May 7, 2026
57a05f1
fix: ensure orientation is serialized and saved correctly
thejoeyluu May 7, 2026
b109a23
Merge main into feat/landscape-option-v2 and resolve conflicts
thejoeyluu May 7, 2026
5052901
fix: remove leftover git conflict markers
thejoeyluu May 7, 2026
a38d39e
fix: output landscape and letterpaper to satisfy updated tests
thejoeyluu May 7, 2026
a4953f0
Bug fixing: canvas-confetti is now competely removed
impxcts May 7, 2026
112d0e7
fix: harden cheat sheet editor follow-up
Copilot May 7, 2026
7344fdc
Potential fix for pull request finding
thejoeyluu May 7, 2026
0311716
Merge pull request #81 from ChicoState/feat/landscape-option-v2
impxcts May 7, 2026
2ef9102
fixed buttons for forward and backward not working properly, and fixe…
impxcts May 7, 2026
054b92c
Renamed placeholder to 'my cheat sheet' instead of 'my math cheat she…
impxcts May 7, 2026
df39472
Updated READNE.md with the new features, new UI, and updated subject …
impxcts May 8, 2026
367fc4d
Minor bug fix: removed unnecessary lint warnings and used an image th…
impxcts May 9, 2026
6d10b51
Added keyboard shortcut hint to compile button.
impxcts May 9, 2026
f2eaaf9
Add subject emoji icons and formula count badges to class checkboxes.
impxcts May 9, 2026
7bc82ee
removed the subject emojis temporarily.
impxcts May 9, 2026
d8bcdad
README fix
impxcts May 11, 2026
88813ef
fix: Variable Naming Error
impxcts May 11, 2026
1f3d1d1
README spelling error fix
impxcts May 11, 2026
8bdd776
fix: address PR feedback on shortcuts and selection performance
Copilot May 12, 2026
38d9029
fix: refine pdf preview scroll effect lifecycle
Copilot May 12, 2026
1c8d692
fix: regenerate cheat sheet on repeat compile for generated source
Copilot May 12, 2026
1b800a4
fix: refresh generated sheet when class selection changes
Copilot May 12, 2026
6fa849d
fix: persist regenerate behavior after generated source updates
Copilot May 12, 2026
58dfd9b
chore: simplify generated selection tracking assignment
Copilot May 12, 2026
3bf5128
refactor: clarify compile regenerate condition naming
Copilot May 12, 2026
b1277b0
fix: regen on selection changes after first compile
Copilot May 12, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 33 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,26 @@ The main editor is a three-region workspace:
- curated class/section video links with compact right-rail cards and API search kept as a per-section fallback
- LaTeX editor remains closed by default so the compiled PDF stays front and center
- GitHub Pages project-page assets were removed; the app is now documented as a local/Docker full-stack project
- Animated compile button with shimmer effect while compiling with a green flash on success
- Toast notification now replaces the browser alert on save
- Keyboard Shortcuts: Ctrl+Enter to compile, Ctrl+S to save, Escape to close the video modal
- Browser tab title now updates to reflect the name of the active cheat sheet
- character counter on the title input with a limit of 80 characters
- New 'last saved' timestamp displayed next to the save button
- Scroll to top button in the PDF Preview
- Empty state illustration in the right panel when no sections are selected
- Section count badge on the right panel header
- Select all/Deselect all option above the subject class list
- Clear search button for YouTube Search Results
- PDF page number display in the preview toolbar
- Focus ring styles for keyboard navigation accessibility
- Improved muted text contrast to meet the WCAG AA standards
- Custom scrollbar styling across all the panels
- Hover transitions on video cards
- Smooth transitions for panel show/hide options
- Improvements for mobile responsiveness for screens under 768px
- Divider lines between the layout option selections
- Full implementation of YouTube videos across each subject

### Editing and generation

Expand Down Expand Up @@ -121,6 +141,17 @@ The main editor is a three-region workspace:
- section-scoped “search more” behavior so the YouTube API is a last-resort fallback for the clicked section only
- request validation and error handling for missing key, invalid topics, empty results, and upstream failures

### Themes
- Light Mode
- Dark Mode
- Miami Theme
- Forest Theme
- Cool Gray Theme
- Neon Theme
- Galaxy Theme
- Red Theme
- Pink 'Blossom' Inspired Theme

## Tech stack

| Layer | Technology |
Expand Down Expand Up @@ -313,6 +344,8 @@ Services:
- PHYSICS II
- STATISTICS I
- STATISTICS II
- LINEAR ALGEBRA I
- LINEAR ALGEBRA II

Each class contains multiple categories and formulas in `backend/api/formula_data/`.

Expand Down
6 changes: 3 additions & 3 deletions backend/api/latex_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@ def build_layout_comment_block(columns=4, font_size="9pt", margins="0.15in", spa
f"% @cheatsheet-layout spacing: {spacing} | change layout options up top to update spacing",
f"% @cheatsheet-layout margins: {margins} | change layout options up top to update margins",
f"% @cheatsheet-layout orientation: {orientation} | change layout options up top to update orientation",
"%",
"%"
]


Expand All @@ -148,12 +148,12 @@ def build_dynamic_header(columns=4, font_size="9pt", margins="0.15in", spacing="
spacing_values = get_spacing_values(spacing, font_size)
doc_class, doc_class_size = get_document_class(font_size)

# 1. Force the PDF driver to rotate by passing landscape and letterpaper to the document class
# Force the PDF driver to use letterpaper, add landscape if requested
doc_options = f"{doc_class_size},fleqn,letterpaper"
if orientation == "landscape":
doc_options += ",landscape"

# 2. Also pass them to the geometry package
# Also pass them to the geometry package
geometry_options = f"letterpaper,margin={margins}"
if orientation == "landscape":
geometry_options += ",landscape"
Expand Down
17 changes: 10 additions & 7 deletions backend/api/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -372,6 +372,7 @@ def compile_latex(request):
font_size = cheatsheet.font_size
margins = cheatsheet.margins
spacing = cheatsheet.spacing
orientation = getattr(cheatsheet, "orientation", None) or "portrait"
content = cheatsheet.build_full_latex()

if not content:
Expand All @@ -380,15 +381,17 @@ def compile_latex(request):
content = normalize_latex_layout(content, columns, font_size, margins, spacing, orientation)

if normalize_only:
layout_response = {
"columns": columns,
"font_size": font_size,
"margins": margins,
"spacing": spacing,
"orientation": orientation,
}

return Response({
"tex_code": content,
"layout": {
"columns": columns,
"font_size": font_size,
"margins": margins,
"spacing": spacing,
"orientation": orientation,
},
"layout": layout_response,
})

with tempfile.TemporaryDirectory() as tempdir:
Expand Down
Binary file modified current-ui.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Loading