Skip to content

Conversation

@ThatDeparted2061
Copy link
Member

@ThatDeparted2061 ThatDeparted2061 commented Sep 15, 2025

This is the final blog for gsoc 2025 project 2
@aryanndwi123

Summary by CodeRabbit

  • Documentation
    • Added new blog post: Harsh Rao’s GSoC 2025 final report documenting desktop app & Vue frontend updates, authentication flows, release automation and versioning, Testbench UI improvements, production deployment, and embedded media.
    • Updated author profile: name, photo, bio (GSoC 2025) and LinkedIn link.

@coderabbitai
Copy link

coderabbitai bot commented Sep 15, 2025

Walkthrough

Updates an author profile (content/author/Harsh-Rao.md) — front matter (title, image, description), body year, and LinkedIn URL — and adds a new blog post (content/posts/Harsh_Rao_2025_final_report.md) documenting GSoC 2025 work: authentication model (Vue 3 + TypeScript, Pinia, Tauri) and a manually-triggered GitHub Actions workflow for cross‑platform Tauri releases. No exported/public declarations changed.

Changes

Cohort / File(s) Summary
Author profile update
content/author/Harsh-Rao.md
Updated front matter: title, image, description; updated body content year and LinkedIn URL; GitHub link unchanged.
New blog post
content/posts/Harsh_Rao_2025_final_report.md
Added comprehensive GSoC 2025 final report covering authentication model (Vue 3 + TypeScript, Pinia auth store, Tauri/fetch integration, login/signup flows and backend endpoints), a manually-triggered GitHub Actions workflow for multi-OS Tauri builds and release creation (build matrix, artifact handling, changelog & release creation), PR references, UI/versioning notes, and media.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title Check ✅ Passed The title "Gsoc 2025 Project 2 Final blog" accurately reflects the main change in the PR—the addition of the final GSoC 2025 Project 2 blog post—and is concise and relevant to the changeset, though the capitalization ("GSoC") and inclusion of an author or clearer project identifier could improve discoverability.
Docstring Coverage ✅ Passed No functions found in the changes. Docstring coverage check skipped.
✨ Finishing touches
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Tip

👮 Agentic pre-merge checks are now available in preview!

Pro plan users can now enable pre-merge checks in their settings to enforce checklists before merging PRs.

  • Built-in checks – Quickly apply ready-made checks to enforce title conventions, require pull request descriptions that follow templates, validate linked issues for compliance, and more.
  • Custom agentic checks – Define your own rules using CodeRabbit’s advanced agentic capabilities to enforce organization-specific policies and workflows. For example, you can instruct CodeRabbit’s agent to verify that API documentation is updated whenever API schema files are modified in a PR. Note: Upto 5 custom checks are currently allowed during the preview period. Pricing for this feature will be announced in a few weeks.

Please see the documentation for more information.

Example:

reviews:
  pre_merge_checks:
    custom_checks:
      - name: "Undocumented Breaking Changes"
        mode: "warning"
        instructions: |
          Pass/fail criteria: All breaking changes to public APIs, CLI flags, environment variables, configuration keys, database schemas, or HTTP/GraphQL endpoints must be documented in the "Breaking Change" section of the PR description and in CHANGELOG.md. Exclude purely internal or private changes (e.g., code not exported from package entry points or explicitly marked as internal).

Please share your feedback with us on this Discord post.


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: 2

🧹 Nitpick comments (11)
content/author/Harsh-Rao.md (2)

7-7: Year mismatch in bio line.

The front‑matter says GSoC 2025, but the body says 2024. Update to 2025.

-Google Summer of Code 2024 @ CircuitVerse || Electronics and Communication Undergraduate at Birla Institute of Technology and Sciences Pilani, Goa Campus || Class of 2027
+Google Summer of Code 2025 @ CircuitVerse || Electronics and Communication Undergraduate at Birla Institute of Technology and Sciences Pilani, Goa Campus || Class of 2027

9-10: Fix external link schemes (missing https).

Without a scheme, Hugo renders these as relative links.

-[![LinkedIn](...)](www.linkedin.com/in/harsh-rao-81a0581b0)
+[![LinkedIn](...)](https://www.linkedin.com/in/harsh-rao-81a0581b0)
-[![GitHub](...)](https://github.com/ThatDeparted2061)
+[![GitHub](...)](https://github.com/ThatDeparted2061)
content/posts/Harsh_Rao_2025_final_report (9)

33-41: Typos and brand capitalization.

Fix spelling and use the canonical “CircuitVerse”.

-... seperate Authentication ... Circuitverse ...
-This particulat method fails ...
+... separate authentication ... CircuitVerse ...
+This particular method fails ...
-stand alone
+standalone
-when user is offline
+when the user is offline
-... so did we deliver.The authentication ...
+... so we delivered. The authentication ...

100-100: Use accurate code fence language for GitHub Actions.

The workflow is YAML, not bash. This also improves syntax highlighting.

-```bash
+```yaml

347-349: Remove placeholder strikethrough line.

The final video is present; drop the crossed‑out placeholder to keep the post clean.

-~~**[GIF/Video Here]: A short screen recording showing the process from clicking "Run workflow" to the final, published release on the GitHub Releases page.**~~
 {{< video src="/videos/Harsh_Rao/release-pipeline-final.mp4" controls=true preload=true >}}

350-354: Fix typos in Testbench section.

-... has been the artistic side ... upto now it had recieved ...
+... has been the artistic side ... up to now it had received ...
-... current colour palette. We have used the classic Circuitverse green ...
+... current color palette. We have used the classic CircuitVerse green ...

366-370: Correct spelling and clarity in version sync steps.

-... versioned directiories `v0` and `v1`.
+... versioned directories `v0` and `v1`.
-... error that ocurred during the feature sync ...
+... error that occurred during the feature sync ...

375-383: Remove duplicate PR entry.

PR #599 appears twice.

 - PR : [Versioning PR](https://github.com/CircuitVerse/cv-frontend-vue/pull/599)
 - PR : [Conventional commit workflow](https://github.com/CircuitVerse/cv-frontend-vue/pull/656)
-- PR : [Version sync](https://github.com/CircuitVerse/cv-frontend-vue/pull/599)
 - PR : [Infinite loop](https://github.com/CircuitVerse/cv-frontend-vue/pull/647)

386-389: Polish grammar.

-... I sat plannig with my mentors as to how we are gonna be approaching ...
+... I sat planning with my mentors on how we were going to approach ...
-... I learned about github actions, Vuejs, Rust and ts a lot.
+... I learned a lot about GitHub Actions, Vue.js, Rust, and TypeScript.

393-396: Closing section grammar and flow.

-... bugged my mentor about it, experimented with it and then implemented it.
+... asked my mentor about it, experimented with it, and then implemented it.
-I would like especially thank my mentor ...
+I would especially like to thank my mentor ...
-... for helping and mentoring me throught the journey.
+... for helping and mentoring me throughout the journey.

31-33: Avoid HTML inside Markdown link label.

Use plain Markdown; mixing

inside [] can render oddly.

-[<h3>Project link</h3>](https://github.com/orgs/CircuitVerse/projects/43/views/2) 
+### Project link
+[Project board](https://github.com/orgs/CircuitVerse/projects/43/views/2)

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 71d64ce and 942cd7f.

⛔ Files ignored due to path filters (10)
  • static/images/Harsh_Rao/Authentication2-final.png is excluded by !**/*.png
  • static/images/Harsh_Rao/Authentication3-final.png is excluded by !**/*.png
  • static/images/Harsh_Rao/Final_report.jpg is excluded by !**/*.jpg
  • static/images/Harsh_Rao/Release_Pipeline_1.png is excluded by !**/*.png
  • static/images/Harsh_Rao/Release_Pipeline_2.png is excluded by !**/*.png
  • static/images/Harsh_Rao/Testbench_1.png is excluded by !**/*.png
  • static/images/Harsh_Rao/Testbench_2.png is excluded by !**/*.png
  • static/images/authors/ThatDeparted2061_Harsh_Rao.png is excluded by !**/*.png
  • static/videos/Harsh_Rao/Testbench.mp4 is excluded by !**/*.mp4
  • static/videos/Harsh_Rao/release-pipeline-final.mp4 is excluded by !**/*.mp4
📒 Files selected for processing (2)
  • content/author/Harsh-Rao.md (1 hunks)
  • content/posts/Harsh_Rao_2025_final_report (1 hunks)
🔇 Additional comments (4)
content/author/Harsh-Rao.md (1)

2-2: Confirm expected front‑matter: author (string) vs authors (taxonomy)

Repository search for "author"/"authors" under content/posts returned no matches; unable to verify convention. Confirm whether front‑matter should be author: "Harsh Rao" (string) or authors: ["Harsh-Rao"] (taxonomy). If taxonomy is used, align posts' front‑matter to reference the taxonomy key; otherwise change content/author/Harsh-Rao.md to use author: "Harsh Rao".

Location: content/author/Harsh-Rao.md:2

content/posts/Harsh_Rao_2025_final_report (3)

1-6: Front‑matter: align author key with repository convention

Use authors: ["Harsh-Rao"] if the site uses an author taxonomy (author page slug "Harsh-Rao"); otherwise keep author: Harsh Rao.
Location: content/posts/Harsh_Rao_2025_final_report (lines 1–6).
Verification inconclusive — repository search returned no matches; confirm how other posts declare authors and update this front‑matter to match.


88-91: Images present and paths correct — no action required.
Referenced images in content/posts/Harsh_Rao_2025_final_report are committed at static/images/Harsh_Rao and match case: Authentication1.png, Authentication2-final.png, Authentication3-final.png.


348-348: Shortcode exists — no change required.
layouts/shortcodes/video.html is present; the Hugo {{< video ... >}} shortcode will work as written (no replacement needed; same applies to the Testbench video).

Likely an incorrect or invalid review comment.

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

🧹 Nitpick comments (15)
content/posts/Harsh_Rao_2025_final_report.md (15)

1-6: Front‑matter: verify author mapping and add optional metadata

Confirm the theme expects author: vs authors: array and that the slug matches the author file. Consider adding draft: false and image: for social cards.

Example front‑matter tweak:

 ---
 title: "Desktop Application & Vue Frontend Updates: GSoC 2025 Final Report"
 date: 2025-08-31T14:04:00+05:30
-author: Harsh Rao
+author: Harsh Rao
 type: post
+draft: false
+image: "/images/Harsh_Rao/Final_report.jpg"
 ---

20-28: Fix wording and trailing punctuation in heading

Change “statures” → “features” and drop trailing colon to satisfy MD026.

-## Major statures that have been added and merged include:
+## Major features added and merged

31-33: Avoid HTML inside links for headings

Use a Markdown heading with a link instead of <h3> inside [].

-[<h3>Project Board</h3>](https://github.com/orgs/CircuitVerse/projects/43/views/2) 
+### Project Board
+[CircuitVerse Project Board](https://github.com/orgs/CircuitVerse/projects/43/views/2)

34-41: Typos and brand capitalization

  • “seperate” → “separate”
  • “Circuitverse” → “CircuitVerse”
  • Add missing space after period.
-Let's begin with the very own Authentication model for vue-simulator that we recently published. The reason we needed a seperate Authentication model for vue simulator is because of Tauri. Earlier we were simply changing the `path` in the `URL` to direct to the Login page of Circuitverse for Authentication. This particular method fails for the Tauri simulator because:<br> 
+Let's begin with the Authentication model for the Vue simulator that we recently published. The reason we needed a separate Authentication model for the Vue simulator is because of Tauri. Earlier, we were simply changing the `path` in the `URL` to direct to the login page of CircuitVerse for authentication. This method fails for the Tauri simulator because:<br> 
...
-To answer those needs, it was the need of the hour to create an authentication model for the vue-simulator and so did we deliver.The authentication system in the CircuitVerse frontend is built using **Vue 3 with TypeScript**.  
+To answer those needs, it was the need of the hour to create an authentication model for the Vue simulator, and we delivered. The authentication system in the CircuitVerse frontend is built using **Vue 3 with TypeScript**.  

43-48: Precision of link text

If possible, link directly to the Tauri HTTP plugin docs instead of the root site.

-- **API Layer**: Fetch (with [Tauri HTTP plugin](https://tauri.app))  
+- **API Layer**: Fetch (with [Tauri HTTP plugin](https://tauri.app/plugins/http/))  

88-91: Improve image alt text for accessibility

Replace generic alt text with descriptive labels.

-![Authentication sample image 1](/images/Harsh_Rao/Authentication1.png)<br>
-![Authentication sample image 2](/images/Harsh_Rao/Authentication2-final.png)
-![Authentication sample image 3](/images/Harsh_Rao/Authentication3-final.png)<br>
+![Authentication modal showing login state](/images/Harsh_Rao/Authentication1.png)<br>
+![Signup form with validation errors](/images/Harsh_Rao/Authentication2-final.png)
+![Successful login snackbar notification](/images/Harsh_Rao/Authentication3-final.png)<br>

148-151: CI best practice: prefer npm ci for reproducible installs

Use npm ci in CI to ensure clean, lockfile‑based installs.

-      - name: Install Dependencies
-        run: npm install
+      - name: Install Dependencies
+        run: npm ci
         shell: bash

301-314: Heading level jump (MD001): use h3 instead of h4

Promote “Types” to h3 to increment by one level.

-#### Types
+### Types

316-316: Remove line break tag from heading

Avoid <br> in headings; it can hurt SEO/a11y and fail linters.

-## How It Works 🧐<br>
+## How It Works 🧐

349-349: Normalize heading level hierarchy

Use ## here (previous main section is ## ...) instead of #.

-# The Artistic new Testbench UI
+## The Artistic New Testbench UI

351-352: Typos in paragraph

“upto” → “up to”; “recieved” → “received”.

-This has been the artistic side of the project. We have had the Testbench UI for a while now, upto now it had recieved 2 major UI revamps during some of the previous GSOC projects.
+This has been the artistic side of the project. We have had the Testbench UI for a while now; up to now it had received two major UI revamps during some of the previous GSoC projects.

364-369: Grammar and spelling fixes

“eg” → “e.g.”; “ocurred” → “occurred”; minor clarity tweaks.

-**Step 2:** Then we compared all of the changes that existed in `src` and not in `v0` and `v1`. We came across many small features that were missing for `src` which needed to be re-written, for eg: the version mismatch dialogue for the vue simulator in `openOffline.vue`. ([PR #599](https://github.com/CircuitVerse/cv-frontend-vue/pull/599))
+**Step 2:** We compared changes that existed in `src` but not in `v0`/`v1`. We found many small features missing in `src` that needed to be re‑written, e.g., the version‑mismatch dialog for the Vue simulator in `openOffline.vue`. ([PR #599](https://github.com/CircuitVerse/cv-frontend-vue/pull/599))
-**Step 3:** This was the part where we tested the result of the change, since the change built up a massive PR, this step took time and also proved beneficial. We came across a few shortcomings, the major one being the preview circuits for version `v1` going into infinite reload. This was created due to an error that ocurred during the feature sync to `v1` folder, ([PR #647](https://github.com/CircuitVerse/cv-frontend-vue/pull/647)) 
+**Step 3:** We tested the result of the change. Since it was a massive PR, this took time and proved beneficial. We found a major issue: preview circuits for `v1` were going into an infinite reload due to an error that occurred during the feature sync to the `v1` folder. ([PR #647](https://github.com/CircuitVerse/cv-frontend-vue/pull/647)) 

370-381: Heading level jump (MD001) and capitalization

Use ## for the section and keep subsequent “Pull Requests” as ### to increment by one.

-# Pushing vue-simulator to Production
+## Pushing Vue Simulator to Production
...
-### Pull Requests
+### Pull Requests

382-387: Clean up typos and repetition

“plannig” → “planning”; remove duplicated “a lot”.

-I learned a lot related to working of things in software. Most of all I learned how to look for solutions. I really liked the part where I sat plannig with my mentors as to how we are going to be approaching different contingencies. We implemented many ideas and had to leave behind many too. I learned a lot about GitHub Actions, Vue.js, Rust, and TypeScript a lot. Also got to try my hands on Rails and Ruby too. 
+I learned a lot about how things work in software. Most of all, I learned how to look for solutions. I really liked planning with my mentors on approaching different contingencies. We implemented many ideas and had to leave behind many too. I learned a lot about GitHub Actions, Vue.js, Rust, and TypeScript. I also tried my hands on Rails and Ruby. 

391-394: Minor grammar and spelling

Serial comma and fix “throught”.

-My journey so far has been nothing but a roller-coaster. Each week I stumbled upon things I didn't know, then learned it, bugged my mentor about it, experimented with it and then implemented it.
+My journey so far has been a roller coaster. Each week I stumbled upon things I didn't know, then learned them, bugged my mentor about them, experimented, and implemented.
...
-... other mentors and circuitverse contributors for helping and mentoring me throught the journey.
+... other mentors and CircuitVerse contributors for helping and mentoring me through the journey.
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 942cd7f and 6d73777.

📒 Files selected for processing (2)
  • content/author/Harsh-Rao.md (1 hunks)
  • content/posts/Harsh_Rao_2025_final_report.md (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • content/author/Harsh-Rao.md
🧰 Additional context used
🪛 markdownlint-cli2 (0.17.2)
content/posts/Harsh_Rao_2025_final_report.md

20-20: Trailing punctuation in heading
Punctuation: ':'

(MD026, no-trailing-punctuation)


301-301: Heading levels should only increment by one level at a time
Expected: h3; Actual: h4

(MD001, heading-increment)


374-374: Heading levels should only increment by one level at a time
Expected: h2; Actual: h3

(MD001, heading-increment)

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: 0

♻️ Duplicate comments (1)
content/posts/Harsh_Rao_2025_final_report.md (1)

228-234: Fix macOS .app zipping path (archives land in the wrong folder).

The zip target uses a relative path that resolves under artifacts/src-tauri/target instead of the repo root, so assets won’t end up in release-assets. Use $GITHUB_WORKSPACE and ensure the directory exists.

-          if [ -d "artifacts/Tauri Build Artifacts (macos-latest)/src-tauri/target/release/bundle/macos" ]; then
-            cd "artifacts/Tauri Build Artifacts (macos-latest)/src-tauri/target/release/bundle/macos"
-            for app in *.app; do
-              zip -r "../../../release-assets/${app%.app}.zip" "$app"
-            done
-            cd -
-          fi
+          if [ -d "artifacts/Tauri Build Artifacts (macos-latest)/src-tauri/target/release/bundle/macos" ]; then
+            cd "artifacts/Tauri Build Artifacts (macos-latest)/src-tauri/target/release/bundle/macos"
+            mkdir -p "$GITHUB_WORKSPACE/release-assets"
+            for app in *.app; do
+              zip -r "$GITHUB_WORKSPACE/release-assets/${app%.app}.zip" "$app"
+            done
+            cd -
+          fi
🧹 Nitpick comments (8)
content/posts/Harsh_Rao_2025_final_report.md (8)

221-227: Harden release-asset prep: fail fast and collect all common formats.

  • Add set -Eeuo pipefail so the step fails on errors.
  • Include .rpm and .exe in the artifact sweep.
-      - name: Prepare Release Assets
-        run: |
-          mkdir -p release-assets
+      - name: Prepare Release Assets
+        run: |
+          set -Eeuo pipefail
+          mkdir -p release-assets
           # Move all built files (.deb, .AppImage, .msi, .dmg) into one folder
           # The '|| true' prevents the workflow from failing if a specific file type doesn't exist
-          find artifacts -type f \( -name "*.deb" -o -name "*.AppImage" -o -name "*.msi" -o -name "*.dmg" \) -exec cp {} release-assets/ \; || true
+          find artifacts -type f \( -name "*.deb" -o -name "*.rpm" -o -name "*.AppImage" -o -name "*.msi" -o -name "*.exe" -o -name "*.dmg" \) -exec cp {} release-assets/ \; || true

146-149: Use “npm ci” for reproducible CI installs.

Locks to package-lock.json and is faster/cleaner for CI.

-      - name: Install Dependencies
-        run: npm install
+      - name: Install Dependencies
+        run: npm ci
         shell: bash

20-21: Fix heading wording and trailing punctuation (MD026).

“statures” reads as a typo; drop trailing colon.

-## Major statures that have been added and merged include:
+## Major features added and merged

33-38: Minor copyedits: spelling, capitalization, and clarity.

“seperate” → “separate”; “CircuitVerse” brand; small grammar tweaks.

-Let's begin with the very own Authentication model for vue-simulator that we recently published. The reason we needed a seperate Authentication model for vue simulator is because of Tauri. Earlier we were simply changing the `path` in the `URL` to direct to the Login page of Circuitverse for Authentication. This particular method fails for the Tauri simulator because:<br> 
+Let's begin with the Authentication model for the vue-simulator that we recently published. We needed a separate model for the vue-simulator because of Tauri. Earlier, we changed the `path` in the URL to redirect to the CircuitVerse login page for authentication. This fails for the Tauri simulator because:<br> 
 - It is a standalone simulator with no connection to the primary codebase.
-- We want the Tauri simulator to also work when user is offline.
-- We cannot redirect links like we do in web in Tauri.<br>
+- We want the Tauri simulator to also work when the user is offline.
+- We cannot redirect links in Tauri the way we do on the web.<br>
 
-To answer those needs, it was the need of the hour to create an authentication model for the vue-simulator and so did we deliver.The authentication system in the CircuitVerse frontend is built using **Vue 3 with TypeScript**.  
+To address this, we created an authentication model for the vue-simulator, and delivered it. The authentication system in the CircuitVerse frontend is built using **Vue 3 with TypeScript**.  

299-312: Fix heading level increments (MD001).

Use h3 for “Types”, and promote “Pull Requests” to h2 to avoid skipping levels.

-#### Types
+### Types
-### Pull Requests
+## Pull Requests

Also applies to: 370-377


349-356: Minor grammar and brand style in Testbench section.

-This has been the artistic side of the project. We have had the Testbench UI for a while now, upto now it had recieved 2 major UI revamps during some of the previous GSOC projects. This time we went outside the current colour palette. We have used the classic Circuitverse green with white, which gives it a soft and user-friendly look.
+This has been the artistic side of the project. We’ve had the Testbench UI for a while; up to now it had received two major revamps during previous GSoC projects. This time, we went outside the current color palette. We used the classic CircuitVerse green with white, which gives it a soft and user‑friendly look.

380-383: Tighten wording and fix typos in Learning section.

-I learned a lot related to working of things in software. Most of all I learned how to look for solutions. I really liked the part where I sat plannig with my mentors as to how we are going to be approaching different contingencies. We implemented many ideas and had to leave behind many too. I learned a lot about GitHub Actions, Vue.js, Rust, and TypeScript a lot. Also got to try my hands on Rails and Ruby too. 
+I learned a lot about how software projects operate, and—most of all—how to look for solutions. I really liked planning with my mentors on how to approach different contingencies. We implemented many ideas and left some behind. I learned a lot about GitHub Actions, Vue.js, Rust, and TypeScript. I also tried my hands on Rails and Ruby.
 
-These few weeks taught me a lot about how the industry works and how work is done. I learned a lot of things outside coding and got to meet many crazy people and learn from them.
+These weeks taught me how the industry works. I learned many things beyond coding and met many inspiring people to learn from.

387-390: Polish conclusion: punctuation, clarity, and brand capitalization.

-My journey so far has been nothing but a roller-coaster. Each week I stumbled upon things I didn't know, then learned it, bugged my mentor about it, experimented with it and then implemented it. It has truly been a developer's dream till now. My mentors and CircuitVerse community have been very helpful and inspirational in my little journey. Looking forward to contribute and learn more.
+My journey so far has been a roller coaster. Each week I stumbled upon things I didn't know, learned them, discussed with my mentor, experimented, and implemented. It has truly been a developer's dream. My mentors and the CircuitVerse community have been very helpful and inspirational. I’m looking forward to contributing and learning more.
 
-I would especially like to thank my mentor [Aryann Dwivedi](https://github.com/aryanndwi123) for being an amazing mentor and guiding my way out of the walls I kept head-butting into, I would also like to thank  [Niladri Adhikary](https://github.com/niladrix719), [Arnab Das](https://github.com/Arnabdaz), [Aboobacker MK](https://github.com/tachyons), [Vedant Jain](https://github.com/vedant-jain03) and other mentors and circuitverse contributors for helping and mentoring me throught the journey.
+I especially thank my mentor [Aryann Dwivedi](https://github.com/aryanndwi123) for being an amazing guide. I’d also like to thank [Niladri Adhikary](https://github.com/niladrix719), [Arnab Das](https://github.com/Arnabdaz), [Aboobacker MK](https://github.com/tachyons), [Vedant Jain](https://github.com/vedant-jain03), and other mentors and CircuitVerse contributors for helping me throughout the journey.
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 6d73777 and fcd92c3.

📒 Files selected for processing (1)
  • content/posts/Harsh_Rao_2025_final_report.md (1 hunks)
🧰 Additional context used
🪛 markdownlint-cli2 (0.17.2)
content/posts/Harsh_Rao_2025_final_report.md

20-20: Trailing punctuation in heading
Punctuation: ':'

(MD026, no-trailing-punctuation)


299-299: Heading levels should only increment by one level at a time
Expected: h3; Actual: h4

(MD001, heading-increment)


370-370: Heading levels should only increment by one level at a time
Expected: h2; Actual: h3

(MD001, heading-increment)

🔇 Additional comments (1)
content/posts/Harsh_Rao_2025_final_report.md (1)

8-9: Static assets verified — all referenced images/videos are present.
All referenced media files were found in the repository; no broken media expected.

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

♻️ Duplicate comments (1)
content/posts/Harsh_Rao_2025_final_report.md (1)

229-235: Fix: zip target path writes outside intended release-assets (use $GITHUB_WORKSPACE).

The relative ../../../release-assets resolves under .../src-tauri/target/release/, not repo root, so zips won’t appear in the release-assets/ you created earlier.

Apply:

       if [ -d "artifacts/Tauri Build Artifacts (macos-latest)/src-tauri/target/release/bundle/macos" ]; then
         cd "artifacts/Tauri Build Artifacts (macos-latest)/src-tauri/target/release/bundle/macos"
         for app in *.app; do
-          zip -r "../../../release-assets/${app%.app}.zip" "$app"
+          mkdir -p "$GITHUB_WORKSPACE/release-assets"
+          zip -r "$GITHUB_WORKSPACE/release-assets/${app%.app}.zip" "$app"
         done
         cd -
       fi
🧹 Nitpick comments (6)
content/posts/Harsh_Rao_2025_final_report.md (6)

20-21: Heading: fix wording and trailing colon (markdownlint MD026).

-## Major statures that have been added and merged include:
+## Major milestones that have been added and merged

300-300: Heading level increment (markdownlint MD001): use h3 here.

-#### Types
+### Types

394-394: Heading level increment (markdownlint MD001): promote to h2.

-### Pull Requests
+## Pull Requests

33-37: Use h2 (not h1) for in‑post sections; the page title is the only h1.

Multiple h1s harm accessibility/ToC. Demote section headings across the post.

-# Authentication Model for Web and Tauri Simulator
+## Authentication Model for Web and Tauri Simulator

Apply similar demotion for lines 91, 348, 362, 369.


131-149: CI best practice: prefer deterministic installs.

Use npm ci in CI and enable setup‑node cache for npm.

-      - name: Cache Node.js Dependencies
-        uses: actions/cache@v4
-        with:
-          path: ~/.npm
-          key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
-          restore-keys: ${{ runner.os }}-node-
+      - name: Setup Node.js
+        uses: actions/setup-node@v4
+        with:
+          node-version: 22
+          cache: 'npm'
 
-      - name: Install Dependencies
-        run: npm install
+      - name: Install Dependencies
+        run: npm ci
         shell: bash

224-238: Harden release prep script.

Add strict mode; avoid noisy cd -; ensure assets dir exists once.

-      - name: Prepare Release Assets
+      - name: Prepare Release Assets
         run: |
-          mkdir -p release-assets
+          set -euo pipefail
+          mkdir -p release-assets
           # Move all built files (.deb, .AppImage, .msi, .dmg) into one folder
           # The '|| true' prevents the workflow from failing if a specific file type doesn't exist
           find artifacts -type f \( -name "*.deb" -o -name "*.AppImage" -o -name "*.msi" -o -name "*.dmg" \) -exec cp {} release-assets/ \; || true
@@
-            cd -
+            cd - >/dev/null
           
           echo "Prepared release assets:"
           ls -l release-assets/
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between fcd92c3 and 1058671.

📒 Files selected for processing (1)
  • content/posts/Harsh_Rao_2025_final_report.md (1 hunks)
🧰 Additional context used
🪛 markdownlint-cli2 (0.17.2)
content/posts/Harsh_Rao_2025_final_report.md

20-20: Trailing punctuation in heading
Punctuation: ':'

(MD026, no-trailing-punctuation)


300-300: Heading levels should only increment by one level at a time
Expected: h3; Actual: h4

(MD001, heading-increment)


394-394: Heading levels should only increment by one level at a time
Expected: h2; Actual: h3

(MD001, heading-increment)

🔇 Additional comments (2)
content/posts/Harsh_Rao_2025_final_report.md (2)

1-6: Front matter looks good.


340-347: Missing media assets — add the referenced images/videos or fix their paths.
fd returned errors: 'images' and 'videos' are not directories, so the assets referenced in content/posts/Harsh_Rao_2025_final_report.md (lines 8-9, 87-89, 340-347, 355-361) will be broken; include the files in the repo (or update to the correct static/ path).

Comment on lines 34 to 37
Let's begin with the very own Authentication model for vue-simulator that we recently published. The reason we needed a seperate Authentication model for vue simulator is because of Tauri. Earlier we were simply changing the `path` in the `URL` to direct to the Login page of Circuitverse for Authentication. This particular method fails for the Tauri simulator because:<br>
- It is a standalone simulator with no connection to the primary codebase.
- We want the Tauri simulator to also work when user is offline.
- We cannot redirect links like we do in web in Tauri.<br>
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue

User‑facing copy: fix obvious typos/grammar.

These are visible in the blog; tighten them up.

-... needed a seperate Authentication model ...
+... needed a separate authentication model ...

-This has been the artistic side of the project. We have had the Testbench UI for a while now, upto now it had recieved 2 major UI revamps...
+This has been the artistic side of the project. We have had the Testbench UI for a while now; up to now it had received two major UI revamps...

-For Pushing the vue-simulator ... vue-submoudle ...
+For pushing the Vue Simulator ... vue-submodule ...

-But the technicalities of the process over shadowed us and we ran straight into a wall.
+But the technicalities of the process overshadowed us and we ran straight into a wall.

-This was created due to an error that ocurred during the feature sync...
+This was created due to an error that occurred during the feature sync...

-I learned a lot ... I learned a lot about GitHub Actions, Vue.js, Rust, and TypeScript a lot.
+I learned a lot ... I learned about GitHub Actions, Vue.js, Rust, and TypeScript.

Also consider consistently capitalizing “CircuitVerse” and “Vue Simulator.”

Also applies to: 350-351, 371-374, 405-407, 367-368

🤖 Prompt for AI Agents
In content/posts/Harsh_Rao_2025_final_report.md around lines 34 to 37 (and also
review lines 350-351, 371-374, 405-407, 367-368), fix user-facing copy: correct
typos and grammar (e.g., "seperate" → "separate", "the very own Authentication
model" → "our Authentication model", "vue-simulator" → "Vue Simulator" where
appropriate), tighten sentences for clarity (remove redundant phrases like "The
reason we needed", simplify clause structure), and normalize capitalization to
consistently use "CircuitVerse" and "Vue Simulator" throughout the listed lines.

Copy link
Member

Choose a reason for hiding this comment

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

Crop the pic

Copy link
Member

Choose a reason for hiding this comment

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

Use a headshot please

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