<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Rushindhra Marri</title>
    <description>The latest articles on DEV Community by Rushindhra Marri (@rushindhra_marri).</description>
    <link>https://dev.to/rushindhra_marri</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4153851%2F6cad7ec5-e5b5-4bc0-b585-1585e548c7e4.jpg</url>
      <title>DEV Community: Rushindhra Marri</title>
      <link>https://dev.to/rushindhra_marri</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/rushindhra_marri"/>
    <language>en</language>
    <item>
      <title>GHOST: A Private AI Memory Guardian That Never Leaves Your Computer</title>
      <dc:creator>Rushindhra Marri</dc:creator>
      <pubDate>Wed, 28 Oct 2026 11:28:13 +0000</pubDate>
      <link>https://dev.to/rushindhra_marri/ghost-a-private-ai-memory-guardian-that-never-leaves-your-computer-49hp</link>
      <guid>https://dev.to/rushindhra_marri/ghost-a-private-ai-memory-guardian-that-never-leaves-your-computer-49hp</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week4-2026-10-26"&gt;Hacktoberfest Open-Source AI Challenge Week 4: Ghost in the Machine&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;Most of the stories in my family exist in exactly one place: somebody's head. Recipes nobody wrote down, how two grandparents met, what a flood felt like in 1983. When that person is gone, so is the story.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GHOST&lt;/strong&gt; (Generative Human-memory Offline Storytelling &amp;amp; Tracking) is a private memory archive that runs entirely on your own computer. You save letters, photos, recipes and voice recordings, and then you can &lt;em&gt;ask&lt;/em&gt; your archive questions in plain language:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Who taught Lily to knead bread dough?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;and get an answer that points to the exact memory it came from. If the answer isn't in your archive, GHOST says so: &lt;em&gt;"I couldn't find that in your saved memories."&lt;/em&gt; It never guesses.&lt;/p&gt;

&lt;p&gt;I took "Ghost in the Machine" two ways. The practical one: the archive is the ghost, a place where people live on through their words. The playful one: &lt;strong&gt;Ghost Mode&lt;/strong&gt; turns memories you pick into a clearly labelled spooky story. It shows a "verified facts" panel (copied straight from your archive) next to a list of what the AI invented. There's also a &lt;strong&gt;Remembrance&lt;/strong&gt; setting, which is warm, gentle and has no horror at all. GHOST never claims to contact or speak for anyone who has died, and I wanted that to be built into the design, not just a disclaimer.&lt;/p&gt;

&lt;p&gt;Other things it does: record or upload oral histories and transcribe them locally, a timeline with filters, family-history summaries built only from records you select, a passphrase lock, JSON/Markdown/ZIP backups, and a small "Life Documents" section for warranties and important dates with calendar reminders.&lt;/p&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/Rushindhra" rel="noopener noreferrer"&gt;
        Rushindhra
      &lt;/a&gt; / &lt;a href="https://github.com/Rushindhra/ghost-memory-guardian" rel="noopener noreferrer"&gt;
        ghost-memory-guardian
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Private, offline-first family memory archive powered by local open-weight AI (Ollama, sentence-transformers, faster-whisper). Cited answers, oral-history transcription, and respectful Ghost Mode storytelling.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;👻 GHOST — Generative Human-memory Offline Storytelling &amp;amp; Tracking&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;A private memory archive for the stories your family could lose, powered by open-weight AI that runs on your own computer.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Preserve letters, recipes, photographs and oral histories. Ask questions in plain language and get answers that &lt;strong&gt;cite the exact memories they came from — or say "I couldn't find that in your saved memories."&lt;/strong&gt; Nothing is sent to a cloud AI. No account, no telemetry, no vendor to disappear.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Built for the &lt;em&gt;Ghost in the Machine&lt;/em&gt; open-source AI challenge. Ghost Mode is an optional, clearly-labelled fiction layer; GHOST never claims to contact or speak for anyone who has died.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://github.com/Rushindhra/ghost-memory-guardian/docs/img/overview.png"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2FRushindhra%2Fghost-memory-guardian%2FHEAD%2Fdocs%2Fimg%2Foverview.png" alt="Overview"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Screenshots in &lt;code&gt;docs/img&lt;/code&gt; show the real UI on the synthetic demo archive. Where AI text appears (Ask, summary, Ghost Mode) it was produced by a throw-away &lt;strong&gt;test stub standing in for Ollama&lt;/strong&gt;, not by Qwen — the sandbox that built…&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/Rushindhra/ghost-memory-guardian" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;The whole point was that the AI had to be open and local, not just mentioned in the README:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Language model:&lt;/strong&gt; Ollama running an open-weight model (default &lt;code&gt;qwen3:4b&lt;/code&gt;, swappable from the Settings page). It runs on CPU, no GPU needed.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Search:&lt;/strong&gt; &lt;code&gt;sentence-transformers&lt;/code&gt; with the multilingual &lt;code&gt;multilingual-e5-small&lt;/code&gt; model, plus a FAISS index, so you can search by meaning and in different languages.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Speech:&lt;/strong&gt; &lt;code&gt;faster-whisper&lt;/code&gt; for local transcription, with the weights stored on disk.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;App:&lt;/strong&gt; FastAPI + SQLite on the back end, React + TypeScript + Vite + Tailwind on the front end.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The part I care about most is how GHOST handles trust. Instead of just asking the model nicely not to make things up, the code enforces it:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;If retrieval doesn't find strong evidence, the model is never even called, and you get the fixed "couldn't find that" reply.&lt;/li&gt;
&lt;li&gt;Every claim must carry a citation like &lt;code&gt;[1]&lt;/code&gt;. Citations that don't point at a real retrieved memory are stripped out.&lt;/li&gt;
&lt;li&gt;An answer with no valid citation at all is thrown away.&lt;/li&gt;
&lt;li&gt;Names and years in an answer that don't appear in the sources get flagged for the user.&lt;/li&gt;
&lt;li&gt;If Ollama or a model isn't installed, the app says so and shows setup steps. It never fakes a response.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Checks I actually ran: 46 backend tests and 10 frontend tests pass, and I ran the app in a real browser against a real server (that browser run caught a threading bug the unit tests missed, which I fixed and added a regression test for). On the small synthetic dataset with the keyword-search fallback, all relevant memories showed up in the top 5, and all 5 out-of-archive questions were correctly refused.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What I haven't verified yet (honest bit):&lt;/strong&gt; I built this in an environment that couldn't download model weights, so I tested the Ollama connection against a stand-in server, not a real model. That means I don't have real-model answer quality or CPU speed numbers, and I haven't run the full "disconnect the internet and try it" test, so I'm not claiming it as proven offline. The repo's &lt;code&gt;docs/STATUS.md&lt;/code&gt; lists exactly what was and wasn't checked.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;p&gt;A family archive is about the most private thing there is: voices of people you love, names, illnesses, arguments, forgiveness. A closed API would mean sending all of that to someone else's servers, and trusting that company to still exist and still have the same rules in twenty years.&lt;/p&gt;

&lt;p&gt;Open weights changed what was possible here:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Privacy:&lt;/strong&gt; the model comes to the data instead of the data going to the model. GHOST's only network address is Ollama on your own machine, and it refuses non-local addresses unless you explicitly allow one.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Choice:&lt;/strong&gt; a family can use a tiny model on an old laptop, or a bigger one on a workstation, or one that's better at their heritage language.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reproducibility:&lt;/strong&gt; pinned dependencies, a synthetic dataset and an evaluation script mean anyone can re-run my results, and see what I measured and what I didn't.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Preservation:&lt;/strong&gt; the archive is just SQLite and plain files, exportable as JSON or Markdown. It stays readable even if GHOST disappears, and the AI parts can be rebuilt from open models for as long as anyone wants.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>SkillMatch AI</title>
      <dc:creator>Rushindhra Marri</dc:creator>
      <pubDate>Sat, 17 Oct 2026 10:54:54 +0000</pubDate>
      <link>https://dev.to/rushindhra_marri/skillmatch-ai-2f70</link>
      <guid>https://dev.to/rushindhra_marri/skillmatch-ai-2f70</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week2-2026-10-12"&gt;Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;I built &lt;strong&gt;SkillMatch AI&lt;/strong&gt;, a local AI-powered job-readiness assistant that helps students and job seekers understand how well their resumes match a job description.&lt;/p&gt;

&lt;p&gt;It identifies matching skills, highlights skill gaps, suggests resume improvements, recommends important keywords, and creates a personalized 7-day preparation plan with interview questions.&lt;/p&gt;

&lt;p&gt;The idea came from a common problem: many students apply for jobs without knowing which skills they are missing or how to prepare effectively. SkillMatch AI helps them focus on what matters instead of guessing.&lt;/p&gt;

&lt;p&gt;Students, job seekers, and placement-training institutes could benefit from this tool.&lt;/p&gt;

&lt;p&gt;The application is designed to run locally using Ollama, so users can explore its core AI features without relying on a paid AI API.&lt;/p&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;GitHub Repository:&lt;/strong&gt; &lt;a href="https://github.com/Rushindhra/SkillMatch-AI" rel="noopener noreferrer"&gt;https://github.com/Rushindhra/SkillMatch-AI&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The project includes a React frontend, a Node.js and Express backend, and integration with Ollama for local AI inference.&lt;/p&gt;

&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;I built SkillMatch AI using React, Vite, Tailwind CSS, Node.js, and Express. For the AI component, I used Ollama with an open-weight model such as Qwen, which can be configured based on the available hardware.&lt;/p&gt;

&lt;p&gt;The application extracts text from a resume, compares it with the job description, identifies matching and missing skills, and generates personalized recommendations.&lt;/p&gt;

&lt;p&gt;I also designed the analysis to combine deterministic skill matching with AI-generated suggestions, making the results more transparent and useful.&lt;/p&gt;

&lt;p&gt;My goal was to build something practical that students could actually use, rather than just another AI chatbot.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;p&gt;For me, open innovation means having more control over how AI works and where our data goes.&lt;/p&gt;

&lt;p&gt;Resumes contain personal information, so I wanted SkillMatch AI to support local processing instead of sending documents to an external AI service. Using Ollama makes it possible to run inference locally, experiment with different models, and customize the analysis without depending on a paid AI API.&lt;/p&gt;

&lt;p&gt;It also makes the project more accessible to students and small organizations that may not have the budget for recurring API costs.&lt;/p&gt;

&lt;p&gt;Open-source AI gave me the flexibility to experiment, learn, and build a useful application while keeping privacy and affordability in mind.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>PlacementPiolt</title>
      <dc:creator>Rushindhra Marri</dc:creator>
      <pubDate>Mon, 05 Oct 2026 06:57:31 +0000</pubDate>
      <link>https://dev.to/rushindhra_marri/placementpiolt-h25</link>
      <guid>https://dev.to/rushindhra_marri/placementpiolt-h25</guid>
      <description>&lt;h1&gt;
  
  
  🚀 Placement Preparation Portal — A Simple Companion for Campus Placements
&lt;/h1&gt;

&lt;p&gt;&lt;em&gt;This is a submission for the Hacktoberfest Weekend Challenge: Build for a Friend.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;Campus placements can get hectic very quickly.&lt;/p&gt;

&lt;p&gt;Students often have to manage aptitude preparation, DSA, core CS subjects, mock tests, tasks, and job opportunities at the same time. It can become difficult to keep track of what has been completed and what still needs attention.&lt;/p&gt;

&lt;p&gt;So, I built a &lt;strong&gt;Placement Preparation Portal&lt;/strong&gt; — a simple web application designed to help students organize their placement preparation in one place.&lt;/p&gt;

&lt;p&gt;The main goal was to build something that would actually be useful to a friend going through campus placements.&lt;/p&gt;

&lt;h3&gt;
  
  
  What the portal provides
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;🔐 &lt;strong&gt;Student Registration &amp;amp; Login&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;📊 &lt;strong&gt;Personalized Dashboard&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;📚 &lt;strong&gt;Subject Preparation&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;📝 &lt;strong&gt;Topic and Preparation Tracking&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;✅ &lt;strong&gt;To-Do Task Management&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;🧪 &lt;strong&gt;Mock Tests&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;⏱️ &lt;strong&gt;Test Timer&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;📈 &lt;strong&gt;Test Scores and Results&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;💼 &lt;strong&gt;Job &amp;amp; Internship Listings&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;👨‍💼 &lt;strong&gt;Admin Portal&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;🗃️ &lt;strong&gt;Database-backed student progress&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Instead of using multiple platforms for different parts of preparation, the idea is to provide a single place where students can organize their placement journey.&lt;/p&gt;




&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;p&gt;The complete source code is available on GitHub:&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;GitHub Repository:&lt;/strong&gt; &lt;code&gt;https://github.com/Rushindhra/Placement-Preparation-Portal&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;The repository contains:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Java Servlets&lt;/li&gt;
&lt;li&gt;DAO layer&lt;/li&gt;
&lt;li&gt;Model/POJO classes&lt;/li&gt;
&lt;li&gt;JDBC database connectivity&lt;/li&gt;
&lt;li&gt;MySQL database schema&lt;/li&gt;
&lt;li&gt;HTML/CSS frontend&lt;/li&gt;
&lt;li&gt;Authentication&lt;/li&gt;
&lt;li&gt;Placement preparation modules&lt;/li&gt;
&lt;li&gt;Mock test functionality&lt;/li&gt;
&lt;li&gt;Job management&lt;/li&gt;
&lt;li&gt;Admin functionality&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;I wanted to keep the project simple and focus on understanding how a complete Java web application works from the backend to the database.&lt;/p&gt;

&lt;h3&gt;
  
  
  Tech Stack
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Backend&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Java&lt;/li&gt;
&lt;li&gt;Java Servlets&lt;/li&gt;
&lt;li&gt;JDBC&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Frontend&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;HTML&lt;/li&gt;
&lt;li&gt;CSS&lt;/li&gt;
&lt;li&gt;JavaScript where required&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Database&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;MySQL&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Server&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Apache Tomcat&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Architecture&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;MVC Architecture&lt;/li&gt;
&lt;li&gt;DAO Pattern&lt;/li&gt;
&lt;li&gt;POJO/Model Layer&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Project Structure
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;PlacementPreparationPortal/
│
├── src/
│   └── main/
│       └── java/
│           └── com/
│               └── placement/
│                   │
│                   ├── servlets/
│                   │   ├── LoginServlet.java
│                   │   ├── RegisterServlet.java
│                   │   ├── LogoutServlet.java
│                   │   ├── DashboardServlet.java
│                   │   ├── TaskServlet.java
│                   │   ├── SubjectServlet.java
│                   │   ├── MockTestServlet.java
│                   │   ├── JobServlet.java
│                   │   └── AdminServlet.java
│                   │
│                   ├── dao/
│                   │   ├── UserDAO.java
│                   │   ├── TaskDAO.java
│                   │   ├── SubjectDAO.java
│                   │   ├── QuestionDAO.java
│                   │   ├── TestResultDAO.java
│                   │   └── JobDAO.java
│                   │
│                   ├── models/
│                   │   ├── User.java
│                   │   ├── Task.java
│                   │   ├── Subject.java
│                   │   ├── Topic.java
│                   │   ├── Question.java
│                   │   ├── TestResult.java
│                   │   └── Job.java
│                   │
│                   └── utils/
│                       └── DBConnection.java
│
├── webapp/
│   ├── index.html
│   ├── login.html
│   ├── register.html
│   ├── dashboard.html
│   ├── subjects.html
│   ├── tasks.html
│   ├── mock-tests.html
│   ├── jobs.html
│   │
│   ├── admin/
│   │   ├── dashboard.html
│   │   ├── subjects.html
│   │   ├── questions.html
│   │   └── jobs.html
│   │
│   └── css/
│       └── style.css
│
└── database/
    └── schema.sql
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The application follows a basic MVC approach:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;User
 ↓
HTML/CSS Interface
 ↓
Java Servlet
 ↓
DAO Layer
 ↓
JDBC
 ↓
MySQL
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This separation makes the application easier to understand, maintain, and extend.&lt;/p&gt;




&lt;h2&gt;
  
  
  📚 Main Modules
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Authentication
&lt;/h3&gt;

&lt;p&gt;Students can create an account and log in to the portal.&lt;/p&gt;

&lt;p&gt;The application maintains the user's session so that their preparation data can be associated with their account.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Dashboard
&lt;/h3&gt;

&lt;p&gt;The dashboard gives students a quick overview of their preparation.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Completed tasks&lt;/li&gt;
&lt;li&gt;Pending tasks&lt;/li&gt;
&lt;li&gt;Subject progress&lt;/li&gt;
&lt;li&gt;Mock test performance&lt;/li&gt;
&lt;li&gt;Available job opportunities&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The idea is to make the dashboard the student's starting point whenever they open the portal.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Subject Preparation
&lt;/h3&gt;

&lt;p&gt;Students can prepare for important placement areas such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Aptitude&lt;/li&gt;
&lt;li&gt;Data Structures &amp;amp; Algorithms&lt;/li&gt;
&lt;li&gt;Operating Systems&lt;/li&gt;
&lt;li&gt;DBMS&lt;/li&gt;
&lt;li&gt;Computer Networks&lt;/li&gt;
&lt;li&gt;Object-Oriented Programming&lt;/li&gt;
&lt;li&gt;Other Core CS topics&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Topics can be marked as completed so students can keep track of their progress.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. To-Do Management
&lt;/h3&gt;

&lt;p&gt;Students can create and manage their preparation tasks.&lt;/p&gt;

&lt;p&gt;They can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Add tasks&lt;/li&gt;
&lt;li&gt;View tasks&lt;/li&gt;
&lt;li&gt;Update tasks&lt;/li&gt;
&lt;li&gt;Delete tasks&lt;/li&gt;
&lt;li&gt;Mark tasks as completed&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This helps turn placement preparation into smaller and manageable goals.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Mock Tests
&lt;/h3&gt;

&lt;p&gt;The portal includes a mock-test module where students can answer multiple-choice questions.&lt;/p&gt;

&lt;p&gt;The system can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Display questions&lt;/li&gt;
&lt;li&gt;Track answers&lt;/li&gt;
&lt;li&gt;Handle the test timer&lt;/li&gt;
&lt;li&gt;Calculate scores&lt;/li&gt;
&lt;li&gt;Store test results&lt;/li&gt;
&lt;li&gt;Display previous performance&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  6. Jobs &amp;amp; Internships
&lt;/h3&gt;

&lt;p&gt;The portal also provides a place to manage job and internship opportunities.&lt;/p&gt;

&lt;p&gt;Students can view relevant opportunities while preparing for placements.&lt;/p&gt;

&lt;p&gt;The admin can add and manage job postings through the admin portal.&lt;/p&gt;

&lt;h3&gt;
  
  
  7. Admin Portal
&lt;/h3&gt;

&lt;p&gt;The administrator can manage the content available to students.&lt;/p&gt;

&lt;p&gt;The admin functionality includes managing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Subjects&lt;/li&gt;
&lt;li&gt;Topics&lt;/li&gt;
&lt;li&gt;Questions&lt;/li&gt;
&lt;li&gt;Mock tests&lt;/li&gt;
&lt;li&gt;Job/internship opportunities&lt;/li&gt;
&lt;li&gt;Student-related information&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This makes the portal easier to maintain without directly modifying the database every time new content needs to be added.&lt;/p&gt;




&lt;h2&gt;
  
  
  🗄️ Database
&lt;/h2&gt;

&lt;p&gt;I used &lt;strong&gt;MySQL&lt;/strong&gt; as the database.&lt;/p&gt;

&lt;p&gt;The database contains entities such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Users&lt;/li&gt;
&lt;li&gt;Tasks&lt;/li&gt;
&lt;li&gt;Subjects&lt;/li&gt;
&lt;li&gt;Topics&lt;/li&gt;
&lt;li&gt;Questions&lt;/li&gt;
&lt;li&gt;Test Results&lt;/li&gt;
&lt;li&gt;Jobs&lt;/li&gt;
&lt;li&gt;Admin&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Relationships between these tables allow student-specific preparation data and test results to be stored separately.&lt;/p&gt;

&lt;p&gt;JDBC with &lt;code&gt;PreparedStatement&lt;/code&gt; is used for database operations.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;p&gt;For this version of the project, I focused on &lt;strong&gt;open-source Java technologies and a simple architecture&lt;/strong&gt; rather than depending on external AI or paid APIs.&lt;/p&gt;

&lt;p&gt;Using Java Servlets, JDBC, MySQL, and Apache Tomcat allowed me to understand and build the complete flow myself:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Frontend → Servlet → DAO → JDBC → MySQL&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This also makes the project easy for other students to understand, run locally, modify, and extend.&lt;/p&gt;

&lt;p&gt;One of the things I like about open-source development is that a project doesn't have to start as a huge system.&lt;/p&gt;

&lt;p&gt;It can start with a simple idea, be built using accessible technologies, and gradually evolve based on real user feedback.&lt;/p&gt;




&lt;h2&gt;
  
  
  💬 What My Friend Said
&lt;/h2&gt;

&lt;p&gt;I built this project around the problems students face during hectic campus placement seasons, so I also discussed the idea with a friend.&lt;/p&gt;

&lt;p&gt;Their feedback was:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"It would be really useful if job posting links and aptitude tests could be provided through the admin portal. Having everything in one place would make preparation easier, especially during hectic on-campus placements."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That feedback helped me focus on making the portal more practical rather than trying to add too many complicated features.&lt;/p&gt;

&lt;p&gt;The goal is simple:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Give students one place to organize their placement preparation.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  My Agent Session
&lt;/h2&gt;

&lt;p&gt;I used AI-assisted development while working on parts of the project.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Agent Session:&lt;/strong&gt; &lt;code&gt;YOUR_DEVRELAY_SESSION_LINK&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;If you don't have a DevRelay session, you can remove this section. I don't want to claim or fabricate an agent session that doesn't exist.&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🏆 Prize Categories
&lt;/h2&gt;

&lt;p&gt;This project is submitted for the &lt;strong&gt;Hacktoberfest Weekend Challenge: Build for a Friend&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Partner categories:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;code&gt;Add the applicable categories here, or remove this section if none apply.&lt;/code&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  What's Next?
&lt;/h2&gt;

&lt;p&gt;This is the first practical version of the portal, and there is plenty of room to improve it.&lt;/p&gt;

&lt;p&gt;Some ideas for future versions include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Better progress analytics&lt;/li&gt;
&lt;li&gt;More comprehensive question banks&lt;/li&gt;
&lt;li&gt;Company-specific preparation modules&lt;/li&gt;
&lt;li&gt;Resume tracking&lt;/li&gt;
&lt;li&gt;Interview preparation&lt;/li&gt;
&lt;li&gt;More advanced test analytics&lt;/li&gt;
&lt;li&gt;AI-powered personalized preparation in a future version&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For now, I wanted to make sure the core placement preparation workflow actually works before adding more advanced features.&lt;/p&gt;

&lt;p&gt;The project started with a simple question:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"Can I make placement preparation a little less confusing for a student?"&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This portal is my attempt at doing that. 🚀&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>weekendchallenge</category>
      <category>hf26challenge</category>
    </item>
  </channel>
</rss>
