Introduction

StudentSync is an automated study and assignment agent you control from your favorite chat app. This is the working reference for everything it does.

StudentSync — powered by Scuba the cat 🐱 — turns messy course logistics into a few Telegram messages. You send the prompt, it plans, solves, formats, and quietly lands the PDF in the right spot on Google Classroom, Moodle, Canvas, or whatever portal your school runs.

First time here?

Skip to the Quick Install and you'll be chatting with your bot in about a minute.

What it does

  • Multi-platform messaging. Chat on Telegram and WhatsApp. Native session persistence means your bot stays awake even if your phone goes offline.
  • Agentic assignment solving. Text prompts, PDFs, and images (via OCR) are decomposed into execution plans. The agent solves, formats, and generates professional outputs.
  • Google Classroom integration. Search for coursework, upload generated PDFs to Drive, and turn in assignments directly from your chat app.
  • Secure Sandboxing. Execution of Python, JS, C++, and LaTeX happens in isolated Docker containers, providing safe and reproducible results.
  • Student Life & Productivity. Built-in tools for expense tracking, todo management, habit streaks, and emotional well-being check-ins.
  • Smart Scheduling. Set recurring reminders using natural language that are delivered directly to your messaging platform.

Install in 60 seconds

The auto-installer is the path most people take:

bash
curl -sSL https://raw.githubusercontent.com/Ayush-Vish/studentsync/main/install.sh | bash

Prefer npm? See npm Global Install. Want to hack on the source? Local Development has you covered.

Architecture at a glance

StudentSync is a TypeScript daemon that runs under PM2. The orchestrator fans out to pluggable modules: an LLM adapter (OpenAI, Gemini, OpenRouter, or local Ollama), an OCR pipeline (Tesseract), PDF parsers, Googleapis for Classroom / Drive, Puppeteer for generic portals, and a Docker-backed LaTeX renderer for resumes.

.config/scholar.json
{
"identity": {
"rollNumber": "21BCE1234",
"name": "Ayush Vish",
"university": "VIT Chennai"
},
"llm": {
"provider": "gemini",
"model": "gemini-1.5-pro"
},
"telegram": {
"botToken": "env:TELEGRAM_BOT_TOKEN"
}
}

You never hand-edit this file

Use studentsync onboard — the wizard manages both .env and .config/scholar.json for you.

Where to go next

Help & community

Open an issue on GitHub or drop a question in the discussions tab. Scuba reads everything.