<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Jahnavi's Tech Journal ✨]]></title><description><![CDATA[Jahnavi's Tech Journal ✨]]></description><link>https://jahnavitech.hashnode.dev</link><image><url>https://cdn.hashnode.com/res/hashnode/image/upload/v1593680282896/kNC7E8IR4.png</url><title>Jahnavi&apos;s Tech Journal ✨</title><link>https://jahnavitech.hashnode.dev</link></image><generator>RSS for Node</generator><lastBuildDate>Mon, 07 Sep 2026 22:11:55 GMT</lastBuildDate><atom:link href="https://jahnavitech.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[ApexVoter: A Secure Online Voting System with Real-Time Observability using SigNoz]]></title><description><![CDATA[Building ApexVoter: My Journey of Adding Real-Time Observability with SigNoz
Introduction
As a student, I've built many projects that worked perfectly on my laptop. But one question always stayed in m]]></description><link>https://jahnavitech.hashnode.dev/apexvoter-a-secure-online-voting-system-with-real-time-observability-using-signoz</link><guid isPermaLink="true">https://jahnavitech.hashnode.dev/apexvoter-a-secure-online-voting-system-with-real-time-observability-using-signoz</guid><dc:creator><![CDATA[Jahnavi]]></dc:creator><pubDate>Sun, 26 Jul 2026 14:08:39 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6a65d57beaf2fdfb58103419/d28fa58c-0dfb-41de-bf64-ff4e5f2fd67a.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h1>Building ApexVoter: My Journey of Adding Real-Time Observability with SigNoz</h1>
<h2>Introduction</h2>
<p>As a student, I've built many projects that worked perfectly on my laptop. But one question always stayed in my mind:</p>
<p><strong>"How will I know if my application is healthy after deployment?"</strong></p>
<p>During this hackathon, I got the opportunity to learn something completely new—<strong>Observability</strong>.</p>
<p>So, I decided to build <strong>ApexVoter</strong>, a secure online voting system, and integrate <strong>SigNoz</strong> with it to monitor what happens inside my application while it's running.</p>
<p>This blog is not just about my project. It's about what I learned, the problems I faced, and how SigNoz helped me understand my application better.</p>
<hr />
<h1>💡 Why I Built ApexVoter</h1>
<p>Online voting systems need to be reliable and secure.</p>
<p>If a voter clicks the <strong>Vote</strong> button and something goes wrong, the administrator should know immediately.</p>
<p>I wanted to build a project that not only allows users to vote securely but also lets the administrator monitor the application's performance in real time.</p>
<p>That is where <strong>SigNoz</strong> came in.</p>
<hr />
<h1>🛠 Tech Stack</h1>
<h3>Frontend</h3>
<ul>
<li><p>HTML</p>
</li>
<li><p>CSS</p>
</li>
<li><p>JavaScript</p>
</li>
</ul>
<h3>Backend</h3>
<ul>
<li><p>JSP</p>
</li>
<li><p>JDBC</p>
</li>
<li><p>Apache Tomcat</p>
</li>
</ul>
<h3>Database</h3>
<ul>
<li>MySQL</li>
</ul>
<h3>Observability</h3>
<ul>
<li><p>OpenTelemetry Java Agent</p>
</li>
<li><p>OpenTelemetry Metrics API</p>
</li>
<li><p>SigNoz Cloud</p>
</li>
</ul>
<hr />
<h1>✨ Features of ApexVoter</h1>
<p>The project includes:</p>
<ul>
<li><p>Secure Login</p>
<img src="https://cdn.hashnode.com/uploads/covers/6a65d57beaf2fdfb58103419/f10f6f29-07ca-4ef5-b494-4396ffde6fb9.png" alt="" style="display:block;margin:0 auto" />
</li>
<li><p>OTP Verification</p>
</li>
</ul>
<img src="https://cdn.hashnode.com/uploads/covers/6a65d57beaf2fdfb58103419/4b5a8ca3-fa13-4f48-863a-859a2df31e55.png" alt="" style="display:block;margin:0 auto" />

<ul>
<li>Voter Registration</li>
</ul>
<img src="https://cdn.hashnode.com/uploads/covers/6a65d57beaf2fdfb58103419/d781e0f3-2572-4301-8e6a-6f8e8dcdf6e2.png" alt="" style="display:block;margin:0 auto" />

<ul>
<li>Candidate Registration</li>
</ul>
<img src="https://cdn.hashnode.com/uploads/covers/6a65d57beaf2fdfb58103419/c572faa3-4ca9-4a1d-b92b-36887e591646.png" alt="" style="display:block;margin:0 auto" />

<ul>
<li>Election Management</li>
</ul>
<img src="https://cdn.hashnode.com/uploads/covers/6a65d57beaf2fdfb58103419/94160998-5168-437b-9c21-71517be70596.png" alt="" style="display:block;margin:0 auto" />

<ul>
<li>voter Dashboard</li>
</ul>
<img src="https://cdn.hashnode.com/uploads/covers/6a65d57beaf2fdfb58103419/1769510b-7415-4c6a-bf1e-d55a7ec7eb42.png" alt="" style="display:block;margin:0 auto" />

<ul>
<li>Vote Casting</li>
</ul>
<img src="https://cdn.hashnode.com/uploads/covers/6a65d57beaf2fdfb58103419/b6786b4d-cb34-4177-acea-92dee88f7f7c.png" alt="" style="display:block;margin:0 auto" />

<ul>
<li>Result Publishing</li>
</ul>
<img src="https://cdn.hashnode.com/uploads/covers/6a65d57beaf2fdfb58103419/44706c9f-2921-4240-a3cf-d2b33b636af1.png" alt="" style="display:block;margin:0 auto" />

<ul>
<li>Administrator Dashboard</li>
</ul>
<img src="https://cdn.hashnode.com/uploads/covers/6a65d57beaf2fdfb58103419/f27cae2c-72b3-4af5-8641-2c6d4c369ba4.png" alt="" style="display:block;margin:0 auto" />

<ul>
<li>Real-Time Monitoring using SigNoz</li>
</ul>
<img src="https://cdn.hashnode.com/uploads/covers/6a65d57beaf2fdfb58103419/3abdb29e-9459-4a00-af17-93e52859df4f.png" alt="" style="display:block;margin:0 auto" />

<hr />
<h1>🌟 What is SigNoz?</h1>
<p>Before this hackathon, I honestly had no idea what observability meant.</p>
<p>I used to think checking logs was enough.</p>
<p>After learning SigNoz, I understood that observability is much more than logs.</p>
<p>It helps us understand what is happening inside an application while users are using it.</p>
<p>With SigNoz, I could monitor:</p>
<ul>
<li><p>Application requests</p>
</li>
<li><p>Response time</p>
</li>
<li><p>Errors</p>
</li>
<li><p>Traces</p>
</li>
<li><p>Metrics</p>
</li>
<li><p>Dashboards</p>
</li>
<li><p>Alerts</p>
</li>
</ul>
<p>Instead of guessing why something was slow, I could actually see it.</p>
<p>That was one of the biggest things I learned during this project.</p>
<hr />
<h1>🔍 Integrating SigNoz</h1>
<p>I integrated my JSP application with SigNoz using the <strong>OpenTelemetry Java Agent</strong>.</p>
<p>Whenever my application runs, telemetry data is automatically collected and sent to SigNoz Cloud.</p>
<p>This allowed me to monitor the health of my application without changing much of my existing code.</p>
<hr />
<h1>📊 Dashboards I Created</h1>
<p>One of my favorite parts of this project was creating dashboards.</p>
<p>I built dashboards to monitor different parts of my application, including:</p>
<ul>
<li><p>Vote Processing Latency</p>
</li>
<li><p>Login Latency</p>
</li>
<li><p>Total Requests</p>
</li>
<li><p>Error Requests</p>
</li>
<li><p>OTP Verification Performance</p>
</li>
</ul>
<p>These dashboards helped me understand how my application behaves while users interact with it.</p>
<p>Instead of looking through logs, I could simply open the dashboard and immediately understand the application's health.</p>
<hr />
<h1>🚨 Creating Alerts</h1>
<p>I also created alert rules inside SigNoz.</p>
<p>The alerts notify administrators whenever:</p>
<ul>
<li><p>Vote processing becomes slow</p>
</li>
<li><p>Login requests become slow</p>
</li>
<li><p>Too many errors occur</p>
</li>
</ul>
<p>This makes the application much easier to monitor.</p>
<hr />
<h1>📈 Custom Metrics</h1>
<p>I also tried creating my own custom metric called:</p>
<p>votees_cast_total</p>
<p>The idea was simple.</p>
<p>Every time a user successfully casts a vote, the counter should increase.</p>
<p>Although I successfully implemented the metric in my code, I faced some issues while visualizing it inside SigNoz.</p>
<p>I spent a lot of time debugging dependencies, OpenTelemetry libraries, Maven packaging, and deployment.</p>
<p>Even though I couldn't fully visualize the metric the way I expected, the experience taught me a lot about how custom telemetry works.</p>
<p>Sometimes the biggest learning comes from debugging.</p>
<hr />
<h1>Challenges I Faced</h1>
<p>This project was definitely not smooth from the beginning.</p>
<p>Some of the issues I faced were:</p>
<ul>
<li><p>Configuring Maven in an existing JSP project  </p>
</li>
<li><p>Missing OpenTelemetry dependencies  </p>
</li>
<li><p>Database connection issues  </p>
</li>
<li><p>Deploying libraries correctly inside Tomcat  </p>
</li>
<li><p>Creating custom metrics  </p>
</li>
<li><p>Understanding traces and dashboards</p>
</li>
</ul>
<hr />
<h1>📚 What I Learned</h1>
<p>This hackathon introduced me to an area of software development that I had never explored before.</p>
<p>I learned:</p>
<ul>
<li><p>Why monitoring is important  </p>
</li>
<li><p>How OpenTelemetry works  </p>
</li>
<li><p>How SigNoz collects telemetry  </p>
</li>
<li><p>How to create dashboards  </p>
</li>
<li><p>How to configure alerts  </p>
</li>
<li><p>How traces help debug applications</p>
</li>
</ul>
<p>More importantly, I learned that building an application is only half the work.</p>
<p>Monitoring it is equally important.</p>
<hr />
<h1>What I'll Do Next</h1>
<p>Although I learned a lot during this project, I know there is still much more to explore.</p>
<p>I want to improve my understanding of:</p>
<ul>
<li><p>Custom Metrics  </p>
</li>
<li><p>Better Alert Configurations</p>
</li>
</ul>
<p>I also plan to integrate <strong>SigNoz into my future Java projects</strong> because I now understand how valuable observability is for real-world applications.</p>
<p>This hackathon was just the beginning of my observability journey.</p>
<hr />
<h1>❤️ Final Thoughts</h1>
<p>Before this hackathon, I had never worked with observability tools.</p>
<p>Today, I understand why companies monitor their applications and how tools like SigNoz make debugging and performance analysis much easier.</p>
<p>Building <strong>ApexVoter</strong> was a wonderful learning experience.</p>
<p>It wasn't just about creating an online voting system—it was about learning how to make an application more reliable, observable, and production-ready.</p>
<p>I'm excited to continue learning and use SigNoz in many more projects in the future.</p>
<p>Thank you, <strong>SigNoz</strong>, for introducing me to the world of observability!</p>
<hr />
<h2>🔗 Project Links</h2>
<p><strong>GitHub Repository:</strong> <a href="https://github.com/jahnavichalla19-Jaanu/ApexVoter">https://github.com/jahnavichalla19-Jaanu/ApexVoter</a></p>
<p><strong>Demo Video:</strong> <a href="https://youtu.be/2DWP4Ywa5Cc">https://youtu.be/2DWP4Ywa5Cc</a></p>
<p><strong>SigNoz Dashboard Screenshots:</strong></p>
<img src="https://cdn.hashnode.com/uploads/covers/6a65d57beaf2fdfb58103419/2117fdea-2b5e-4864-8aca-bb9ad0938c7f.png" alt="" style="display:block;margin:0 auto" />

<img src="https://cdn.hashnode.com/uploads/covers/6a65d57beaf2fdfb58103419/65733de2-1e04-4ed8-b07e-9bd0fe26e713.png" alt="" style="display:block;margin:0 auto" />

<img src="https://cdn.hashnode.com/uploads/covers/6a65d57beaf2fdfb58103419/e28ef3fc-ff6a-4492-853b-1e526263ca6a.png" alt="" style="display:block;margin:0 auto" />

<img src="https://cdn.hashnode.com/uploads/covers/6a65d57beaf2fdfb58103419/97ee3a7b-737b-48c6-9d10-cbdfc0b620c1.png" alt="" style="display:block;margin:0 auto" />

<img src="https://cdn.hashnode.com/uploads/covers/6a65d57beaf2fdfb58103419/612eae61-eed6-4893-9e8d-2494a3c7925f.png" alt="" style="display:block;margin:0 auto" />

<img src="https://cdn.hashnode.com/uploads/covers/6a65d57beaf2fdfb58103419/e2ae6da2-bfe9-4143-a821-3c84d21bb341.png" alt="" style="display:block;margin:0 auto" />]]></content:encoded></item></channel></rss>