Skip to content

feat: add System Requirements page and navbar link#136

Merged
SamXop123 merged 2 commits into
SamXop123:mainfrom
the-rahul-07:feature/system-requirements
May 31, 2026
Merged

feat: add System Requirements page and navbar link#136
SamXop123 merged 2 commits into
SamXop123:mainfrom
the-rahul-07:feature/system-requirements

Conversation

@the-rahul-07
Copy link
Copy Markdown
Contributor

@the-rahul-07 the-rahul-07 commented May 30, 2026

Summary

Closes #103

Added a System Requirements page so users can check if their machine supports Paraline before downloading.

Changes Made

New File

  • landing/src/components/pages/SystemRequirements.jsx — dedicated page with glassmorphic midnight-blue cards matching the existing site design

Modified Files

  • landing/src/App.jsx — added import, route, and navbar header link
  • landing/src/components/Sidebar.jsx — added System Requirements nav item under Menu section
  • landing/src/components/Footer.jsx — added System Requirements footer link
  • landing/src/components/sections/HeroSection.jsx — added subtle subtext below download button: "Requires Windows 10/11 (64-bit) • ~500 MB space. View Detailed Specs"

Specs Covered

  • OS: Windows 10 / 11 (64-bit only)
  • CPU: Dual-core i3 / Ryzen 3 minimum (Quad-core recommended)
  • RAM: 4 GB minimum (8 GB recommended)
  • Storage: ~500 MB free space
  • Audio: Any WASAPI-compatible output device
  • Internet: Not required after installation

Summary by CodeRabbit

Release Notes

  • New Features
    • Added System Requirements page displaying detailed system specifications and minimum/recommended configurations
    • Added navigation links to System Requirements throughout the app (navbar, footer, sidebar, and hero section)
    • Introduced "View Detailed Specs" call-to-action button for easy access to system requirements

Review Change Stack

@vercel
Copy link
Copy Markdown

vercel Bot commented May 30, 2026

@the-rahul-07 is attempting to deploy a commit to the Dot_NotSam's projects Team on Vercel.

A member of the Team first needs to authorize it.

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 30, 2026

Important

Review skipped

Review was skipped due to path filters

⛔ Files ignored due to path filters (1)
  • landing/public/sidebar-icons/monitor.svg is excluded by !**/*.svg

CodeRabbit blocks several paths by default. You can override this behavior by explicitly including those paths in the path filters. For example, including **/dist/** will override the default block on the dist directory, by removing the pattern from both the lists.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 5dc53635-dfd3-44c6-926a-9aa58a81e593

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

The PR adds a System Requirements landing page with animated spec cards, integrating it into the app's navigation via navbar, footer, and sidebar links. The HeroSection gains a secondary entry point ("View Detailed Specs" button) to the new page. Total changes: +311 lines, -61 lines.

Changes

System Requirements Feature

Layer / File(s) Summary
System Requirements page component
landing/src/components/pages/SystemRequirements.jsx
New React component renders animated spec cards (icon, label, minimum/recommended/note) using framer-motion, plus a Windows-only notice, back button, and download link.
App-level routing and navbar integration
landing/src/App.jsx
App imports SystemRequirements, adds navbar "Sys. Requirements" button, passes setCurrentPage to HeroSection, and conditionally renders the page when currentPage === "system-requirements".
Navigation UI updates and SidebarItem consistency
landing/src/components/Footer.jsx, landing/src/components/Sidebar.jsx
Footer adds System Requirements link. Sidebar reformats nav items into multiline JSX, adds System Requirements item with active-state binding, and improves SidebarItem external link handling with target and rel attributes.
HeroSection enhanced with system requirements link
landing/src/components/sections/HeroSection.jsx
HeroSection accepts setCurrentPage prop. Hero updates button container spacing and adds centered system-requirements hint with "View Detailed Specs" button navigating to the new page.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Poem

🐰 A spec sheet hops to life so fair,
With cards that float and motion's care,
System Requirements, shiny and new,
Help users know if Paraline's for you!
Nav buttons wired, the path is clear,
Download with confidence, no more fear.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ 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%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately describes the main change: adding a dedicated System Requirements page and making it accessible via navbar link.
Linked Issues check ✅ Passed All coding requirements from issue #103 are met: System Requirements page created with required specs (OS, CPU, RAM, storage, audio, internet), accessible via navbar/sidebar/footer links, and includes hero section hint.
Out of Scope Changes check ✅ Passed All changes are directly related to implementing the System Requirements page feature. No out-of-scope modifications detected.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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
Copy Markdown

@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: 1

🧹 Nitpick comments (1)
landing/src/components/pages/SystemRequirements.jsx (1)

197-204: ⚡ Quick win

Download CTA bypasses the configured download URL and analytics.

Elsewhere the app downloads via the downloadUrl env value (VITE_DOWNLOAD_URL, falling back to the versioned installer) and fires trackDownloadClick(...). This page instead hardcodes releases/latest and skips tracking, so the download source and analytics diverge from the navbar/hero. Consider passing downloadUrl (and an onDownloadClick handler) into SystemRequirements for consistency.

♻️ Proposed change to accept and use the shared download props
-export default function SystemRequirements({ setCurrentPage }) {
+export default function SystemRequirements({ setCurrentPage, downloadUrl, isHostedInstaller, onDownloadClick }) {
         <a
-          href="https://github.com/SamXop123/Paraline/releases/latest"
-          target="_blank"
-          rel="noopener noreferrer"
+          href={downloadUrl}
+          download={isHostedInstaller ? undefined : "Paraline-Setup.exe"}
+          onClick={onDownloadClick}
           className="rounded-full bg-white px-6 py-3 text-sm font-semibold text-slate-950 transition hover:scale-[1.02] hover:bg-cyan-100"
         >
           Download for Windows
         </a>

Then in App.jsx pass the props through:

-            <SystemRequirements setCurrentPage={setCurrentPage} />
+            <SystemRequirements
+              setCurrentPage={setCurrentPage}
+              downloadUrl={downloadUrl}
+              isHostedInstaller={isHostedInstaller}
+              onDownloadClick={() => trackDownloadClick("system-requirements")}
+            />
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@landing/src/components/pages/SystemRequirements.jsx` around lines 197 - 204,
The Download CTA in SystemRequirements.jsx bypasses the shared download URL and
analytics; update the SystemRequirements component to accept props downloadUrl
and onDownloadClick (or similar names) and use downloadUrl as the anchor href
instead of the hardcoded releases/latest, and call onDownloadClick in the
anchor's onClick to invoke trackDownloadClick; also update the parent (App.jsx)
to pass the existing VITE_DOWNLOAD_URL-derived value and the trackDownloadClick
handler into <SystemRequirements /> so downloads and analytics remain consistent
across the app.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@landing/src/components/Sidebar.jsx`:
- Around line 65-70: The SidebarItem at lines showing the System Requirements
entry references an icon "./sidebar-icons/monitor.svg" that doesn't exist; fix
this by either adding the missing SVG file named monitor.svg into the
landing/public/sidebar-icons/ directory or update the Sidebar.jsx reference to
the correct existing asset path. Locate the SidebarItem usage (props: icon,
label, active, onClick) where currentPage === "system-requirements" and ensure
the icon prop points to a valid file so the image loads correctly when
setCurrentPage("system-requirements") and toggleSidebar() are called.

---

Nitpick comments:
In `@landing/src/components/pages/SystemRequirements.jsx`:
- Around line 197-204: The Download CTA in SystemRequirements.jsx bypasses the
shared download URL and analytics; update the SystemRequirements component to
accept props downloadUrl and onDownloadClick (or similar names) and use
downloadUrl as the anchor href instead of the hardcoded releases/latest, and
call onDownloadClick in the anchor's onClick to invoke trackDownloadClick; also
update the parent (App.jsx) to pass the existing VITE_DOWNLOAD_URL-derived value
and the trackDownloadClick handler into <SystemRequirements /> so downloads and
analytics remain consistent across the app.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 0637218d-5467-46ba-8f75-3dbb674849c5

📥 Commits

Reviewing files that changed from the base of the PR and between 3e9da7b and a31363f.

📒 Files selected for processing (5)
  • landing/src/App.jsx
  • landing/src/components/Footer.jsx
  • landing/src/components/Sidebar.jsx
  • landing/src/components/pages/SystemRequirements.jsx
  • landing/src/components/sections/HeroSection.jsx

Comment thread landing/src/components/Sidebar.jsx
Copy link
Copy Markdown
Owner

@SamXop123 SamXop123 left a comment

Choose a reason for hiding this comment

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

Great work. Thank you for the contribution!

@vercel
Copy link
Copy Markdown

vercel Bot commented May 31, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
paraline Ready Ready Preview, Comment May 31, 2026 5:58am

@SamXop123 SamXop123 merged commit 1136e2e into SamXop123:main May 31, 2026
6 checks passed
@github-actions
Copy link
Copy Markdown

🎉 Congratulations @the-rahul-07! 🎉

Your pull request has been successfully merged into Paraline! Thank you so much for your valuable contribution and effort. Every single improvement helps make Paraline a better desktop experience for everyone! 🙌

🚀 What's Next?

  • Keep the momentum going! Feel free to browse through our open Issues and grab another one that interests you!
  • Support the Project: If you enjoyed contributing to Paraline, please take a second to star our repository! It helps increase the project's visibility and supports our community. ⭐

💬 Stay Connected:
Have any questions, want feedback, or just want to discuss further contributions? Feel free to reach out directly to the maintainer on Discord: dot_notsam!

Thank you again, and keep up the amazing work! 💻✨

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature]: Add System Requirements section to landing page

2 participants