@@ -9,21 +9,39 @@ const generateRandomLevels = () => {
99 return levels ;
1010} ;
1111
12+ const generateRandomStrings = ( ) => {
13+ const strings = [ ] ;
14+ for ( let i = 0 ; i <= 6 ; i += 1 ) {
15+ const string = faker . lorem . sentence ( { min : 3 , max : 6 } ) ;
16+ strings . push ( string ) ;
17+ }
18+ return strings ;
19+ } ;
20+
1221const generateRandomOutcomes = ( ) => {
1322 const outcomes = [ ] ;
14- const outcome = faker . lorem . sentence ( { min : 3 , max : 6 } ) ;
1523 for ( let i = 0 ; i <= 6 ; i += 1 ) {
24+ const outcome = {
25+ outcome : faker . lorem . sentence ( { min : 3 , max : 6 } ) ,
26+ RBTLevel : generateRandomLevels ( ) ,
27+ } ;
1628 outcomes . push ( outcome ) ;
1729 }
1830 return outcomes ;
1931} ;
2032
21- const createRandomCourses = ( type ) => ( {
33+ const createRandomCourses = (
34+ type ,
35+ selectedModules ,
36+ selectedPracs ,
37+ selectedTuts ,
38+ createdDept ,
39+ ) => ( {
2240 name : faker . lorem . sentence ( { min : 1 , max : 3 } ) ,
2341 code : faker . vehicle . vin ( ) ,
2442 theoryHours :
2543 type === "onlypractical" ? null : faker . number . int ( { min : 2 , max : 6 } ) ,
26- department : faker . database . mongodbObjectId ( ) , // TODO
44+ department : createdDept , // TODO
2745 tutorialHours :
2846 type === "tutorial" ? faker . number . int ( { min : 2 , max : 6 } ) : null ,
2947 practicalHours : faker . helpers . weightedArrayElement ( [
@@ -36,17 +54,14 @@ const createRandomCourses = (type) => ({
3654 practicalMarks : type === "nopractical" ? null : 30 ,
3755 semester : faker . database . mongodbObjectId ( ) ,
3856 subType : faker . helpers . arrayElement ( [ "open" , "professional" , "core" ] ) ,
39- prerequisites : generateRandomOutcomes ( ) ,
57+ prerequisites : generateRandomStrings ( ) ,
4058 objective : faker . lorem . sentence ( { min : 6 , max : 10 } ) ,
41- outcomes : {
42- outcome : faker . lorem . sentence ( { min : 3 , max : 6 } ) ,
43- RBTLevel : generateRandomLevels ( ) ,
44- } ,
45- modules : [ faker . database . mongodbObjectId ( ) ] ,
46- practicals : [ faker . database . mongodbObjectId ( ) ] ,
47- tutorials : [ faker . database . mongodbObjectId ( ) ] ,
48- assignments : [ faker . database . mongodbObjectId ( ) ] ,
49- reccTextbooks : generateRandomOutcomes ( ) ,
59+ outcomes : generateRandomOutcomes ( ) ,
60+ modules : selectedModules ,
61+ practicals : selectedPracs ,
62+ tutorials : selectedTuts ,
63+ assignments : [ ] ,
64+ reccTextbooks : generateRandomStrings ( ) ,
5065 refBooks : faker . lorem . word ( { length : { min : 5 , max : 7 } } ) ,
5166} ) ;
5267
@@ -58,14 +73,44 @@ const generateCourses = (
5873 createdDepts ,
5974) => {
6075 const courses = [ ] ;
61- for ( let i = 0 , j = 0 ; j <= createdDepts . length ; i += 1 ) {
76+ let selectedModules = [ ] ;
77+ let selectedPracs = [ ] ;
78+ let selectedTuts = [ ] ;
79+ for (
80+ let i = 0 , j = 0 , k = 0 , l = 0 , m = 0 ;
81+ j <= createdDepts . length ;
82+ i += 1 , k += 1
83+ ) {
6284 const type = faker . helpers . weightedArrayElement ( [
6385 { value : "normal" , weight : 12 } ,
6486 { value : "tutorial" , weight : 2 } ,
6587 { value : "nopractical" , weight : 2 } ,
6688 { value : "onlypractical" , weight : 1 } ,
6789 ] ) ;
68- courses . push ( createRandomCourses ( type ) ) ;
90+ selectedModules = [ ] ;
91+ selectedPracs = [ ] ;
92+ selectedTuts = [ ] ;
93+ if ( type !== "onlypractical" ) {
94+ selectedModules = createdModules . slice ( k , k + 5 ) ;
95+ k += 6 ;
96+ }
97+ if ( type !== "nopractical" ) {
98+ selectedPracs = createdPracs . slice ( l , l + 12 ) ;
99+ l += 13 ;
100+ }
101+ if ( type === "tutorial" ) {
102+ selectedTuts = createdTuts . slice ( m , m + 10 ) ;
103+ m += 11 ;
104+ }
105+ courses . push (
106+ createRandomCourses (
107+ type ,
108+ selectedModules ,
109+ selectedPracs ,
110+ selectedTuts ,
111+ createdDepts [ j ] ,
112+ ) ,
113+ ) ;
69114 if ( i >= createdSems . length ) {
70115 i = 0 ;
71116 j += 1 ;
0 commit comments