Hakimv1.0
Academic Project

EduTech | CTI Final Year Learning Management Project

An academic case study of EduTech, a PHP and MySQL learning management prototype developed and defended as my Computer Technology Institute final year project in 2022.

December 20, 20226 min readRepository
PHPMySQLJavaScriptjQueryAJAXBootstrapLearning Management

Project Overview

EduTech is the learning management information system I developed for my final year project at the Computer Technology Institute. I defended it on December 20, 2022. The project brought course publishing, lesson videos, student accounts, feedback, and administrative records into one database driven website. It was an opportunity to apply the PHP, SQL, and web development skills I studied in my Database specialization to a complete academic project.

The application was built with PHP, MySQL, JavaScript, jQuery, AJAX, and Bootstrap. It has a public course catalog, student pages, and a separate administrator workspace. My final project defense is recorded elsewhere in this portfolio; this case study explains what the repository contains and what I learned from building it.

The Problem

Learning content is difficult to manage when course descriptions, lesson files, student records, and feedback are kept separately. An administrator needs a way to publish and organize courses. A student needs to discover a course, understand its duration and price, sign in, and return to the lessons. Even a small learning platform needs these records to refer to the same course and student identities.

For my final year project, I modeled those needs as a website with distinct public, student, and administrator experiences. The objective was to demonstrate how a relational database and server rendered pages could support an educational workflow, rather than to claim a large deployed learning service.

System Structure

The diagram shows the three interface areas and the main kinds of records they use. It describes the application's structure, not a verified payment sequence.

Rendering diagram…

The SQL schema contains tables for administrators, students, courses, lessons, course orders, and feedback. PHP pages query these records directly and render HTML for each role. Bootstrap provides the responsive layout, while jQuery and AJAX support registration and login interactions without a full page form submission.

Public Course Experience

The home page and course listing retrieve course records from MySQL and display their titles, descriptions, images, and prices. A course detail page adds duration, instructor information, and a list of lesson names. This gives a prospective student enough context to understand an offering before moving toward enrollment.

The public experience is connected to records that an administrator can update. Course cards are generated from stored data rather than written separately into every page. That connection was an important part of the project: changing a course in the administrator area can change what visitors see in the catalog. The course detail page shows this data flow.

Student Experience

Students can register and sign in, maintain profile details, and submit feedback. The student section includes a My Courses page and a video lesson player with a list of lessons for the selected course. The player reads lesson names and video paths from the database, which keeps the learning content tied to course records rather than fixed into the page.

The My Courses page was designed to find courses associated with a student's order records. In the repository, its query uses a different variable name from the one assigned to the signed in student, so I do not present that page as a verified completed enrollment experience. The student area still demonstrates the intended separation between public discovery and a personal learning workspace.

Administrator Workspace

Administrators can add and edit courses, upload course images, create lessons with video files, manage student records, review feedback, and inspect course orders. The dashboard counts courses, students, and orders. A sales report filters order records by date and provides a printable table.

These screens show how the same database supports both sides of the platform. An administrator creates the course and lesson records that appear to visitors and students. The student and feedback screens then add information about the people using those records. The administrator course management is the main operational part of the prototype.

Payment Prototype and Current Limits

EduTech includes a Paytm checkout redirect and callback files, so payment was part of the design. The current repository does not establish a working paid enrollment flow. The callback contains a syntax error and expects course and student values that the checkout request does not supply. I would not claim that successful payments were processed or that paid orders reliably granted access.

Access control also needs more work. The lesson page checks whether a student is signed in, but does not verify that the student owns the selected course. Registration stores passwords without hashing, and several database queries insert user input directly into SQL strings. Those choices are not suitable for a production learning platform. A modern version would use password hashing, prepared database queries, server checks for course ownership, and tests for the complete enrollment path.

The repository does not provide evidence of a live deployment, real transactions, or usage metrics. Its value in this portfolio is the academic work it documents: a course data model, multiple user roles, dynamic pages, media handling, and a project defense in 2022.

What I Learned

EduTech gave me practical experience connecting a user interface to a relational database and organizing one application around different responsibilities. I had to think about how courses relate to lessons, how students see their own information, and how administrators maintain the content that powers the public website.

Looking back at the source also makes the next engineering steps clear. A feature is complete only when its interface, database change, access rules, and failure handling work together. That lesson became an important foundation for my later projects, where I placed more emphasis on secure identity, validated workflows, and reliable transaction boundaries.