


Empower provincial managers with real-time insights into course completions, SACE points, learner progress, and downloadable resources across every district and school.
Request Early AccessYour provincial command center shows aggregated data across all schools, filtered by any dimension you choose.
Section 3 of 7
Drill into individual educator profiles to see their journey, qualifications, and engagement level.
| Learner | Role | Phase | Province | Last Login |
|---|---|---|---|---|
Thandiwe Molefe[email protected] | HOD | Senior Phase | Gauteng | 2 days ago |
TM Thabo Mkhize[email protected] | Teacher | FET | KwaZulu-Natal | 5 days ago |
Johan van der Merwe[email protected] | Principal | Foundation | Western Cape | 12 days ago |
Naledi Dlamini[email protected] | Teacher | Intermediate | Limpopo | 45 days ago |
SM Sipho Mthethwa[email protected] | Admin | Senior Phase | Mpumalanga | 120 days ago |
Section 4 of 7
Track every enrolled learner's journey through each course with granular progress data.
Resource Downloads & Engagement
Measure engagement by tracking resource downloads, most-accessed materials, and download trends over time.
| Resource Name | Format | Downloads |
|---|---|---|
Grade 10 Mathematics Curriculum Guide 2024 | 32,847 | |
Annual Assessment Templates Collection | DOC | 28,392 |
Classroom Management Training Series | MP4 | 24,156 |
Provincial Education Policy Handbook | 19,834 | |
Science Lab Safety Guidelines & Procedures | 16,721 |
The provincial dashboard gives you surgical precision over your data. Filter by any combination to generate reports for specific use cases.
Clear implementation instructions for your Ezycourse developer to build the Provincial Performance Tracking system.
Create tables: provinces, districts, schools, users, courses, enrollments, certificates, badges, user_badges, resources, resource_downloads
Build dynamic query builder with filter objects: { field, operator, value }. Support operators: equals, contains, between, in_array, greater_than, less_than. Apply filters with AND/OR logic. Cache results for 5 minutes.
Create reusable widget component with props: metric_type, date_range, filters_applied, show_trend. Each widget fetches from /api/metrics/{type}
Implement charts using Chart.js or Recharts. Use bar charts for district comparisons, line charts for trends over time, donut charts for distributions.
Store active filters in React state or Vuex/Pinia. Sync URL query params for shareable filtered views. Persist user's last-used filters in localStorage.
CSV export using Papa Parse, PDF using jsPDF with autoTable. Include filter summary in filename: Province_Report_[DateRange]_[Filters].csv
Paginate learner lists (50 per page), lazy load course details on expand, index columns: province_id, district_id, status, enrollment_date. Use aggregate rollup tables updated hourly.
Need help? Email [email protected] with your dashboard requirements.
Home
My Dashboard
About DBE Protect
How DBE Protect works



[email protected]
Pinnock Consulting Website
Department of Basic Education Website