Skip to content

Sandboxes V1#436

Merged
jairovelasquez merged 10 commits intomasterfrom
sandboxes
Nov 18, 2025
Merged

Sandboxes V1#436
jairovelasquez merged 10 commits intomasterfrom
sandboxes

Conversation

@jairovelasquez
Copy link
Collaborator

@jairovelasquez jairovelasquez commented Nov 18, 2025

Summary by CodeRabbit

  • New Features

    • Landing page redesign with new hero, card grid, responsive layout, and theme-aware styling.
    • Student and instructor pages migrated to the landing-page layout.
    • Student site now includes analytics and marketing embed scripts.
  • Documentation

    • New comprehensive Sandboxes guide for AWS Cloud teaching.
    • Updated admin docs ordering and changelog entries for Sandboxes and EC2 VM improvements.
  • Chores

    • Updated preview URLs and build/preview configuration; removed legacy Ungit links.

Copy link
Collaborator

@shajason shajason left a comment

Choose a reason for hiding this comment

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

I need to try everything out at some point so this is just a light review so we can get it out there.

@coderabbitai
Copy link

coderabbitai bot commented Nov 18, 2025

Walkthrough

Redesign of documentation landing pages and student site, updates to build tooling and Codio preview commands/URLs, addition of Sandboxes docs and changelog entries, minor reST header formatting, and small EOF/newline adjustments.

Changes

Cohort / File(s) Change Summary
Codio run/preview config
\.codio
Removed "Start Ungit" and "Visit Ungit" entries; simplified command to "Make Student"; updated Preview URLs — Instructor -> /build/html/source/index.html, Student -> /build/html/student-source/student.html; minor EOF newline tweaks.
Makefile / build targets
Makefile
Added public variables BUILDDIRSTU and BUILDTARGET; initialize them in Codio workspace; removed extra build-dir cleanup; refactored student/instructor/both targets to use BUILDTARGET flag and route outputs to student/instructor build paths.
Landing Page CSS (main)
source/_static/css/custom_body.css, source/_static/css/custom_index.css
Replaced index-page selectors with .landing-page equivalents and new --landing-* design tokens with light/dark overrides; introduced landing-hero, hero-inner, eyebrow/title/lede, hero-actions, card-grid, responsive rules, reduced-motion handling; retained backward-compatible hooks and removed legacy homepage hero/card rules.
Landing Page CSS (student)
student-source/_static/css/custom_body.css, student-source/_static/css/custom_index.css
Mirrored landing-page token/system and component overhaul for student site: responsive spacing, theme mappings, hero and card-grid components, and backward-compat hooks.
Templates — index & student
source/_templates/index.html, student-source/_templates/student.html, student-source/_templates/layout.html
Switched page root classes to landing-page and hero to landing-hero with aria-describedby; added hero-inner (eyebrow/title); replaced old scaffolding with titled guide sections (instructor-guides, student-guides) and card grids; student layout adds theme init (localStorage/system) and injects analytics/HubSpot scripts.
Documentation — admin & sandboxes & changelog
source/admin.rst, source/instructors/admin/sandboxes.rst, source/instructors/admin/integration/lti1-3Canvas.rst, source/instructors/getstarted/support/changelog.rst
Added detailed sandboxes.rst (concepts, lifecycle, sandbox.yml config, AWS/permissions guidance); inserted sandboxes into admin toctree before orgbilling; cosmetic reST header underline length changes in LTI doc; added August & November 2025 changelog entries about Sandboxes and EC2 launch.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

  • Focus review on:
    • Consistency and naming of --landing-* CSS tokens and dark/light overrides across main and student CSS files.
    • Correct propagation and usage of BUILDDIRSTU and BUILDTARGET in Makefile targets and Codio invocation paths.
    • Accessibility: ARIA attributes, heading IDs, and document semantics in updated templates.
    • Completeness and clarity of source/instructors/admin/sandboxes.rst (parameters, permission guidance, examples).

Possibly related PRs

Suggested reviewers

  • LolaValente
  • shajason

Pre-merge checks

❌ Failed checks (1 inconclusive)
Check name Status Explanation Resolution
Title check ❓ Inconclusive The title 'Sandboxes V1' is vague and does not clearly convey the scope or nature of the changes beyond introducing a new feature version. Consider a more descriptive title like 'Add Sandboxes documentation and UI updates for V1 release' to better communicate the full scope of changes including documentation, CSS styling, and template updates.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 6

♻️ Duplicate comments (2)
source/instructors/admin/sandboxes.rst (1)

59-59: Reduce excessive bold formatting in bullet point. The bold emphasis on routine phrases weakens emphasis for genuinely important concepts. Simplify line 59 to emphasize only the key actions:

-- **Expire & Clean:** When the lifetime ends, **access is revoked** and **resources created by the sandbox are cleaned up automatically**—no user action required.
+- **Expire & Clean:** When the lifetime ends, access is revoked and resources created by the sandbox are cleaned up automatically—no user action required.
student-source/_static/css/custom_index.css (1)

1-160: Duplicate CSS file identified.

This file is identical to source/_static/css/custom_index.css, as noted in the review of that file. Refer to the consolidation suggestion in the review of source/_static/css/custom_index.css.

📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 65b8983 and 4898b40.

📒 Files selected for processing (13)
  • .codio (1 hunks)
  • Makefile (2 hunks)
  • source/_static/css/custom_body.css (1 hunks)
  • source/_static/css/custom_index.css (1 hunks)
  • source/_templates/index.html (1 hunks)
  • source/admin.rst (1 hunks)
  • source/instructors/admin/integration/lti1-3Canvas.rst (2 hunks)
  • source/instructors/admin/sandboxes.rst (1 hunks)
  • source/instructors/getstarted/support/changelog.rst (2 hunks)
  • student-source/_static/css/custom_body.css (1 hunks)
  • student-source/_static/css/custom_index.css (1 hunks)
  • student-source/_templates/layout.html (1 hunks)
  • student-source/_templates/student.html (1 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
**/*.rst

⚙️ CodeRabbit configuration file

**/*.rst: Review files for:

  • Consistent formatting (e.g., headings, lists, links).
  • Anywhere there are tables, they should use list-table.
  • Clear and concise language.
  • Correct grammar and spelling.
  • Proper use of rst syntax (e.g., avoid broken links or invalid code blocks).
  • Adherence to style guides (e.g., consistent tone, terminology).
    Suggest improvements to enhance readability and accessibility.
  • Make sure to find all improvements on the first pass.
    Go through the material multiple times before submitting comments.

Files:

  • source/instructors/admin/sandboxes.rst
  • source/admin.rst
  • source/instructors/getstarted/support/changelog.rst
  • source/instructors/admin/integration/lti1-3Canvas.rst
🔇 Additional comments (21)
source/instructors/getstarted/support/changelog.rst (2)

16-18: Valid cross-reference and correct entry formatting. The November entry appropriately references the EC2 Sandboxes feature with the correct reference target ec2type-sandboxes.


36-36: Valid cross-reference. The August entry correctly references the new :ref:sandboxes`` documentation page and follows existing changelog entry conventions.

source/instructors/admin/integration/lti1-3Canvas.rst (2)

72-73: Header underline syntax is correct. The section header uses proper RST formatting with matching underline length.


120-121: Header underline syntax is correct. The section header uses proper RST formatting with matching underline length.

source/instructors/admin/sandboxes.rst (2)

68-68: Verify git command syntax. The trailing period in the command is correct RST—it tells git clone to copy files into the current directory (.). However, for clarity in documentation, you may want to add a clarifying comment. Current syntax is acceptable; no change required.


25-52: Excellent use of list-table throughout the document. All configuration reference tables properly use RST list-table syntax with clear header rows and column widths. This improves readability and maintainability compared to inline formatting.

Also applies to: 77-136, 145-168

source/admin.rst (1)

17-18: Toctree entry correctly added and logically reordered. The new sandboxes entry is properly positioned before orgbilling, allowing readers to understand the Sandboxes feature before encountering billing-related information. The relative path and indentation follow proper RST toctree conventions.

student-source/_templates/layout.html (1)

5-21: Theme initialization script is well-implemented.

The inline script correctly prevents flash of unstyled content by applying the theme before the page renders. The try-catch wrapper provides good error handling, and the fallback to 'auto' ensures a graceful experience.

.codio (1)

1-17: LGTM! Configuration aligns with the new build structure.

The updated commands and preview URLs are consistent with the Makefile changes, properly routing to the new build directories for instructor and student documentation.

Makefile (1)

32-40: Build target switching logic appears sound.

The conditional build logic correctly handles student, instructor, and both modes, routing to appropriate directories. The removal of both build directories before building ensures clean builds.

source/_templates/index.html (2)

8-20: Excellent accessibility implementation.

The landing hero properly uses aria-labelledby and aria-describedby to establish relationships between the header and its descriptive content. The semantic structure with hero-eyebrow, hero-title, and hero-lede creates clear information hierarchy.


26-80: Well-structured card grid with proper semantics.

The card grid uses role="list" and role="listitem" appropriately, and each card includes descriptive aria-label attributes. The visual hierarchy (icon → title → description → CTA) is clear and consistent across all cards.

student-source/_static/css/custom_body.css (2)

20-102: Comprehensive and well-structured design token system.

The landing page tokens provide consistent theming across light and dark modes with proper fallbacks. The use of CSS custom properties with color-scheme and prefers-color-scheme media queries ensures a cohesive experience. The layered approach (default → data-theme → media-query) handles all theme scenarios correctly.


106-111: Good backward compatibility preservation.

Retaining the .index-page and .home-container class hooks allows for gradual migration without breaking existing pages.

source/_static/css/custom_index.css (3)

8-71: Modern, accessible hero component implementation.

The hero uses fluid typography with clamp(), proper focus states with focus-visible, and smooth transitions. The gradient backgrounds and shadow tokens create visual depth while maintaining accessibility standards.


76-138: Flexible and polished card grid system.

The auto-fit grid with customizable minimum widths (via --card-min) provides excellent responsive behavior. The hover effects with transform and shadow changes create clear interactive affordances without being excessive.


141-146: Proper reduced motion support.

Respecting prefers-reduced-motion by disabling transitions is essential for accessibility and user comfort.

student-source/_templates/student.html (2)

7-19: Consistent landing page structure with proper accessibility.

The student landing page follows the same pattern as the instructor page, using appropriate ARIA attributes and semantic HTML. The student-focused copy is clear and welcoming.


22-63: Well-organized student guides section.

The 4-card grid provides good information scent with clear titles and descriptions. Each card's aria-label properly describes the destination, enhancing the experience for screen reader users.

source/_static/css/custom_body.css (2)

6-26: Layout resets and responsive design are well-implemented.

The sidebars are cleanly hidden, content is properly constrained to 1200px, and the responsive padding using clamp(1rem, 5vw, 2.5rem) provides excellent scaling across viewports. The color-scheme: light dark declaration and backwards-compatibility hooks (lines 107–111) demonstrate good progressive enhancement practices.


104-111: Backwards-compatibility approach is sound.

Retaining .index-page and .home-container hooks while migrating to .landing-page allows for gradual transition without breaking existing markup. Ensure that related template files (mentioned in the PR summary) have been updated consistently to use the new .landing-page class and that legacy markup is scheduled for deprecation.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 4

♻️ Duplicate comments (1)
student-source/_static/css/custom_index.css (1)

1-160: Duplicate CSS file—identical to source/_static/css/custom_index.css.

This file duplicates the instructor landing-page CSS entirely. See recommendation in source/_static/css/custom_index.css review for consolidation strategy to reduce maintenance overhead.

📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 4898b40 and fcb7299.

📒 Files selected for processing (5)
  • source/_static/css/custom_index.css (1 hunks)
  • source/_templates/index.html (1 hunks)
  • source/instructors/admin/sandboxes.rst (1 hunks)
  • student-source/_static/css/custom_index.css (1 hunks)
  • student-source/_templates/student.html (1 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
**/*.rst

⚙️ CodeRabbit configuration file

**/*.rst: Review files for:

  • Consistent formatting (e.g., headings, lists, links).
  • Anywhere there are tables, they should use list-table.
  • Clear and concise language.
  • Correct grammar and spelling.
  • Proper use of rst syntax (e.g., avoid broken links or invalid code blocks).
  • Adherence to style guides (e.g., consistent tone, terminology).
    Suggest improvements to enhance readability and accessibility.
  • Make sure to find all improvements on the first pass.
    Go through the material multiple times before submitting comments.

Files:

  • source/instructors/admin/sandboxes.rst
🔇 Additional comments (8)
source/instructors/admin/sandboxes.rst (5)

1-2: Grammar correction from previous review has been implemented.

The metadata description now correctly reads "Sandboxes allow instructors to set safe AWS environments" with proper preposition and plural form.


80-100: All tables properly use list-table directive with correct column widths.

Configuration Reference tables (lines 80–100, 104–139, 148–171) follow guidelines with proper .. list-table:: directives, header rows, and balanced column widths (totaling 100). Table structure is clear and well-organized.

Also applies to: 104-139, 148-171


183-191: External links are properly formatted and accessible.

The admonition section uses correct reStructuredText reference-style links (__) pointing to AWS documentation resources. Both links resolve to appropriate AWS IAM guides.


66-68: Git clone command with trailing period intentionally correct.

The . at the end of the git clone command (line 68) is intentional and correct—it copies repository contents to the current directory level rather than creating a subfolder. The preceding .. important:: block (lines 70–72) appropriately warns users to ensure an empty folder.


9-12: Documentation sections are clear, well-organized, and use consistent RST formatting.

  • Section headings use correct underline syntax for hierarchy (main titles with =, subsections with - and ~).
  • Inline code formatting (backticks) consistently applied to configuration keys, types, and AWS concepts.
  • Bullet lists and directives (.. important::, .. note::, .. admonition::) are properly formatted.
  • Overall structure flows logically from concepts → lifecycle → configuration → reference.

Also applies to: 18-21, 54-59

source/_templates/index.html (1)

1-81: Well-structured template with semantic HTML and proper ARIA roles.

The template follows best practices: semantic <header> and <section> elements, proper heading hierarchy (h1 for page title, h2 for section), and card list structure with role="list" and role="listitem". Card icons are correctly hidden from screen readers with aria-hidden="true", and aria-labels provide descriptive context for each card.

student-source/_templates/student.html (1)

1-62: Consistent, well-structured template aligned with instructor version.

The student template mirrors the instructor template's semantic HTML, proper heading hierarchy, and ARIA patterns. The cards-4 grid is appropriately scoped for student-focused content (4 sections vs. 6 for instructors), and all card roles and aria-labels are correctly implemented.

source/_static/css/custom_index.css (1)

1-160: CSS variables verified—all custom properties properly defined with theme support.

The verification confirms all 15 --landing-* custom properties referenced in custom_index.css are properly defined in source/_static/css/custom_body.css. Variables are scoped to .landing-page and include light mode defaults (lines 28–45) plus dark theme overrides (lines 48–100), ensuring complete theme coverage without undefined fallbacks. The component system is production-ready.

shajason
shajason previously approved these changes Nov 18, 2025
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

♻️ Duplicate comments (2)
source/instructors/admin/sandboxes.rst (2)

64-64: Minor: Simplify emphasis on "working examples."

Remove bold from working examples; it is descriptive text, not a critical concept. Apply this diff:

-Define sandboxes in YAML. The best starting point is using this command to get four **working examples** you can adapt:
+Define sandboxes in YAML. The best starting point is using this command to get four working examples you can adapt:

58-58: Minor: Remove bold from constraint qualifier.

On line 58, **not exceeding** is a supporting phrase and need not be bold. Apply this diff:

-     - **Extend:** While running, you may extend the lifetime in ``lifetime_extension`` increments, **not exceeding** ``lifetime_max``.
+     - **Extend:** While running, you may extend the lifetime in ``lifetime_extension`` increments, not exceeding ``lifetime_max``.
📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between fcb7299 and c10268d.

📒 Files selected for processing (1)
  • source/instructors/admin/sandboxes.rst (1 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
**/*.rst

⚙️ CodeRabbit configuration file

**/*.rst: Review files for:

  • Consistent formatting (e.g., headings, lists, links).
  • Anywhere there are tables, they should use list-table.
  • Clear and concise language.
  • Correct grammar and spelling.
  • Proper use of rst syntax (e.g., avoid broken links or invalid code blocks).
  • Adherence to style guides (e.g., consistent tone, terminology).
    Suggest improvements to enhance readability and accessibility.
  • Make sure to find all improvements on the first pass.
    Go through the material multiple times before submitting comments.

Files:

  • source/instructors/admin/sandboxes.rst
🔇 Additional comments (2)
source/instructors/admin/sandboxes.rst (2)

1-20: Metadata and introduction look good. The grammar fix to the description and selective bold reduction align well with prior feedback.


173-190: Permissions section and admonition look excellent. Bold usage emphasizes security and scope concepts appropriately, and external links to AWS documentation are properly formatted.

shajason
shajason previously approved these changes Nov 18, 2025
@jairovelasquez jairovelasquez merged commit dcebb92 into master Nov 18, 2025
1 check passed
@jairovelasquez jairovelasquez deleted the sandboxes branch November 18, 2025 18:54
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