{"slug": "i-built-campuscopilot-a-personal-ai-learning-system-for-college-students", "title": "I Built CampusCopilot — A Personal AI Learning System for College Students", "summary": "A developer built CampusCopilot, a personal AI learning workspace for college students that links study, coding practice, performance tracking and scheduling into a single loop. The system uses a TF-IDF and cosine-similarity retrieval pipeline over uploaded PDFs feeding a Llama model for grounded responses, and generates weakness-based recommendations such as targeted practice sessions on topics like recursion. It was created for a college friend as part of a Hacktoberfest weekend build-for-a-friend challenge.", "body_md": "[#devchallenge](https://dev.to/t/devchallenge) [#weekendchallenge](https://dev.to/t/weekendchallenge) [#hf26challenge](https://dev.to/t/hf26challenge)\n\nHacktoberfest Weekend Challenge: **Build for a Friend** 🤝\n\nWhat if your AI didn't just answer your study questions, but actually understood where you were struggling and told you what to work on next?\n\nI built **CampusCopilot** for a college friend who was struggling with DSA, coding practice, study materials, assignments, and exams.\n\nInstead of building another generic AI chatbot, I wanted to build something that connects the entire learning process:\n\n**Study → Practice → Make mistakes → Understand weaknesses → Get a better next step**\n\nThe result is **CampusCopilot — a personal AI learning workspace for college students.**\n\nCollege students often have everything scattered across different places.\n\nNotes are stored in PDFs.\n\nCoding practice happens on different platforms.\n\nAssignments are tracked separately.\n\nExam dates live in calendars.\n\nAnd when students use an AI chatbot, the conversation usually doesn't become an actual learning plan.\n\nI wanted CampusCopilot to answer a different question:\n\n**\"Given everything this student has been doing, what should they do next?\"**\n\nMost AI learning tools follow:\n\n**Question → Answer**\n\nCampusCopilot tries to create:\n\n**Study → Practice → Performance → Weakness → Recommendation → Action**\n\nThe AI isn't only there to answer questions.\n\nIt should help the student decide **what to do next**.\n\n**\"What should I do today?\"**\n\nIt brings together:\n\nStudyBuddy turns uploaded study material into an interactive learning workspace.\n\nCodeExplain focuses on understanding bugs instead of simply copying fixes.\n\nCampus Planner brings exams, assignments and daily tasks into one workspace.\n\nThe Learning Profile turns learning activity into meaningful insights.\n\nThis is the core idea behind CampusCopilot:\n\n**Study**\n\n↓\n\n**Practice**\n\n↓\n\n**Make mistakes**\n\n↓\n\n**Identify weak areas**\n\n↓\n\n**Update learning profile**\n\n↓\n\n**Recommend next action**\n\n↓\n\n**Practice again**\n\nFor example, if a student repeatedly struggles with recursion and has low practice accuracy, CampusCopilot can identify it as a weak topic and recommend a focused practice session.\n\nInstead of simply saying:\n\n\"Here is an explanation of recursion.\"\n\nIt can say:\n\n**\"Recursion is currently one of your weakest areas. Spend 35 minutes practicing it.\"**\n\nThe goal isn't just to provide an answer.\n\n**The goal is to help the student make progress.**\n\nIt provides four learning modes.\n\nAsk questions about uploaded study material and retrieve relevant context before generating the response.\n\nLearn a concept progressively through:\n\nPractice with questions and track performance.\n\nGet a concept re-framed using different explanations, analogies and problem-solving approaches.\n\nThe idea is to make studying **interactive instead of simply reading PDFs.**\n\nFor uploaded study materials, CampusCopilot uses a retrieval pipeline:\n\n**PDF → Text Extraction → Chunking → TF-IDF Retrieval → Cosine Similarity → Relevant Context → Llama → Grounded Response**\n\nThis helps StudyBuddy focus its responses on the student's own uploaded material instead of treating every question like a completely generic chatbot request.\n\nAs a CSE student, one of the most frustrating experiences is getting code that doesn't work and not understanding why.\n\n**CodeExplain focuses on teaching rather than simply fixing.**\n\nIt breaks problems into six stages:\n\nIt supports:\n\nFor example, a recursion error isn't treated as just something to patch.\n\nCampusCopilot explains the relationship between the recursive call, the base case and the call stack so the student understands the underlying concept.\n\n**\"Don't just fix my code. Help me understand why I made the mistake.\"**\n\nCampus Planner brings exams, assignments and tasks into the same workspace.\n\nStudents can manage:\n\nIt also includes **Build My Study Plan**.\n\nA student can provide:\n\nCampusCopilot can then generate an intelligent, time-blocked study plan.\n\nThe Learning Profile turns learning activity into something meaningful.\n\nIt tracks:\n\nInstead of showing only activity numbers, the profile helps answer:\n\n**\"What am I good at?\"**\n\n**\"Where am I struggling?\"**\n\n**\"What should I practice next?\"**\n\nThis is one of the ideas I care most about in CampusCopilot.\n\nFor example, if a student repeatedly struggles with recursion:\n\n**Recursion → 42% Accuracy → Weak Topic Detected → Priority Focus → 35-Minute Practice Session → Quiz → Updated Performance → Updated Recommendation**\n\nInstead of simply giving another explanation, CampusCopilot can recommend an action.\n\n**The goal is not just knowledge delivery.**\n\n**The goal is progress.**\n\nThe different parts of CampusCopilot are connected:\n\n**Dashboard → StudyBuddy → Quiz → Learning Performance → Weak Topic → CodeExplain / Practice → Campus Planner → Study Plan → Dashboard**\n\nThis creates a continuous learning loop instead of a collection of disconnected AI features.\n\nOne of the most important technical decisions was supporting a local AI setup.\n\nCampusCopilot can run:\n\n**CampusCopilot → AI Service Layer → Ollama → Llama 3.1 8B**\n\nThis creates a local-first option for working with personal study materials, code and learning context.\n\nThe Settings page clearly communicates whether the application is using:\n\n**REAL LOCAL AI**\n\nor\n\n**DEMO MODE**\n\nIf Ollama is unavailable, CampusCopilot does not pretend that a simulated response came from the local model.\n\nInstead, it provides explicit controls to retry the connection or use Demo Mode.\n\nThe overall architecture is:\n\n**Student**\n\n↓\n\n**CampusCopilot Workspace**\n\n**StudyBuddy / CodeExplain / Campus Planner**\n\n**Retrieval Layer**\n\n**TF-IDF + Cosine Similarity**\n\n**AI Service Layer**\n\n**Ollama**\n\n**Llama 3.1 8B**\n\nThe architecture keeps the AI service layer modular so the application can work with a local model while keeping the rest of the learning system independent from the model implementation.\n\nAnother important part of the project is the shared learning state.\n\nCampusCopilot uses a unified application state so that the different sections aren't isolated demos.\n\nThe application maintains a single source of truth for the student's learning context using:\n\n`campus_copilot_state_v3`\n\nstored in local browser storage.\n\nThis allows information such as learning activity, tasks, progress and weak areas to remain connected across the application.\n\nThere are already thousands of AI chatbots.\n\n**I didn't want to build another one.**\n\nThe interesting part of CampusCopilot is the connection between the features.\n\nA student can:\n\n**Study a topic → take a quiz → perform poorly → have the weak area identified → receive a practice recommendation → practice the topic → see progress reflected in their profile.**\n\nThat creates a **learning loop** instead of a collection of disconnected AI features.\n\nI wanted the product to feel different from a generic AI chatbot.\n\nThe interface was designed as a **developer-focused campus workspace** rather than a traditional chatbot.\n\nThe design uses:\n\nThe goal was to make it feel like a **personal developer campus**, not another ChatGPT clone.\n\nI tested CampusCopilot as a complete student journey rather than only testing individual screens.\n\nThe main flows were checked:\n\nI also added explicit loading states such as:\n\nand protected the application against accidental double submissions.\n\nThe production build was verified successfully with `npm run build` with **0 TypeScript or Vite build errors**.\n\nBefore deployment, I performed a complete product audit and removed:\n\nI also added meaningful empty states such as:\n\nThe goal was to make the application feel like a complete product rather than a collection of hackathon screens.\n\nCampusCopilot supports two clearly communicated modes.\n\nWhen Ollama is running on port `11434`, CampusCopilot can use:\n\n**Llama 3.1 8B Instruct**\n\nIf Ollama isn't available, the user can explicitly choose Demo Mode.\n\nThe application provides:\n\n**[Retry Connection]**\n\nand\n\n**[Use Demo Mode]**\n\ninstead of silently pretending that Demo Mode responses are real model responses.\n\nThis makes the hackathon demo more reliable while keeping the local AI architecture transparent.\n\nWatch the complete CampusCopilot demonstration:\n\nThe demo covers:\n\n**Dashboard → StudyBuddy → CodeExplain → Campus Planner → Learning Profile**\n\nAI-assisted development was used during the project for coding assistance, debugging, iteration and documentation.\n\nThe development process involved repeatedly:\n\n**Build → Test → Find bugs → Debug → Improve → Test again**\n\nThe important part wasn't simply generating code.\n\nThe final product decisions, feature design, architecture and testing decisions were made based on the actual product requirements.\n\n🚀 **Try CampusCopilot:**\n\n[https://campus-copilot-flax.vercel.app/](https://campus-copilot-flax.vercel.app/)\n\nThe deployed version can be explored in **Demo Mode**.\n\nThe local setup supports **Llama 3.1 through Ollama**.\n\nThe complete source code is available here:\n\n[https://github.com/iam-ayushraj05/campus-copilot](https://github.com/iam-ayushraj05/campus-copilot)\n\nThe project started with a simple problem.\n\nMy friend didn't need another place to ask an AI questions.\n\nThey needed something that could help organize the entire learning process.\n\nThey were dealing with:\n\nat the same time.\n\nThat made me think:\n\n**\"What if the AI could understand all of those signals together?\"**\n\nThat became CampusCopilot.\n\nFor students, AI should not always mean sending every piece of personal context to a remote service.\n\nStudy materials, source code, learning history and mistakes can all be personal.\n\nOpen-weight models make it possible to explore architectures where AI can run locally and the student has more control over their data and environment.\n\nThat's one of the reasons I wanted to experiment with **Llama 3.1 through Ollama**.\n\nThe hardest part wasn't getting an AI model to answer a question.\n\nIt was deciding:\n\n**\"What should happen after the answer?\"**\n\nA useful AI learning product needs to connect:\n\n**Conversation → Practice → Performance → Weakness Detection → Recommendation → Action**\n\nThat changed how I think about AI applications.\n\n**The AI model isn't the entire product.**\n\n**The system built around the AI is the product.**\n\nThere is still a lot I want to improve:\n\nBut the core idea will remain the same:\n\n**Help students understand what they need to learn, why they need to learn it, and what they should do next.**\n\nCampusCopilot was built for the **Hacktoberfest Weekend Challenge: Build for a Friend**.\n\nThe project started with a real student problem rather than starting with a technology and searching for a problem afterward.\n\nThe goal was simple:\n\n**Build something a college student could actually use.**\n\nThe project combines:\n\nAll inside one connected developer-focused campus workspace.\n\nI started CampusCopilot because one student was struggling to keep everything together.\n\nWhat started as a solution for a friend became an experiment in a bigger question:\n\n**\"What if AI stopped being just an answer machine and became a learning companion that actually understands your progress?\"**\n\nThat's what I'm trying to build with CampusCopilot.\n\n**Study smarter. Understand your code. Know what to do next. 🚀**\n\n🌐 **Live Demo**\n\n💻 **GitHub Repository**\n\n🎥 **Demo Video**\n\nAI tools were used during the development of CampusCopilot for coding assistance, debugging, iteration, testing support and documentation.\n\nThe product concept, problem definition, feature design, architecture decisions, implementation direction, testing, evaluation and final product decisions were made by me.", "url": "https://wpnews.pro/news/i-built-campuscopilot-a-personal-ai-learning-system-for-college-students", "canonical_source": "https://dev.to/iam_ayushraj/i-built-campuscopilot-a-personal-ai-learning-system-for-college-students-2no1", "published_at": "2026-10-04 12:31:13+00:00", "updated_at": "2026-10-04 12:42:30.618484+00:00", "lang": "en", "topics": ["artificial-intelligence", "ai-products", "ai-tools", "large-language-models", "generative-ai"], "entities": ["CampusCopilot", "Llama", "Hacktoberfest", "dev.to"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/i-built-campuscopilot-a-personal-ai-learning-system-for-college-students", "markdown": "https://wpnews.pro/news/i-built-campuscopilot-a-personal-ai-learning-system-for-college-students.md", "text": "https://wpnews.pro/news/i-built-campuscopilot-a-personal-ai-learning-system-for-college-students.txt", "jsonld": "https://wpnews.pro/news/i-built-campuscopilot-a-personal-ai-learning-system-for-college-students.jsonld"}}