Local Development

Clone the source, install dependencies, and iterate. Recommended if you're contributing or running a fork.

Prerequisites

  • Node.js 20+ and npm 10+
  • Docker (only needed for the LaTeX resume pipeline)
  • A Telegram bot token — see Telegram Setup

Clone and install

bash
git clone https://github.com/Ayush-Vish/studentsync.git
cd studentsync
npm install

Environment

Copy .env.example to .env, or run the wizard:

bash
npm run onboard

Build and run

bash
npm run build # compile TypeScript
npm start # start bot in foreground

Hot reload

npm run dev watches the src/ directory with tsx and restarts on change. Useful for iterating on new skills.

Daemon mode from source

bash
npm run start:daemon # builds + pm2 start
npm run stop:daemon # pm2 stop + delete
pm2 logs student-daemon

Project layout

bash
src/
orchestrator/ # the planner that routes tasks to skills
skills/ # solver, classroom, portal, resume, etc.
adapters/ # llm providers + ocr + pdf parsers
telegram/ # telegraf scenes + middleware
config/ # persistence layer for scholar.json
cli/ # `studentsync onboard`, `studentsync ...`
scripts/
resume-templates/ # put your Overleaf .tex files here
tests/

Contributing

PRs welcome. Keep commits small, run npm run lint && npm test before opening one. The maintainer reviews weekly.