April 1, 2021
Online Classroom.
Backend · FrontendA web-based online classroom platform for managing learning activities, assignments, and student interactions digitally.

Description
Online Classroom is a web-based learning management system that supports online teaching and learning. Teachers and students interact digitally through assignment management, classroom discussions, announcements, and shared learning materials.
Built with Laravel and Bootstrap, the platform provides a clean, responsive interface that stays accessible across devices, keeping coursework and communication in one place.
Background
The shift toward remote and blended learning created a need for a simple, self-hosted space where a class could operate online without stitching together email, chat, and file-sharing tools. This project was built to give teachers and students that single digital classroom.
Goal
- Provide a central place for classes, assignments, and materials.
- Let teachers distribute work and students submit it online.
- Support discussion, announcements, and attendance to keep a class organized.
Features
- User authentication and role management (teacher/student)
- Teacher and student dashboards
- Classroom management
- Assignment upload and submission
- Learning material management
- Announcement system
- Student attendance management
- Discussion and interaction features
- File upload support
- Activity tracking
- Search and filter functionality
- Responsive interface design
Technologies
- PHP: core server-side language.
- Laravel: framework for routing, Eloquent ORM , auth, and file handling.
- Bootstrap: responsive layout and UI components.
- jQuery: client-side interactivity and AJAX for dynamic actions.
How to Run
git clone https://github.com/FannyDevz/Classroom-Task
cd Classroom-Task
composer install
cp .env.example .env
php artisan key:generate
# configure DB credentials in .env, then:
php artisan migrate --seed
php artisan serve
Technical Decisions
- Built on Laravel to reuse its auth scaffolding, validation, and storage abstraction for uploaded assignments.
- Modeled roles (teacher/student) to drive distinct dashboards and permissions.
- Used Laravel’s filesystem for assignment and material uploads to keep storage swappable (local or cloud).
What I Learned
- Designing role-based dashboards and permissions in Laravel.
- Handling file uploads, validation, and submission workflows.
- Structuring relational data across classes, assignments, and users.
Notes
Covers the core LMS workflow. Possible extensions: grading and feedback, notifications, and a calendar for deadlines. Repository: https://github.com/FannyDevz/Classroom-Task
Read the story behind this project: Perjalanan Akademik (in Indonesian).

Hey! I’m Fanny, the software engineer tending to this digital garden. You can read more about me, or subscribe by email.