Education Evaluation System

πŸ”Ή View Site

Overview

The Education Evaluation System is an online comprehensive assessment and mastery-tracking system designed to evaluate students' progress in any course. Students can enroll in multiple courses, which can represent textbooks, online courses, or any structured learning material. The system integrates an interactive mastery framework, gamification elements, and psychological engagement strategies to enhance motivation and learning efficiency. It supports various question types, personalized learning paths, and real-time progress tracking, ensuring an adaptive and engaging assessment experience.

Technologies Used

Back-end

Laravel (PHP)

Database

MySQL (Secure & relational data storage)

Front-end

Vue.js (Inertia.js), Tailwind CSS

API Communication

Inertia.js

Security

Authentication (Laravel Breeze), Data Encryption

Features & Functionalities

Flexible Course Structure

  • βœ… Courses are structured as units β†’ lessons β†’ skills but allow flexible mappingβ€”lessons, units, and skills can belong to multiple courses.
  • βœ… Each skill is assessed through targeted exercises, while quizzes, unit tests, and course tests evaluate broader mastery.

Comprehensive Question Bank

  • βœ… All questions are stored in a centralized question bank and randomly selected for skill assessments.
  • βœ… Supports various question types, including multiple-choice, fill-in-the-blank, short answer and many more.
  • βœ… Allows question reuse across multiple courses to eliminate redundancy.

Multilingual Support (English & Arabic)

  • βœ… Fully supports both English and Arabic for content and assessments.
  • βœ… Some questions are available in both languages, enabling seamless cross-language assessments.
  • βœ… Language-independent skills (e.g., mathematics) allow shared questions across courses.

Engaging & Interactive Experience

  • βœ… Gamification elements (points, badges, progress milestones) enhance motivation.
  • βœ… Instant feedback helps students understand mistakes immediately.

Admin & Instructor Management

  • βœ… Educators can create, manage, and modify courses, units, lessons, and tests.
  • βœ… Ability to create and select questions from the question bank for assessments.
  • βœ… Monitor student progress with real-time analytics and reports.

Scalability & Security

  • βœ… Supports multiple courses per student, allowing seamless enrollment and tracking.
  • βœ… Secure and scalable infrastructure designed to handle a large number of students and courses.

System Architecture

The system follows an MVC (Model-View-Controller) architecture using Laravel for backend logic and Vue.js with Inertia.js for a seamless single-page application (SPA) frontend experience. The database is structured with normalized tables for efficient data handling.

Database Design

The database is designed using a relational model to support multilingual courses, flexible learning structures, and adaptive question selection.

πŸ”Ή Main Database Tables

users

Stores user data, including roles (student, instructor, admin).

courses

Contains course details and metadata.

units

Defines course units, which group related lessons.

lessons

Holds lesson content and associated skills.

skills

Represents specific learning skills, linked to lessons.

questions

Stores all question types for assessments.

student_progress

Tracks user progress for each skill, lesson, and course.

assessments

Stores quiz, unit test, and course test results.

πŸ“Œ Example Table: questions

id

Type: BIGINT

Description: Primary key, unique identifier for each question

skill_id

Type: BIGINT

Description: Foreign key referencing skill table

type

Type: VARCHAR

Description: Stores question type (e.g., multiple-choice, multiple-answer, text-input)

image_url

Type: VARCHAR

Description: URL of an optional image associated with the question

data

Type: JSON

Description: Stores question-related data (text, images, multi-language support, etc.)

is_active

Type: BOOLEAN

Description: Flag to indicate whether the question is active or inactive

created_at

Type: TIMESTAMP

Description: Timestamp for when the question was created

updated_at

Type: TIMESTAMP

Description: Timestamp for when the question was last updated

Main Routes

/users/{id}/progress

Method: GET

Description: View user progress

/courses

Method: POST

Description: Create a new course

/units

Method: POST

Description: Create a new unit

/lessons

Method: POST

Description: Create a new lesson

/skills

Method: POST

Description: Create a new skill

/questions

Method: GET

Description: List all questions

/skills/{skill_id}/questions

Method: GET

Description: List questions for a specific skill

/assessments

Method: POST

Description: Create a new assessment

/progress

Method: GET

Description: List all progress records

Role & Contributions

Achievements & Impact

Future Enhancements

πŸ”Ή View Site
Next Project ▢️
πŸ› οΈ Technical Skills 🧩 Problem Solving