Week3

repo-banner

Tier: Personal
Customer: Undisclosed
Repo: https://github.com/IU-Capstone-Project-2025/hypershelf

MVP Features #

  • Auth
  • Field editing
  • Asset editing
  • Mutex locks
  • vSphere plugin
  • Production-grade UI/UX

Week 3 results #

Markdown editor #

The editor was tailored to mimic one of Obsidian. Obsidian uses HyperMD, which is the wrapper around CodeMirror 5. Hypershelf uses bare CodeMirror 6 with a lot of custom extensions and blocks. It is based on https://github.com/segphault/codemirror-rich-markdoc with significant changes.

  • Blockquotes
  • Lists (ordered, unordered, tasks (WIP))
  • Tables (WIP)
  • Links
  • Files
  • Images
  • Formatting: italic, bold, strike, highlight
  • Callouts: info, warning, error
  • Headings
  • Code: blocks and inline
Screenshot 2025-06-25 at 1 19 15 PM Screenshot 2025-06-25 at 1 19 30 PM Screenshot 2025-06-25 at 1 19 39 PM

Architecture #

Due to the lack of time and resources, as well as the computing power to deploy multi-instance HA architecture, I decided to bail on it in favor of single-instance. Now the project can be deployed using Docker compose. Though, as mentioned earlier, it is still pretty hard. The project is deployed at https://hypershelf.app and is accessible for testing (ask for Invite Code).

image

The repo structure was completely changed, see the latest commit for more details.

Authentication #

It was a tough decision. The best option for MVP is to patch all cookies to be SameSite=None, Secure and integrate Storage Access API to request user’s permission to access those cookies inside iframes. It is a bald security choice, but good enough for an MVP. The only better way I see is to completely rewrite Convex client authentication layer and request authentication tokens using plugin through window.postMessage. Because of the limitations of the Storage Access API, it is now required to click the iframe before it can load any data:

Screenshot 2025-06-25 at 1 33 41 PM

UI #

Significant fixes for UI glitches, better UI on assets management page, footer with useful information, plugin installation guide, and much more

Screenshot 2025-06-25 at 1 35 17 PM Screenshot 2025-06-25 at 1 35 34 PM

The plugin is now built and packed during build time to be ready-to-serve.

Client-side validation #

It was present on Week 2, but now it is much more robust. Applies to asset management view (read-only) and to asset editing form. Next week - the same for fields.

Screenshot 2025-06-25 at 1 38 07 PM

Adaptive UI #

Since it’s a universal system, it should be fully accessible on any device.

Screenshot 2025-06-25 at 1 40 19 PM Screenshot 2025-06-25 at 1 41 10 PM Screenshot 2025-06-25 at 1 42 18 PM

Licensing #

Proper adherence to the GNU AGPL v3 guidelines.

Plans #

The MVP will very soon be shown to the potential customer for demo, so currently most of the plans include tailoring and bugfixes. Next up:

  1. Fields validation
  2. Static views
  3. Office schemas + vSphere integration
  4. Maybe PWA
  5. Maybe draw.io / Excalidraw inside Markdown
  6. More

Weekly commitments #