ClassPro
Better way to manage your academics.
Install / Use
/learn @Rahuletto/ClassProREADME

ClassPro
Better way to manage your academics.
View, predict, and strategize your success.
This monorepo contains both the frontend (Next.js) and backend (Go) for the ClassPro application.
Monorepo Structure
classpro/ ├── frontend/ # Next.js frontend application ├── backend/ # Go backend API ├── .env.example # Environment variables template ├── package.json ├── compose.yaml └── README.md
Prerequisites
Setup
-
Clone the repository:
git clone --recurse-submodules https://github.com/rahuletto/classpro cd classpro -
Install dependencies:
# Install the run script bun install # Install all dependencies bun run install:all -
Environment Setup: Copy from
.env.exampleand paste it in the root directory
# Shared Configuration
SUPABASE_URL="your_supabase_url"
SUPABASE_KEY="your_supabase_anon_key"
VALIDATION_KEY="your_validation_key"
# Frontend Specific (Mostly autofilled by the variables)
NEXT_PUBLIC_URL="http://localhost:8080"
NEXT_PUBLIC_SUPABASE_URL="${SUPABASE_URL}"
NEXT_PUBLIC_SERVICE_KEY="${SUPABASE_KEY}"
NEXT_PUBLIC_VALIDATION_KEY="${VALIDATION_KEY}"
# Backend Specific
ENCRYPTION_KEY="your_encryption_key"
URL="http://localhost:3000,http://localhost:0243"
[!TIP] Generate secure keys for
VALIDATION_KEYandENCRYPTION_KEY.For Linux, macOS, or Windows with Git Bash/WSL:
openssl rand -hex 32For Windows with PowerShell:
[BitConverter]::ToString((New-Object Security.Cryptography.RNGCryptoServiceProvider).GetBytes(32)).Replace("-", "").ToLower()
Development
Run both services:
# Frontend (http://localhost:0243)
bun run dev:frontend
# Backend (http://localhost:8080)
bun run dev:backend
# Run the app as a whole
bun run dev
Production Build
# Build both services as a whole
bun run build
# Build individually
bun run build:frontend
bun run build:backend
Docker Deployment
# Build and run with Docker Compose
bun run docker:build
bun run docker:up
# Stop services
bun run docker:down
[!WARNING] We will NOT take account for anything caused by your self-hosted instance
Why Choose ClassPro?
- Mobile-First Approach: Built for mobile devices, Optimized for desktop and tablet devices.
- Open Source: Transparent and community-driven.
- Massive Community: Used by 16k+ students every month.
- Timetable Generation: Creates a full timetable based on your class schedule.
- Attendance Prediction: Predicts the percent based on your expected leave days
- Safe and Secure: Built with privacy and security in mind.
- No Bloat: Streamlined and efficient, with no unnecessary bloatware.
The Idea Behind ClassPro
This project was intended to show the timetable and attendance. but it grew and scaled to a full-on replacement to SRM Academia. We made sure to use the web-standards and the best-in-class approaches to make sure our service is fast, easy-to-use and easy on eyes.
Contributors
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --> <!-- prettier-ignore-start --> <!-- markdownlint-disable --> <table> <tbody> <tr> <td align="center" valign="top" width="14.28%"><a href="http://marban.is-a.dev"><img src="https://avatars.githubusercontent.com/u/71836991?v=4?s=100" width="100px;" alt="Rahul Marban"/><br /><sub><b>Rahul Marban</b></sub></a><br /><a href="https://github.com/Rahuletto/ClassPro/commits?author=Rahuletto" title="Code">💻</a> <a href="#design-Rahuletto" title="Design">🎨</a> <a href="https://github.com/Rahuletto/ClassPro/issues?q=author%3ARahuletto" title="Bug reports">🐛</a> <a href="#a11y-Rahuletto" title="Accessibility">️️️️♿️</a> <a href="#infra-Rahuletto" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="#maintenance-Rahuletto" title="Maintenance">🚧</a> <a href="#projectManagement-Rahuletto" title="Project Management">📆</a> <a href="https://github.com/Rahuletto/ClassPro/pulls?q=is%3Apr+reviewed-by%3ARahuletto" title="Reviewed Pull Requests">👀</a> <a href="#security-Rahuletto" title="Security">🛡️</a> <a href="#tool-Rahuletto" title="Tools">🔧</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/root-daemon"><img src="https://avatars.githubusercontent.com/u/47695678?v=4?s=100" width="100px;" alt="Srivishal Sivasubramanian"/><br /><sub><b>Srivishal Sivasubramanian</b></sub></a><br /><a href="https://github.com/Rahuletto/ClassPro/commits?author=root-daemon" title="Code">💻</a> <a href="https://github.com/Rahuletto/ClassPro/issues?q=author%3Aroot-daemon" title="Bug reports">🐛</a> <a href="#maintenance-root-daemon" title="Maintenance">🚧</a> <a href="https://github.com/Rahuletto/ClassPro/pulls?q=is%3Apr+reviewed-by%3Aroot-daemon" title="Reviewed Pull Requests">👀</a></td> <td align="center" valign="top" width="14.28%"><a href="https://portfolio-debaditya.vercel.app/"><img src="https://avatars.githubusercontent.com/u/123065261?v=4?s=100" width="100px;" alt="Debaditya Malakar"/><br /><sub><b>Debaditya Malakar</b></sub></a><br /><a href="#design-DebadityaMalakar" title="Design">🎨</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/Aakarsh-Kumar"><img src="https://avatars.githubusercontent.com/u/72206467?v=4?s=100" width="100px;" alt="Aakarsh Kumar"/><br /><sub><b>Aakarsh Kumar</b></sub></a><br /><a href="https://github.com/Rahuletto/ClassPro/commits?author=Aakarsh-Kumar" title="Code">💻</a> <a href="https://github.com/Rahuletto/ClassPro/issues?q=author%3AAakarsh-Kumar" title="Bug reports">🐛</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/harsshhan"><img src="https://avatars.githubusercontent.com/u/146644928?v=4?s=100" width="100px;" alt="HARSHAN A M"/><br /><sub><b>HARSHAN A M</b></sub></a><br /><a href="#data-harsshhan" title="Data">🔣</a></td> </tr> </tbody> </table> <!-- markdownlint-restore --> <!-- prettier-ignore-end --> <!-- ALL-CONTRIBUTORS-LIST:END -->License
You are free to:
- Share: Copy and redistribute the material in any medium or format.
Under the following terms:
- Attribution: You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.
- NonCommercial: You may not use the material for commercial purposes.
- NoDerivatives: If you remix, transform, or build upon the material, you may not distribute the modified material.
Related Skills
node-connect
349.0kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
109.4kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
349.0kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
349.0kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
