<?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: Sanjana jha</title>
    <description>The latest articles on DEV Community by Sanjana jha (@sanjana_jha_bed43d0288644).</description>
    <link>https://dev.to/sanjana_jha_bed43d0288644</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%2F4015959%2Fb867d236-8932-42d1-8aea-4b20da1645d8.png</url>
      <title>DEV Community: Sanjana jha</title>
      <link>https://dev.to/sanjana_jha_bed43d0288644</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sanjana_jha_bed43d0288644"/>
    <language>en</language>
    <item>
      <title>College Copilot: an AI that tells my friend what matters today</title>
      <dc:creator>Sanjana jha</dc:creator>
      <pubDate>Sun, 04 Oct 2026 12:29:53 +0000</pubDate>
      <link>https://dev.to/sanjana_jha_bed43d0288644/college-copilot-an-ai-that-tells-my-friend-what-matters-today-5ae6</link>
      <guid>https://dev.to/sanjana_jha_bed43d0288644/college-copilot-an-ai-that-tells-my-friend-what-matters-today-5ae6</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-weekend-2026-10-01"&gt;Hacktoberfest Weekend Challenge: Build for a Friend&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;Ask any college student where their important updates live and the honest answer is: everywhere. WhatsApp groups, notice PDFs, screenshots of notice boards, assignment deadlines, internship forwards.&lt;/p&gt;

&lt;p&gt;I built &lt;strong&gt;College Copilot&lt;/strong&gt; for my friend &lt;strong&gt;Keerti&lt;/strong&gt;, a B.Tech student, so she doesn't have to dig through all of that. It reads her college chaos and answers one question: &lt;strong&gt;"What matters for ME right now, and what should I do?"&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Instead of just summarising notices, it matches them with her subjects, attendance and interests and tells her what to do:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;⚠️ DBMS attendance is 72%, 75% is required. Attend the next 3 classes.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;What it does:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Reads everything:&lt;/strong&gt; WhatsApp chat exports, notice PDFs, screenshots and pasted text, including Hinglish like "kal submit karna hai"&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Filters for her:&lt;/strong&gt; ignores notices meant for other branches and ranks the rest by urgency&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Attendance planner:&lt;/strong&gt; shows how many classes she must attend in each subject, with a bunk simulator&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deadlines, exams and internships&lt;/strong&gt; in separate tabs, with apply links&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ask anything&lt;/strong&gt;, in Hinglish ("is hafte kya submit karna hai?")&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Calendar export&lt;/strong&gt; to Google Calendar, and a ready-to-send Hinglish morning message&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/1j2FeowdWDo" width="710" height="399"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Live app: &lt;a href="https://college-copilot-jdgv5fsevwfc4jbcgzmyrz.streamlit.app/" rel="noopener noreferrer"&gt;https://college-copilot-jdgv5fsevwfc4jbcgzmyrz.streamlit.app/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The live app is hosted and sends text to a cloud model, so I only use made-up sample chats and notices on it. Please don't enter real private data there.&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/sanjana-jha-001" rel="noopener noreferrer"&gt;
        sanjana-jha-001
      &lt;/a&gt; / &lt;a href="https://github.com/sanjana-jha-001/college-copilot" rel="noopener noreferrer"&gt;
        college-copilot
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &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;🎓 College Copilot - private, offline AI for one student&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;Reads scattered college info (WhatsApp exports, notice PDFs, screenshots), matches it to the student's
subjects/attendance/interests and answers: &lt;strong&gt;"What matters for ME right now and what should I do?"&lt;/strong&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Run&lt;/h2&gt;
&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;Install &lt;a href="https://ollama.com" rel="nofollow noopener noreferrer"&gt;Ollama&lt;/a&gt;, then: &lt;code&gt;ollama pull qwen2.5:7b&lt;/code&gt; (optional vision: &lt;code&gt;ollama pull qwen2.5vl:7b&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;pip install -r requirements.txt&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;streamlit run app.py&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Upload &lt;code&gt;sample_chat.txt&lt;/code&gt; from the sidebar to test, then your friend's real chat.&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Features&lt;/h2&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;WhatsApp chat parser (Android + iOS formats), Hinglish-aware extraction ("kal", "aaj")&lt;/li&gt;
&lt;li&gt;Notice PDFs + screenshots (local vision model)&lt;/li&gt;
&lt;li&gt;Priority ranking by urgency x your subjects x your interests; other-branch notices are dropped&lt;/li&gt;
&lt;li&gt;Attendance planner: classes you must attend, safe bunks left, bunk simulator (pure code, no LLM math)&lt;/li&gt;
&lt;li&gt;Internship tab with links, Ask-anything chat (Hinglish), ready-to-send morning WhatsApp message&lt;/li&gt;
&lt;li&gt;Calendar (.ics) export, profile saved locally&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Why open source&lt;/h2&gt;

&lt;/div&gt;
&lt;p&gt;Private chats and attendance never leave the laptop, works with…&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/sanjana-jha-001/college-copilot" 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;ul&gt;
&lt;li&gt;
&lt;strong&gt;Open-weight model:&lt;/strong&gt; the hosted demo runs an open-weight model (default: OpenAI's gpt-oss-120b) served through &lt;strong&gt;Groq&lt;/strong&gt;. The app fetches the models Groq currently offers and lets me pick one from a dropdown.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Local option:&lt;/strong&gt; the same LLM layer in &lt;code&gt;core.py&lt;/code&gt; can talk to a local &lt;strong&gt;Ollama&lt;/strong&gt; model instead, so the app isn't tied to one provider.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Streamlit&lt;/strong&gt; for the interface, &lt;strong&gt;Python&lt;/strong&gt; for WhatsApp parsing, PDF reading and ranking.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The AI only reads, code does the maths.&lt;/strong&gt; The LLM extracts deadlines and actions from messy text. The attendance calculation, the "classes you must attend" count and the priority ranking are plain code, so the numbers are never hallucinated.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hinglish dates:&lt;/strong&gt; the prompt resolves words like "kal" and "aaj" relative to the date of each message, so deadlines get real dates.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;This app deals with some of the most personal data a student has: private group chats and attendance records.&lt;/p&gt;

&lt;p&gt;Open models gave me choices a closed API wouldn't:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;No lock-in.&lt;/strong&gt; While building this, Groq retired a model I had hard-coded and my app broke. Because the model is just a setting, I moved to another open model with one dropdown instead of rewriting anything.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Where the data goes is a choice.&lt;/strong&gt; The same open model can run on a hosted service for a public demo, or on the student's own laptop through Ollama when privacy matters.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;No dependency on one vendor's pricing or availability.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

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