<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>NSB | UCSC OSPO</title><link>https://ucsc-ospo.github.io/category/nsb/</link><atom:link href="https://ucsc-ospo.github.io/category/nsb/index.xml" rel="self" type="application/rss+xml"/><description>NSB</description><generator>Wowchemy (https://wowchemy.com)</generator><language>en-us</language><lastBuildDate>Tue, 28 Jul 2026 00:00:00 +0000</lastBuildDate><image><url>https://ucsc-ospo.github.io/media/logo_hub6795c39d7c5d58c9535d13299c9651f_74810_300x300_fit_lanczos_3.png</url><title>NSB</title><link>https://ucsc-ospo.github.io/category/nsb/</link></image><item><title>My GSoC Midterm Update: From Setup Struggles to a Deployed Site</title><link>https://ucsc-ospo.github.io/report/osre26/ucsc/nsb-user-centric-website/2026-07-28-avantika-pandey/</link><pubDate>Tue, 28 Jul 2026 00:00:00 +0000</pubDate><guid>https://ucsc-ospo.github.io/report/osre26/ucsc/nsb-user-centric-website/2026-07-28-avantika-pandey/</guid><description>&lt;p>Hi again! It has been a little over two months since I introduced myself and my project — the &lt;a href="https://ucsc-ospo.github.io/project/osre26/ucsc/nsb-network-models/">NSB User-Centric Website&lt;/a> — in my first blog. This is my midterm update, and there is a lot to share.&lt;/p>
&lt;p>The website is now live at &lt;strong>&lt;a href="https://nsb-ucsc.github.io/nsb/" target="_blank" rel="noopener">nsb-ucsc.github.io/nsb&lt;/a>&lt;/strong>, with the Home, Get Started, and Quickstart pages complete, and the Docs section well underway. Here is how it came together.&lt;/p>
&lt;h2 id="getting-the-foundation-right">Getting the Foundation Right&lt;/h2>
&lt;p>Community bonding was less about writing code and more about becoming an NSB user myself. I set up NSB from scratch on Windows with WSL, worked through protobuf and Abseil dependency issues, built the NSB core, and verified the daemon and runtime end to end — documenting every point of friction along the way. That process shaped the entire project, because the problems I hit as a first-time user became the exact problems the website needed to solve.&lt;/p>
&lt;p>Alongside setup, I dug into the architecture: how application clients, the NSB daemon, the SocketRTScheduler, and OMNeT++ all talk to each other through protobuf messaging and socket channels. This groundwork made the design conversations that followed much easier to reason about.&lt;/p>
&lt;h2 id="designing-before-building">Designing Before Building&lt;/h2>
&lt;p>Before writing a single line of website code, my mentor &lt;strong>Harikrishna (Hari) Kuttivelil&lt;/strong> and I spent real time on the presentation and design direction. I put together a full website structure deck, and during a team review, we landed on the visual identity: &lt;strong>navy blue and gold for dark mode, turquoise cyan for light mode&lt;/strong>. We also sent out a feedback form to the wider team to validate the color scheme before committing to it, rather than guessing.&lt;/p>
&lt;p>One design decision worth calling out: the mock simulator does not try to simulate a full NSB environment inside the browser. Instead, it is shipped as a downloadable file — simpler, honest about what a browser can and cannot do, and much easier for a new user to actually run.&lt;/p>
&lt;h2 id="building-the-pages-one-at-a-time">Building the Pages, One at a Time&lt;/h2>
&lt;p>&lt;strong>Home page.&lt;/strong> Week 1 went into the site structure and an animated hero illustration. It evolved more than once — we later reduced the amount of content on Home and moved the deeper explanations to a dedicated About page, keeping the first impression focused and light. The hero diagram also got a redesign: instead of the original architecture diagram, it now shows separate app and simulator boxes connected by &lt;strong>glowing payloads&lt;/strong> — a small detail, but one that makes the &amp;ldquo;what does NSB actually do&amp;rdquo; question click visually before a user reads a word.&lt;/p>
&lt;p>&lt;strong>Get Started.&lt;/strong> This page took the most rethinking. Writing content by working through the repository&amp;rsquo;s READMEs and the latest NSB research paper was the easy part — the harder part was designing it so a brand-new user does not feel lost the moment they land on it, and so it does not just repeat what Quickstart or Docs would later say. Getting that separation right took real iteration.&lt;/p>
&lt;p>&lt;strong>Quickstart.&lt;/strong> Once Get Started was settled, Quickstart came together faster, with troubleshooting guidance built in from the start rather than added later, plus small touches like subtle arrow animations to guide the eye through the steps.&lt;/p>
&lt;p>&lt;strong>Docs.&lt;/strong> This is where content architecture really mattered. Early on, it was not clear why Tutorials should exist separately from Docs if both explained NS-3 and OMNeT++ setup. After refining the split, the structure now makes sense: installation lives in Get Started and Quickstart, deeper simulator setup moves to Tutorials, and Docs stays focused on reference material — configuration, architecture, and API details, with code blocks and an &amp;ldquo;On This Page&amp;rdquo; sidebar for easy navigation. Font choice even got its own small saga: we tried Monaspace Argon for code blocks, then decided the original font actually worked better and reverted.&lt;/p>
&lt;h2 id="a-deployment-bug-worth-mentioning">A Deployment Bug Worth Mentioning&lt;/h2>
&lt;p>Not everything went smoothly. While preparing for deployment, the site kept failing to build — and the cause turned out to be a stray protobuf reference sitting in the root &lt;code>.env&lt;/code> file. A small, easy-to-miss thing, but a good reminder that deployment issues are rarely where you expect them to be. Once fixed, the site deployed cleanly and Home and About were properly separated.&lt;/p>
&lt;h2 id="where-things-stand-at-midterm">Where Things Stand at Midterm&lt;/h2>
&lt;p>By the midterm evaluation, the Home, Get Started, and Quickstart pages were complete, the Docs section had its introduction and configuration content in place, and the site was live and deployed. The architecture diagram is currently being refined further with Hari, with ideas to make the app and simulator boxes and their connectors even clearer.&lt;/p>
&lt;h2 id="whats-next">What&amp;rsquo;s Next&lt;/h2>
&lt;p>The second half of the project is focused on:&lt;/p>
&lt;ul>
&lt;li>Completing the &lt;strong>API reference section&lt;/strong> in Docs&lt;/li>
&lt;li>Finalizing the &lt;strong>architecture diagram&lt;/strong> on the About page&lt;/li>
&lt;li>Building out the &lt;strong>Tutorials&lt;/strong> section (Beginner, Intermediate with NetworkX, Advanced with NS-3/OMNeT++)&lt;/li>
&lt;li>Adding the &lt;strong>Contribute&lt;/strong> and &lt;strong>Community&lt;/strong> sections&lt;/li>
&lt;li>Running usability validation to measure real time-to-first-success against the 15-minute target&lt;/li>
&lt;/ul>
&lt;p>Thank you for following along, and check out the live site at &lt;strong>&lt;a href="https://nsb-ucsc.github.io/nsb/" target="_blank" rel="noopener">nsb-ucsc.github.io/nsb&lt;/a>&lt;/strong> — I would love to hear what you think! Stay tuned for the final blog, where I will share how it all comes together.&lt;/p>
&lt;p>If you would like to connect, find me on &lt;a href="https://www.linkedin.com/in/avantika-pandey-4430512b4" target="_blank" rel="noopener">LinkedIn&lt;/a> or &lt;a href="https://github.com/avantika1036" target="_blank" rel="noopener">GitHub&lt;/a>.&lt;/p></description></item><item><title>Developing a User-Centric Website for the Network Simulation Bridge</title><link>https://ucsc-ospo.github.io/report/osre26/ucsc/nsb-user-centric-website/2026-06-18-avantika-pandey/</link><pubDate>Thu, 18 Jun 2026 00:00:00 +0000</pubDate><guid>https://ucsc-ospo.github.io/report/osre26/ucsc/nsb-user-centric-website/2026-06-18-avantika-pandey/</guid><description>&lt;p>Hi! Thanks for stopping by.&lt;/p>
&lt;p>In this first blog post of a series of three, I&amp;rsquo;d like to introduce myself, my mentor, and my project.&lt;/p>
&lt;p>My name is Avantika Pandey — a third-year Computer Science student at UIET, Panjab University Chandigarh, with a background in full-stack web development and open source contribution. This summer, I am contributing to the &lt;a href="https://ucsc-ospo.github.io/project/osre26/ucsc/nsb-network-models/">NSB User-Centric Website&lt;/a> project as part of Google Summer of Code 2026 under UC OSPO. I am very grateful to be mentored by &lt;strong>Harikrishna Kuttivelil&lt;/strong>. Feel free to read my accepted &lt;a href="https://drive.google.com/file/d/19th4sjon1kRAxhi6R-FgpfXns9csxWUk/view?usp=drive_link" target="_blank" rel="noopener">GSoC proposal&lt;/a> and browse the &lt;a href="https://avantika1036.github.io/NSB-Wireframe/" target="_blank" rel="noopener">wireframe prototype&lt;/a> I built before writing the proposal.&lt;/p>
&lt;h2 id="the-problem">The Problem&lt;/h2>
&lt;p>The &lt;a href="https://github.com/nsb-ucsc/nsb" target="_blank" rel="noopener">Network Simulation Bridge (NSB)&lt;/a> is a middleware layer that connects real application code to network simulators — letting developers and researchers test distributed systems under controlled network conditions (specific latency, packet loss, topology) without needing real infrastructure. NSB is technically solid. Its Python and C++ API documentation is detailed and well-written.&lt;/p>
&lt;p>But here is the catch: &lt;strong>none of that is easy to find.&lt;/strong>&lt;/p>
&lt;p>After reading every file in the NSB repository and tracing the full setup sequence from scratch as a first-time user, I identified a single root cause behind multiple surface-level problems: there is no guided path from &lt;em>&amp;ldquo;I just found NSB&amp;rdquo;&lt;/em> to &lt;em>&amp;ldquo;I have a working example running.&amp;rdquo;&lt;/em> No quickstart, no architecture diagram, undocumented config fields, and eight prerequisites before a single line of user code runs. The result: getting NSB running for the first time takes an estimated &lt;strong>3–4 hours&lt;/strong>. The goal of this project is to bring that down to &lt;strong>15 minutes&lt;/strong>.&lt;/p>
&lt;h2 id="the-project">The Project&lt;/h2>
&lt;p>My project builds a complete 7-section public website for NSB: &lt;strong>Home → Get Started → Quickstart → Docs → Tutorials → Contribute → Community&lt;/strong>. Every design decision is guided by one principle: &lt;em>First Success First&lt;/em> — get the user to a working NSB message exchange before asking them to understand anything. Once they have seen it work, documentation stops being an obstacle and starts being a resource.&lt;/p>
&lt;p>A few key decisions that shape the project:&lt;/p>
&lt;ul>
&lt;li>The &lt;strong>Quickstart&lt;/strong> ships with a pre-built mock simulator so a first-time user can observe a full message round-trip without writing a single line of simulator code — both endpoints provided, out of the box.&lt;/li>
&lt;li>&lt;strong>Simulator integration&lt;/strong> (NS-3, OMNeT++) is deliberately deferred to the Tutorials section, introduced after the user already has a working foundation.&lt;/li>
&lt;li>&lt;strong>Windows users&lt;/strong> get a dedicated WSL2 tab on the Get Started page with step-by-step instructions.&lt;/li>
&lt;li>The &lt;strong>Docs section&lt;/strong> fully annotates every &lt;code>config.yaml&lt;/code> field, adds a troubleshooting guide with 20+ error/fix pairs, and unifies the Python and C++ API reference into one searchable hub.&lt;/li>
&lt;/ul>
&lt;h2 id="expected-deliverables">Expected Deliverables&lt;/h2>
&lt;ul>
&lt;li>Complete NSB website — all 7 sections, publicly deployed, responsive on desktop and mobile&lt;/li>
&lt;li>Quickstart onboarding — platform-specific install guide (macOS, Linux, Windows WSL2) with a clear 15-minute path to first message exchange&lt;/li>
&lt;li>Structured documentation hub — full &lt;code>config.yaml&lt;/code> reference, unified Python/C++ API docs, architecture and message flow diagrams in Mermaid&lt;/li>
&lt;li>Tutorial series — Beginner, Intermediate (user builds their own mock with NetworkX), and Advanced (NS-3 / OMNeT++ integration)&lt;/li>
&lt;li>Contributor infrastructure — &lt;code>CONTRIBUTING.md&lt;/code>, Good First Issues list, PR/issue templates&lt;/li>
&lt;li>Usability validation report — measured time-to-first-success with real first-time users&lt;/li>
&lt;/ul>
&lt;p>Stay tuned for the midterm and final posts — there is a lot to build, and I am excited to share how it unfolds!&lt;/p>
&lt;p>If you find this work interesting, feel free to connect on &lt;a href="https://www.linkedin.com/in/avantika-pandey-4430512b4" target="_blank" rel="noopener">LinkedIn&lt;/a> or follow along on &lt;a href="https://github.com/avantika1036" target="_blank" rel="noopener">GitHub&lt;/a>. Great to meet the UC OSPO community — thanks for reading!&lt;/p></description></item></channel></rss>