OCRS — Online Course & Record System
Full-Stack LMS
01 — Project Overview
A full learning management system with course enrollment, note sharing between students, and an admin dashboard for employee records — all secured with Firebase Authentication.
Solo Developer — architecture, database design, Firebase integration, and frontend.
Stack
02 — The Problem
Goal
Build a unified platform for course management, student-to-student knowledge sharing, and institutional record keeping.
User Issue
Students had no central hub for sharing subject notes, and administrators used disconnected spreadsheets for employee records.
03 — The Process
Firebase Auth
Used Firebase Authentication for student login, providing Google SSO without building a custom auth system from scratch.
Relational Schema Design
Carefully normalized the MySQL schema to handle many-to-many relationships between students, courses, and notes without redundancy.
Role-Based Access
Implemented distinct student, instructor, and admin roles with PHP session guards to ensure no unauthorized data access.
Key Challenge
Designing the note-sharing system with access controls — a student's private notes should never appear in another student's feed without explicit sharing.
// Fetch secure student data for dashboard
$stmt = $conn->prepare("SELECT name, email, reg_no, course FROM students WHERE student_id = ?");
$stmt->bind_param("i", $student_id);
$stmt->execute();
$student = $stmt->get_result()->fetch_assoc();
$student_name = htmlspecialchars($student['name'] ?? 'N/A'); 04 — The Solution
A unified LMS with course enrollment, subject note sharing, and a secured admin panel for employee records — all under one authenticated roof.
05 — Results & Learnings
Impact
Consolidated three separate manual processes (course tracking, note sharing, employee records) into a single unified system.
Learnings
Discovered the importance of schema normalization early — a poorly designed many-to-many table caused N+1 query issues that were painful to refactor.
What I'd do differently
Would add real-time notifications using Firebase Realtime Database when a new note is shared to a student's enrolled course.