A professional, class management solution designed for educators. This system streamlines attendance, grading, and behavior tracking, featuring native integration with Google Classroom and standardized Excel reporting.
Record student presence by period with support for multi-hour sessions and custom remarks.
Manage scores across all academic categories — Pre-midterm, Midterm, Post-midterm, and Final.
Real-time merit/demerit system on a 0–15 point scale with instant database updates.
| Feature | Description |
|---|---|
| Rapid Submission | Students scan QR codes to instantly mark assignments as "Checked" |
| Automated Attendance | Scan student IDs for lightning-fast classroom entry |
| ID Generation | Bulk generate and print QR cards for entire classrooms |
One-click synchronization of rosters, assignments, and returned grades via OAuth2.
| Layer | Technology |
|---|---|
| Frontend | HTML5, CSS3 (Glassmorphism UI), Vanilla JavaScript |
| Backend & DB | Supabase (PostgreSQL) |
| Build Tool | Vite |
| CI/CD | GitHub Actions → GitHub Pages |
| Cloud Integration | Google Classroom API (REST) |
| Libraries | ExcelJS, Html5-QRCode, Chart.js, QRCode.js |
git clone https://github.com/kpp-arnut/cms.git
cd cms
npm installCreate a .env file in the root directory:
VITE_SUPABASE_URL=https://xxxx.supabase.co
VITE_SUPABASE_KEY=your_supabase_anon_key
VITE_GOOGLE_CLIENT_ID=your_google_client_id.apps.googleusercontent.com
⚠️ Never commit.envto version control. It is listed in.gitignoreby default.
Initialize your Supabase project with the following table structures:
| Table | Columns |
|---|---|
students |
id (PK), first_name, last_name, classroom, seat_no, behavior_score, email |
assignments |
id (PK), name, subject, classroom, category, max_score, passing_score |
grades |
student_id, assignment_id, score, status, updated_at |
attendance |
student_id, attendance_date, subject, status, hours, remark |
Add your deployment URL to Authorized JavaScript Origins:
http://localhost:5173
https://kpp-arnut.github.io
npm run devThis project auto-deploys to GitHub Pages via GitHub Actions on every push to master.
Add the following Repository Secrets under Settings → Secrets and variables → Actions:
| Secret | Description |
|---|---|
VITE_SUPABASE_URL |
Your Supabase project URL |
VITE_SUPABASE_KEY |
Your Supabase anon key |
VITE_GOOGLE_CLIENT_ID |
Your Google OAuth client ID |
This project is licensed under the MIT License.
Developed by: Arnut Klangprapun