SQL-Based Course Progress & Learning Analytics System
SQL โข Database Design โข Data Analysis โข Learning Analytics
Personalized Learning Tracker is a SQL-based database project designed to manage, track, and analyze learner progress across courses, modules, assignments, and learning activities.
The project models a structured educational platform database and provides SQL queries for analyzing course completion, assignment progress, learner performance, scores, and learning activity trends.
It demonstrates practical application of relational database design, SQL querying, data aggregation, joins, filtering, and learning analytics.
The system is designed to:
- Manage learner and instructor information.
- Organize courses and their modules.
- Track assignment-level learner progress.
- Manage course access permissions.
- Analyze assignment completion.
- Calculate learner progress percentages.
- Evaluate average learner performance.
- Identify learners requiring additional support.
- Analyze learning activity over time.
The project is structured around the following entities:
| Table | Purpose |
|---|---|
users |
Stores learner and instructor information |
courses |
Stores course details and ownership information |
modules |
Organizes course content into logical modules |
assignments |
Represents assignments associated with modules |
progress |
Tracks learner assignment completion and scores |
permissions |
Manages user access to courses |
The conceptual relationship between the major entities is:
โโโโโโโโโโโโโโโโ
โ users โ
โโโโโโโโฌโโโโโโโโ
โ
โโโโโโโโโโโโโโโดโโโโโโโโโโโโโโ
โ โ
โผ โผ
โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโ
โ permissions โ โ progress โ
โโโโโโโโฌโโโโโโโโ โโโโโโโโโฌโโโโโโโโโ
โ โ
โผ โผ
โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ
โ courses โโโโโโโโโโโโโโ assignments โ
โโโโโโโโฌโโโโโโโโ โโโโโโโโฌโโโโโโโโ
โ โ
โผ โ
โโโโโโโโโโโโโโโโ โ
โ modules โโโโโโโโโโโโโโโโโโโโโ
โโโโโโโโโโโโโโโโ
The structure supports analysis across multiple levels:
Learner
โ
Course
โ
Module
โ
Assignment
โ
Progress / Score
Personalized-Learning-Tracker/
โ
โโโ COM USERS.docx
โโโ COM courses.docx
โโโ COM modules.docx
โโโ perssion.docx
โโโ progress_inserts.sql
โโโ sql question.docx
โโโ kk.txt
โโโ README.md
| File | Description |
|---|---|
COM USERS.docx |
User table structure and sample learner/instructor data |
COM courses.docx |
Course table structure and course data |
COM modules.docx |
Module table structure linked to courses |
perssion.docx |
Permission/access data for course users |
progress_inserts.sql |
SQL INSERT statements for learner progress data |
sql question.docx |
SQL queries for progress and performance analysis |
kk.txt |
Supporting project/reference content |
The SQL query suite focuses on practical learning analytics, including:
Calculates:
- Total assignments
- Completed assignments
- Course completion percentage
- Course-level learner progress
Evaluates:
- Completed assignments
- Average scores
- Learner performance levels
- Learners requiring additional support
Analyzes assignment completion by time period to identify:
- Weekly learning activity
- Completion patterns
- Changes in learner engagement
SELECT
u.user_id,
u.name,
c.title AS course_title,
COUNT(a.assignment_id) AS total_assignments,
COUNT(p.assignment_id) AS completed_assignments,
ROUND(
COUNT(p.assignment_id) / COUNT(a.assignment_id) * 100,
2
) AS completion_percentage
FROM users u
JOIN progress p
ON u.user_id = p.user_id
JOIN assignments a
ON a.assignment_id = p.assignment_id
JOIN modules m
ON m.module_id = a.module_id
JOIN courses c
ON c.course_id = m.course_id
WHERE u.user_id = 1
GROUP BY u.user_id, c.course_id;This query evaluates a learner's progress within a specific course by comparing total assignments against completed assignments.
SELECT
u.user_id,
u.name,
COUNT(p.assignment_id) AS completed_assignments,
AVG(p.score) AS average_score
FROM users u
JOIN progress p
ON u.user_id = p.user_id
GROUP BY u.user_id
HAVING COUNT(p.assignment_id) < 3
OR AVG(p.score) < 50;This analysis identifies learners with relatively low assignment completion or average performance.
SELECT
WEEK(p.completed_at) AS week_number,
COUNT(*) AS completed_assignments
FROM progress p
WHERE p.user_id = 1342
AND p.completed_at IS NOT NULL
GROUP BY WEEK(p.completed_at)
ORDER BY week_number;This query analyzes assignment completion patterns across weeks for a selected learner.
- SQL
- Relational Database Design
- Database Schema Modeling
- Complex SQL Joins
- Aggregation Functions
GROUP BYandHAVING- Filtering and Conditional Analysis
- Progress & Performance Analytics
- Learning Analytics
- Data Management
The project demonstrates how structured learning data can support:
- Learner progress monitoring
- Course completion analysis
- Assignment performance tracking
- At-risk learner identification
- Learning engagement analysis
- Academic performance reporting
- Personalized learning insights
- Educational analytics
The database can be used to answer questions such as:
- How much progress has a learner made in a course?
- What percentage of assignments has a learner completed?
- Which learners have low average scores?
- Which learners may require additional academic support?
- How frequently is a learner completing assignments?
- How does learner activity change over time?
- Which courses and modules are associated with learner activity?
Potential extensions include:
- Interactive SQL-powered analytics dashboard
- Learner performance scoring
- Automated at-risk learner identification
- Course completion forecasting
- Personalized course recommendations
- Advanced learner segmentation
- Power BI / Tableau integration
- Automated performance reports
- Stored procedures and views
- Advanced learning analytics
This project demonstrates practical experience in:
- Designing relational database structures
- Working with normalized educational data
- Writing multi-table SQL queries
- Performing aggregation and analytical calculations
- Analyzing learner performance
- Extracting actionable insights from structured data
- Translating business questions into SQL queries
- Building a foundation for educational analytics systems
Data Analyst | AI & Data Quality | Business Intelligence | SQL & Data Analytics
Focused on building practical solutions using:
SQL โข Python โข Data Analytics โข Business Intelligence โข Data Quality โข Automation
LinkedIn:
https://linkedin.com/in/moneshr
GitHub:
https://github.com/Mo-nesh
If you find this project useful, consider giving the repository a โญ on GitHub.