@@ -553,25 +553,68 @@ author: "Curators Team"
553553
554554 if (res .ok ) {
555555 const data = await res .json ();
556- // data.id = username (toby)
557- // data.name = full name (Thomas Edison)
558- const uid = data .id
559- const filtered = lessonData .filter (item => item .uid === uid);
560- console .log (` Data for ${ uid} :` , filtered);
556+ console .log (data);
557+ const filtered = lessonData .filter (item => item .username === data .uid );
558+ console .log (` Data for ${ data .uid } :` , filtered);
559+
560+ // Define modules and total submodules
561+ const lesson_modules = {
562+ ' AI Usage' : 4 ,
563+ ' Backend Development' : 6 ,
564+ ' Data Visualization' : 3 ,
565+ ' Frontend Development' : 6 ,
566+ ' Resume Building' : 6
567+ };
568+
569+ // Initialize result object
570+ const moduleStats = {};
571+ Object .keys (lesson_modules).forEach (m => {
572+ moduleStats[m] = { time: 0 , percentComplete: 0 };
573+ });
574+
575+ // Sum time and count finished submodules per module
576+ const finishedCounts = {};
577+ Object .keys (lesson_modules).forEach (m => finishedCounts[m] = 0 );
578+
579+ filtered .forEach (item => {
580+ const mod = item .module ;
581+ if (lesson_modules[mod] !== undefined ) {
582+ // Sum time
583+ moduleStats[mod].time += item .time || 0 ;
584+
585+ // Count finished submodules
586+ if (item .finished ) finishedCounts[mod] += 1 ;
587+ }
588+ });
589+
590+ // Compute percent completion per module
591+ Object .keys (lesson_modules).forEach (m => {
592+ const totalSubmodules = lesson_modules[m];
593+ const finished = finishedCounts[m];
594+ moduleStats[m].percentComplete = (finished / totalSubmodules) * 100 ;
595+ });
596+
597+ const frontendCompletion = moduleStats[" Frontend Development" ].percentComplete
598+ const backendCompletion = moduleStats[" Backend Development" ].percentComplete
599+ const datavizCompletion = moduleStats[" Data Visualization" ].percentComplete
600+ const resumeCompletion = moduleStats[" Resume Building" ].percentComplete
601+ const aiCompletion = moduleStats[" AI Usage" ].percentComplete
602+
603+ console .log (moduleStats);
561604
562605 // Create random lesson and module data
563606 const randomLessons = (numLessons ) =>
564607 Array .from ({ length: numLessons }, () => Math .floor (Math .random () * 21 ) * 5 ); // random 0–100 in steps of 5
565608
566- const randomProgress = () =>
567- Math .floor (Math .random () * 5 ) * 25 ; // random 0, 25, 50, 75, 100
609+ // const randomProgress = () =>
610+ // Math.floor(Math.random() * 5) * 25; // random 0, 25, 50, 75, 100
568611
569612 const modules = {
570- " Module 1" : { progress: randomProgress () , lessons: randomLessons (6 ) }, // 6 lessons
571- " Module 2" : { progress: randomProgress () , lessons: randomLessons (6 ) }, // 6 lessons
572- " Module 3" : { progress: randomProgress () , lessons: randomLessons (3 ) }, // 3 lessons
573- " Module 4" : { progress: randomProgress () , lessons: randomLessons (6 ) }, // 6 lessons
574- " Module 5" : { progress: randomProgress () , lessons: randomLessons (4 ) }, // 4 lessons
613+ " Module 1" : { progress: frontendCompletion , lessons: randomLessons (6 ) }, // 6 lessons
614+ " Module 2" : { progress: backendCompletion , lessons: randomLessons (6 ) }, // 6 lessons
615+ " Module 3" : { progress: datavizCompletion , lessons: randomLessons (3 ) }, // 3 lessons
616+ " Module 4" : { progress: resumeCompletion , lessons: randomLessons (6 ) }, // 6 lessons
617+ " Module 5" : { progress: aiCompletion , lessons: randomLessons (4 ) }, // 4 lessons
575618 };
576619
577620 students .push ({
0 commit comments