Skip to content

RaghavSethi006/TaskArena-V2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

140 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

โš”๏ธ TaskArena v2

Your personal AI study companion. Built for students who mean business.

Manage tasks ยท Index your notes ยท Chat with an AI that knows your material ยท Generate quizzes ยท Build smarter schedules ยท Level up.

Everything in one app. Offline. On your machine. Zero subscriptions.


Python FastAPI React TypeScript Tauri SQLite


The Problem

Students juggle five different apps just to get through a semester. A notes app here. A calendar there. ChatGPT in another tab โ€” which doesn't know anything about your actual coursework. A todo list. A Pomodoro timer. None of them talk to each other.

TaskArena is one app that replaces all of them โ€” and unlike every AI tool you've tried, the AI actually knows what's in your lecture slides.


Everything It Does

๐Ÿ“‹ Task Management โ€” With a Kanban Board and XP

Create and track tasks across three types: Assignments, Study sessions, and Productivity tasks. Set priorities, due dates, and statuses. Watch them move through a Kanban board from pending โ†’ in progress โ†’ done.

Completing a task isn't just satisfying โ€” it awards XP points logged to a permanent ledger. That XP feeds your level, your streak, and your leaderboard rank. The whole app is built around making progress feel real.


๐Ÿง  AI Chatbot โ€” Grounded in Your Own Notes

This is the centerpiece. Upload your PDFs and lecture slides once. TaskArena indexes them using SciBERT โ€” a BERT model trained on academic and scientific text โ€” and builds a local semantic search engine over your material.

Every time you ask a question, the chatbot retrieves the most relevant passages from your notes before generating an answer. Not Wikipedia. Not the internet. Your lecture slides. Your textbook chapters. Your content.

You control the RAG context scope per conversation:

Context What the AI reads
Whole course Every indexed file across the course
Specific folder Just one unit or module (e.g., "Unit 3 โ€” Thermodynamics")
Single file One specific document (e.g., "Week 9 lecture slides")
No context General AI, no document retrieval

Responses stream token-by-token in real time. Every conversation is saved. Sources (the file names the AI drew from) are shown at the end of each reply.


๐Ÿ“š Notes & File Indexing โ€” Your Whole Course in a Search Engine

Organize materials in a three-level hierarchy: Course โ†’ Folder โ†’ File. Supported formats: PDF, Word documents (.docx), and plain text.

When you upload a file, the backend:

  1. Extracts the full text
  2. Splits it into overlapping chunks
  3. Embeds each chunk with SciBERT
  4. Saves the embeddings for instant semantic search

An indexed badge shows you what's ready. Re-indexing a file is a single click. This index powers the chatbot, the quiz generator, and the study material generator simultaneously.


๐Ÿงช AI Quiz Generator โ€” From Your Notes, Not the Internet

Select a course, a folder, or a single file. Choose difficulty and question count. Hit generate.

The app runs a semantic search over your indexed material, builds a structured prompt from the most relevant content, sends it to the AI, and streams back real-time progress:

Searching course materialsโ€ฆ
Building quiz promptโ€ฆ
Generating questions with AIโ€ฆ
Saving quizโ€ฆ  โœ“ Done

Every question comes with four options, the correct answer flagged, and a written explanation. Your scores are tracked over every attempt. Your best score is always saved. XP is awarded on completion.


๐Ÿ“– Study Hub โ€” AI-Generated Study Materials

Beyond quizzes, the Study Hub generates full study materials from your course content:

  • Study notes โ€” condensed summaries of key concepts
  • Concept summaries โ€” high-level overviews of topics
  • Flashcard sets โ€” Q&A pairs for active recall practice

Scope it to a whole course, a folder, or a single file. Choose difficulty. Watch it generate with the same live progress stream as the quiz generator. Every generated material is saved and accessible any time.


๐Ÿ“… Schedule Builder โ€” With AI Suggestions

A full calendar application with daily, weekly, and monthly views. Create events in five types โ€” Study, Assignment, Exam, Break, and Other โ€” each rendered in its own color.

The smart part: hit "Get AI Suggestions" and the app analyzes your upcoming task deadlines and your existing schedule density, then generates specific study block recommendations โ€” with exact dates, start times, durations, and the reasoning behind each suggestion. Click "Schedule it" and it becomes a real calendar event.

Tasks with due dates can be auto-synced to the calendar so your assignments automatically appear as events without any manual entry.


๐Ÿ—“๏ธ Schedule Templates โ€” Build Once, Reuse Every Week

If your semester has a consistent structure (lectures on Monday and Wednesday, tutorials on Friday), build it once as a template and instantiate it across any date range with a single action. Templates generate real events, fully editable after creation.


๐Ÿ“Š Statistics Dashboard โ€” Actually Understand Your Progress

Three views that turn your activity data into something meaningful:

  • Overview โ€” total XP, current streak, longest streak, tasks completed vs. pending, quizzes taken, average quiz score, and your global rank.
  • Daily Activity โ€” a time series of tasks completed and XP earned per day, configurable from 1 to 90 days. Designed to render as a GitHub-style activity heatmap.
  • Task Breakdown โ€” completed vs. pending split by task type, so you can see whether it's assignments or study sessions falling behind.
  • Quiz Performance โ€” best scores and attempt counts across every quiz you've taken.

๐Ÿ† Leaderboard โ€” Compete With Your Past Self

Rankings are computed from your XP, level, task completions, and streak. Two periods: All-time and Weekly. The leaderboard is designed to scale to multiple users โ€” the schema and service layer are already built for it.


๐ŸŽฎ XP, Levels & Streaks โ€” Gamification That Works

Every meaningful action feeds the XP system:

  • โœ… Completing a task โ†’ XP based on type and priority
  • ๐Ÿงช Finishing a quiz โ†’ XP based on score
  • ๐Ÿ”ฅ Showing up daily โ†’ streak multiplier

XP accumulates into levels. Levels show on your profile and leaderboard card. Streaks track how many consecutive days you've been active. Daily activity heatmaps visualize the momentum you've built.


๐Ÿ› ๏ธ Floating Desktop Tools โ€” Always One Click Away

Six utility widgets available as floating panels from any page in the app โ€” no navigation required, no tab-switching:

Tool What It Does
Pomodoro Timer Configurable work / short break / long break intervals with desktop notifications
Stopwatch Lap-capable stopwatch for timed study sessions
Calculator Standard calculator for quick arithmetic
Sticky Notes In-session scratchpad for quick thoughts
Quick Links Bookmarked URLs that open in your system browser instantly
Quick Todo Lightweight checklist separate from the main task board

โŒ˜K Command Palette โ€” Navigate Without the Mouse

Hit โŒ˜K (or Ctrl+K) from anywhere in the app. Search pages, trigger actions, start a new conversation โ€” all from your keyboard. Zero mouse required. Inspired by Linear and VS Code.


๐Ÿš€ Onboarding Wizard โ€” Up and Running in Minutes

First-launch wizard that walks you through creating your first course, picking an AI provider, and understanding how XP and streaks work. You're never dropped into a blank app wondering what to do.


๐Ÿ‘ค Profile & AI Configuration โ€” Full Control

Switch your AI provider, model, and API key at any time from the Profile page โ€” no restart, no config file editing. The active provider is shown on every chatbot conversation so you always know what's answering you.


Built to Impress (For Developers & Recruiters)

  • Layered architecture โ€” every feature is a standalone Python service class, wrapped in a FastAPI router, consumed by React. Routers never touch the database directly. Services don't know HTTP exists.
  • Real-time SSE streaming โ€” chat responses and generation pipelines both stream token-by-token over Server-Sent Events. No polling, no fake loading bars.
  • RAG pipeline built from scratch โ€” SciBERT embeddings, cosine similarity search, context scoping at three levels of granularity. No LangChain. No black boxes.
  • Alembic migrations from day one โ€” five schema migrations in version history. Production-grade from the start.
  • Tauri v2 sidecar โ€” the Python backend compiles into a native binary bundled inside the installer. End users need no Python runtime.
  • TanStack Query v5 + Zustand v4 โ€” server state and UI state handled by the right tools, not a shared monolith.
  • Design system with CSS variables โ€” dark-mode-first, strict 4px spacing grid, semantic color tokens, two-font system with explicit usage rules.

Core Stack

Backend   FastAPI ยท SQLAlchemy 2 ยท Alembic ยท SQLite ยท Pydantic v2 ยท llama-cpp-python ยท sentence-transformers
AI        Qwen2.5-7B-Instruct-Q4 ยท Groq API ยท Ollama ยท SciBERT (allenai/scibert_scivocab_uncased)
Frontend  React 18 ยท TypeScript 5 ยท Tauri v2 ยท Vite 5 ยท Tailwind CSS ยท shadcn/ui
State     TanStack Query v5 (server state) ยท Zustand v4 (UI state)
UX        Framer Motion ยท Recharts ยท Sonner ยท date-fns ยท lucide-react ยท DM Sans + DM Mono

AI Providers

Pick what works for your machine. Switch any time.

Provider Setup Speed Privacy
Local โ€” Qwen2.5-7B Download a ~4.5 GB GGUF file. Runs on CPU or GPU. Depends on hardware 100% local, nothing leaves your machine
Groq Add one API key. Free tier available. ~280 tokens/sec Data goes to Groq's servers
Ollama ollama pull qwen2.5:7b. No GGUF needed. Depends on hardware 100% local

Low-RAM machines (<8 GB): use the Llama-3.2-3B-Q4 model (~2 GB) as a local fallback.


Getting Started

Prerequisites

  • Python 3.11+
  • Node 18+ and Rust 1.70+ (for Tauri)
  • 8 GB RAM for local AI โ€” or skip it entirely and use Groq for free

Setup

# 1. Clone
git clone https://github.com/your-username/TaskArena2.0.git
cd TaskArena2.0/taskarena-v2

# 2. Python environment
python -m venv .venv
source .venv/bin/activate        # Windows: .venv\Scripts\Activate.ps1
pip install -r requirements.txt

# 3. Environment config
cp .env.example .env             # Add GROQ_API_KEY if using Groq

# 4. Database
alembic upgrade head
python scripts/seed.py           # Optional โ€” loads sample data

# 5. Local AI model (skip if using Groq or Ollama)
python scripts/download_model.py

# 6. Frontend
cd frontend && npm install && cd ..

Run

# Terminal 1 โ€” Backend
uvicorn backend.main:app --reload --port 8765

# Terminal 2 โ€” Frontend  
cd frontend && npm run tauri dev

App opens in a native window. API explorer at http://localhost:8765/docs.


Project Structure

taskarena-v2/
โ”œโ”€โ”€ features/           # One self-contained Python package per feature
โ”‚   โ”œโ”€โ”€ tasks/          # models ยท schemas ยท service ยท cli
โ”‚   โ”œโ”€โ”€ notes/          # + indexer.py (SciBERT embedding pipeline)
โ”‚   โ”œโ”€โ”€ chatbot/        # + ai_service.py ยท rag_service.py
โ”‚   โ”œโ”€โ”€ schedule/       # + ai_suggestions.py ยท template_service.py
โ”‚   โ”œโ”€โ”€ quiz/           # + generator.py
โ”‚   โ”œโ”€โ”€ study_materials/# + generator.py
โ”‚   โ”œโ”€โ”€ leaderboard/
โ”‚   โ””โ”€โ”€ stats/
โ”œโ”€โ”€ backend/            # FastAPI โ€” thin HTTP wrappers over feature services
โ”‚   โ””โ”€โ”€ routers/        # One router per feature, no DB access allowed here
โ”œโ”€โ”€ frontend/           # Tauri v2 + React desktop app
โ”‚   โ””โ”€โ”€ src/
โ”‚       โ”œโ”€โ”€ pages/      # One file per route (9 pages)
โ”‚       โ”œโ”€โ”€ hooks/      # Data fetching + SSE streaming hooks
โ”‚       โ”œโ”€โ”€ components/ # Layout ยท Schedule UI ยท Floating tools ยท Shared
โ”‚       โ””โ”€โ”€ stores/     # Zustand: UI state ยท schedule state ยท tools state
โ”œโ”€โ”€ shared/             # DB engine, ORM base, config โ€” used by everything
โ”œโ”€โ”€ alembic/            # Migration history (5 versions)
โ”œโ”€โ”€ models/             # AI model weights โ€” git-ignored, downloaded separately
โ””โ”€โ”€ scripts/            # seed.py ยท reset_db.py ยท download_model.py

Roadmap

Shipped

  • Task management with Kanban board, XP, and levelling
  • Notes & file indexing with SciBERT RAG pipeline
  • Streaming AI chatbot with granular context scoping (course / folder / file)
  • AI quiz generation with live progress streaming
  • AI study materials generation (notes, summaries, flashcards)
  • AI schedule suggestions and one-click acceptance
  • Schedule templates with date-range instantiation
  • Statistics dashboard with activity heatmap and breakdown charts
  • Leaderboard with all-time and weekly periods
  • XP, levels, streaks, and gamification throughout
  • Six floating desktop tools (Pomodoro, Stopwatch, Calculator, Sticky Notes, Quick Links, Quick Todo)
  • โŒ˜K Command palette
  • Onboarding wizard
  • Profile with runtime AI provider switching
  • Full Tauri desktop app with sidecar Python backend

Coming Next

  • Multi-user support with Firebase Auth
  • Multiplayer study lobbies
  • Export quizzes and study materials as PDF
  • Hybrid full-text + semantic search across all indexed notes

License

LICENSE โ€” built by Raghav Sethi.