Skip to content

Conversation

@rog404
Copy link
Contributor

@rog404 rog404 commented Oct 8, 2025

Add Ash Framework SaaS Masterclass course (as a youtube playlist)

Add Ash Framework

Add Ash logo in homepage

image

Summary by CodeRabbit

  • New Features
    • Added Ash framework to the catalog with a dedicated icon.
    • Introduced an Ash link in the programming languages grid for quick access.
    • Published a new course: “Ash Framework SaaS Masterclass” (EN), now available in the courses list.

@coderabbitai
Copy link

coderabbitai bot commented Oct 8, 2025

Walkthrough

Adds Ash framework support by introducing an ash icon to shared components, inserting an Ash link into the programming languages grid, and updating data sources to include Ash in frameworks and a new Ash course entry.

Changes

Cohort / File(s) Summary
UI Component: Icon support
lib/techschool_web/components/shared_components.ex
Extends icon component to accept :name = "ash"; adds custom_icon/1 case rendering the Ash SVG.
UI: Programming grid
lib/techschool_web/live/page_live/components/programming-languages-grid.html.heex
Adds an Ash link block (framework=ash) aligned with existing language/framework entries.
Data: Framework registry
priv/repo/data/frameworks.json
Appends new framework entry: name "Ash", icon_name "ash".
Data: Courses catalog
priv/repo/data/courses.json
Adds course "Ash Framework SaaS Masterclass" with YouTube playlist ID, locale "en", framework_names ["Ash"].

Sequence Diagram(s)

sequenceDiagram
  autonumber
  actor User
  participant Page as Programming Languages Grid
  participant Icon as SharedComponents.Icon
  participant Data as Data (frameworks.json, courses.json)

  User->>Page: Load grid
  Page->>Data: Fetch frameworks/courses
  Data-->>Page: Includes Ash framework and course
  Page->>Icon: Render icon name="ash"
  Icon-->>Page: SVG for Ash
  Page-->>User: Grid shows Ash entry linking to framework=ash
Loading

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Poem

A whisk of Ash in carrot code delight,
I hop through grids where new links shine bright.
An icon sprouts—SVG leaves aglow,
Framework fields where fresh courses grow.
Thump-thump! I merge, ears high—
Another nibble of progress, oh my! 🥕✨

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title Check ✅ Passed The title concisely summarizes the main changes by indicating the addition of the Ash framework support and an associated Ash playlist, reflecting both core code and content updates in this pull request.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 2393a4d and 54e7ba3.

📒 Files selected for processing (4)
  • lib/techschool_web/components/shared_components.ex (2 hunks)
  • lib/techschool_web/live/page_live/components/programming-languages-grid.html.heex (1 hunks)
  • priv/repo/data/courses.json (1 hunks)
  • priv/repo/data/frameworks.json (1 hunks)
🔇 Additional comments (5)
priv/repo/data/frameworks.json (1)

57-61: LGTM! Ash framework entry is well-structured.

The JSON structure is valid, and the icon_name value "ash" correctly matches the new icon case branch added in lib/techschool_web/components/shared_components.ex. The trailing comma on line 57 properly continues the array.

lib/techschool_web/components/shared_components.ex (2)

6-6: LGTM! Icon name properly registered.

The "ash" icon name is correctly added to the allowed values list, enabling validation for the new icon.


1537-1559: LGTM! Ash icon SVG is well-implemented.

The SVG follows the established pattern for icon definitions:

  • Proper structure with xmlns, dimensions, and viewBox
  • Includes {@rest} for HTML attribute pass-through
  • Complete path definitions with appropriate fill colors
  • Consistent with other icon implementations in the file
lib/techschool_web/live/page_live/components/programming-languages-grid.html.heex (1)

75-82: LGTM! Ash framework link is properly integrated.

The new link follows the established pattern perfectly:

  • Consistent styling classes with other framework links
  • Correct query parameter format (framework=ash)
  • Icon reference matches the new "ash" icon in shared_components.ex
  • Positioned logically after Phoenix and before the "Much more" link
priv/repo/data/courses.json (1)

1703-1711: LGTM! Ash course entry is correctly structured.

The new course entry is well-formed:

  • Valid JSON structure consistent with existing entries
  • YouTube playlist ID format matches other playlist courses
  • framework_names: ["Ash"] correctly references the new framework in frameworks.json
  • Appropriately uses empty arrays for other categories (language_names, tool_names, fundamentals_names)

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Owner

@danielbergholz danielbergholz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ash framework for the win! 🚀
Thanks for contributing

@danielbergholz danielbergholz merged commit 5bdc62d into danielbergholz:main Oct 11, 2025
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants