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.
Laravel (PHP)
MySQL (Secure & relational data storage)
Vue.js (Inertia.js), Tailwind CSS
Inertia.js
Authentication (Laravel Breeze), Data Encryption
Category | Technologies |
---|---|
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 |
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.
The database is designed using a relational model to support multilingual courses, flexible learning structures, and adaptive question selection.
πΉ Main Database Tables
Stores user data, including roles (student, instructor, admin).
Contains course details and metadata.
Defines course units, which group related lessons.
Holds lesson content and associated skills.
Represents specific learning skills, linked to lessons.
Stores all question types for assessments.
Tracks user progress for each skill, lesson, and course.
Stores quiz, unit test, and course test results.
Table Name | Description |
---|---|
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
Type: BIGINT
Description: Primary key, unique identifier for each question
Type: BIGINT
Description: Foreign key referencing skill table
Type: VARCHAR
Description: Stores question type (e.g., multiple-choice, multiple-answer, text-input)
Type: VARCHAR
Description: URL of an optional image associated with the question
Type: JSON
Description: Stores question-related data (text, images, multi-language support, etc.)
Type: BOOLEAN
Description: Flag to indicate whether the question is active or inactive
Type: TIMESTAMP
Description: Timestamp for when the question was created
Type: TIMESTAMP
Description: Timestamp for when the question was last updated
Column Name | Type | Description |
---|---|---|
id | BIGINT | Primary key, unique identifier for each question |
skill_id | BIGINT | Foreign key referencing skill table |
type | VARCHAR | Stores question type (e.g., multiple-choice, multiple-answer, text-input) |
image_url | VARCHAR | URL of an optional image associated with the question |
data | JSON | Stores question-related data (text, images, multi-language support, etc.) |
is_active | BOOLEAN | Flag to indicate whether the question is active or inactive |
created_at | TIMESTAMP | Timestamp for when the question was created |
updated_at | TIMESTAMP | Timestamp for when the question was last updated |
Method: GET
Description: View user progress
Method: POST
Description: Create a new course
Method: POST
Description: Create a new unit
Method: POST
Description: Create a new lesson
Method: POST
Description: Create a new skill
Method: GET
Description: List all questions
Method: GET
Description: List questions for a specific skill
Method: POST
Description: Create a new assessment
Method: GET
Description: List all progress records
Endpoint | Method | Description |
---|---|---|
/users/{id}/progress | GET | View user progress |
/courses | POST | Create a new course |
/units | POST | Create a new unit |
/lessons | POST | Create a new lesson |
/skills | POST | Create a new skill |
/questions | GET | List all questions |
/skills/{skill_id}/questions | GET | List questions for a specific skill |
/assessments | POST | Create a new assessment |
/progress | GET | List all progress records |