[02/Feb/2026:00:21:15] (root_api-) token =  IP = 41.193.163.204
[02/Feb/2026:00:21:15] (root_api-) 
[02/Feb/2026:00:21:15] (root_api-) OP=  of page root_api.php
[02/Feb/2026:00:21:15] (root_api-) Final JSON =  { "status":"error",
					"message":"Invalid Session",
					"Errorcode":"err100",
					"data":{}}
[02/Feb/2026:00:21:15] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 41.193.163.204
[02/Feb/2026:00:21:15] (root_api-) op => getFrontCategoryMenu ,categoryId =>  ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => category_data ,
[02/Feb/2026:00:21:15] (root_api-) OP= getFrontCategoryMenu of page root_api.php
[02/Feb/2026:00:21:15] (root_api-) serviceName category_data
[02/Feb/2026:00:21:15] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:00:21:15] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='1' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 00:21:15:0215~2026-02-02 00:21:15~success
[02/Feb/2026:00:21:15] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:00:21:15] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='410' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 00:21:15:0215~2026-02-02 00:21:15~success
[02/Feb/2026:00:21:15] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:00:21:15] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='411' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 00:21:15:0215~2026-02-02 00:21:15~success
[02/Feb/2026:00:21:15] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:00:21:15] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='433' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 00:21:15:0215~2026-02-02 00:21:15~success
[02/Feb/2026:00:21:15] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:00:21:15] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='458' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 00:21:15:0215~2026-02-02 00:21:15~success
[02/Feb/2026:00:21:15] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:00:21:15] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='485' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 00:21:15:0215~2026-02-02 00:21:15~success
[02/Feb/2026:00:21:15] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:00:21:15] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='499' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 00:21:15:0215~2026-02-02 00:21:15~success
[02/Feb/2026:00:21:15] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:00:21:15] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='514' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 00:21:15:0215~2026-02-02 00:21:15~success
[02/Feb/2026:00:21:15] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:00:21:15] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='64' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 00:21:15:0215~2026-02-02 00:21:15~success
[02/Feb/2026:00:21:15] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:00:21:15] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='2' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 00:21:15:0215~2026-02-02 00:21:15~success
[02/Feb/2026:00:21:15] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:00:21:15] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='605' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 00:21:15:0215~2026-02-02 00:21:15~success
[02/Feb/2026:00:21:15] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:00:21:15] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='598' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 00:21:15:0215~2026-02-02 00:21:15~success
[02/Feb/2026:00:21:15] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:00:21:15] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='23' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 00:21:15:0215~2026-02-02 00:21:15~success
[02/Feb/2026:00:21:15] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:00:21:15] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='396' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 00:21:15:0215~2026-02-02 00:21:15~success
[02/Feb/2026:00:21:15] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:00:21:15] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='81' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 00:21:15:0215~2026-02-02 00:21:15~success
[02/Feb/2026:00:21:15] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:00:21:15] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='90' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 00:21:15:0215~2026-02-02 00:21:15~success
[02/Feb/2026:00:21:15] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:00:21:15] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='107' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 00:21:15:0215~2026-02-02 00:21:15~success
[02/Feb/2026:00:21:15] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:00:21:15] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='117' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 00:21:15:0215~2026-02-02 00:21:15~success
[02/Feb/2026:00:21:15] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:00:21:15] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='137' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 00:21:15:0215~2026-02-02 00:21:15~success
[02/Feb/2026:00:21:15] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:00:21:15] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='138' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 00:21:15:0215~2026-02-02 00:21:15~success
[02/Feb/2026:00:21:15] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:00:21:15] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='144' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 00:21:15:0215~2026-02-02 00:21:15~success
[02/Feb/2026:00:21:15] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:00:21:15] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='164' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 00:21:15:0215~2026-02-02 00:21:15~success
[02/Feb/2026:00:21:15] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:00:21:15] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='179' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 00:21:15:0215~2026-02-02 00:21:15~success
[02/Feb/2026:00:21:15] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:00:21:15] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='82' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 00:21:15:0215~2026-02-02 00:21:15~success
[02/Feb/2026:00:21:15] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:00:21:15] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='200' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 00:21:15:0215~2026-02-02 00:21:15~success
[02/Feb/2026:00:21:15] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:00:21:15] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='218' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 00:21:15:0215~2026-02-02 00:21:15~success
[02/Feb/2026:00:21:15] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:00:21:15] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='272' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 00:21:15:0215~2026-02-02 00:21:15~success
[02/Feb/2026:00:21:15] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:00:21:15] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='292' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 00:21:15:0215~2026-02-02 00:21:15~success
[02/Feb/2026:00:21:15] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:00:21:15] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='623' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 00:21:15:0215~2026-02-02 00:21:15~success
[02/Feb/2026:00:21:15] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:00:21:15] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='366' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 00:21:15:0215~2026-02-02 00:21:15~success
[02/Feb/2026:00:21:15] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:00:21:15] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='311' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 00:21:15:0215~2026-02-02 00:21:15~success
[02/Feb/2026:00:21:15] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:00:21:15] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='325' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 00:21:15:0215~2026-02-02 00:21:15~success
[02/Feb/2026:00:21:15] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:00:21:15] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='11' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 00:21:15:0215~2026-02-02 00:21:15~success
[02/Feb/2026:00:21:15] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:00:21:15] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='611' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 00:21:15:0215~2026-02-02 00:21:15~success
[02/Feb/2026:00:21:15] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:00:21:15] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='38' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 00:21:15:0215~2026-02-02 00:21:15~success
[02/Feb/2026:00:21:15] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:00:21:15] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='525' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 00:21:15:0215~2026-02-02 00:21:15~success
[02/Feb/2026:00:21:15] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:00:21:15] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='528' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 00:21:15:0215~2026-02-02 00:21:15~success
[02/Feb/2026:00:21:15] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:00:21:15] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='529' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 00:21:15:0215~2026-02-02 00:21:15~success
[02/Feb/2026:00:21:15] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:00:21:15] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='551' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 00:21:15:0215~2026-02-02 00:21:15~success
[02/Feb/2026:00:21:15] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:00:21:15] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='552' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 00:21:15:0215~2026-02-02 00:21:15~success
[02/Feb/2026:00:21:15] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:00:21:15] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='581' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 00:21:15:0215~2026-02-02 00:21:15~success
[02/Feb/2026:00:21:15] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:00:21:15] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='341' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 00:21:15:0215~2026-02-02 00:21:15~success
[02/Feb/2026:00:21:15] (root_api-) Final JSON =  {"status":"ok","message":"","Errorcode":"","data":[{"cat_id":"410","cat_name":"Business & Finance","short_name":"Business & Finance","childNodes":"7","parentPath":"00001","sub_categories":[{"cat_id":"411","cat_name":"Accounting","short_name":"Accounting","childNodes":"21","parentPath":"00410-00001","sub_categories":[{"cat_id":"431","cat_name":"                    Accounting","short_name":"Taxation Partnership","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"412","cat_name":"AAT","short_name":"AAT","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"413","cat_name":"Accounting","short_name":"Accounting","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"414","cat_name":"Accounting Information Systems","short_name":"Accounting Information Systems","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"415","cat_name":"Accounting Theory","short_name":"Accounting Theory","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"416","cat_name":"Appraisal","short_name":"Appraisal","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"417","cat_name":"Audit","short_name":"Audit","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"418","cat_name":"Audit & Assurance","short_name":"Audit & Assurance","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"419","cat_name":"Audit Sampling","short_name":"Audit Sampling","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"420","cat_name":"Bookkeeping","short_name":"Bookkeeping","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"421","cat_name":"Cost Accounting","short_name":"Cost Accounting","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"422","cat_name":"Enrolled Agent","short_name":"Enrolled Agent","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"423","cat_name":"Federal Income Tax","short_name":"Federal Income Tax","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"627","cat_name":"Finanace","short_name":"Finanace","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"424","cat_name":"Financial Accounting","short_name":"Financial Accounting","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"425","cat_name":"Fraud","short_name":"Fraud","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"426","cat_name":"Income Tax","short_name":"Income Tax","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"427","cat_name":"Intermediate Accounting","short_name":"Intermediate Accounting","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"428","cat_name":"Managerial Accounting","short_name":"Managerial Accounting","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"429","cat_name":"Public Finance","short_name":"Public Finance","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"430","cat_name":"Taxation","short_name":"Taxation","childNodes":"0","parentPath":"00411-00410-00001"}]},{"cat_id":"433","cat_name":"Business","short_name":"Business","childNodes":"23","parentPath":"00410-00001","sub_categories":[{"cat_id":"434","cat_name":"Accounting","short_name":"Accounting","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"435","cat_name":"Advertising","short_name":"Advertising","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"436","cat_name":"Business","short_name":"Business","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"437","cat_name":"Business Analysis","short_name":"Business Analysis","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"438","cat_name":"Business Analytics","short_name":"Business Analytics","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"439","cat_name":"Business Communication","short_name":"Business Communication","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"440","cat_name":"Business Ethics","short_name":"Business Ethics","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"441","cat_name":"Employee Training Demo","short_name":"Employee Training Demo","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"442","cat_name":"Entrepreneurship","short_name":"Entrepreneurship","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"443","cat_name":"Fashion","short_name":"Fashion","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"444","cat_name":"Finance","short_name":"Finance","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"445","cat_name":"Global Business","short_name":"Global Business","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"446","cat_name":"Human Resources","short_name":"Human Resources","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"447","cat_name":"Insurance","short_name":"Insurance","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"448","cat_name":"International Business","short_name":"International Business","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"449","cat_name":"Life & Health Insurance","short_name":"Life & Health Insurance","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"450","cat_name":"Logistics","short_name":"Logistics","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"451","cat_name":"Procurement","short_name":"Procurement","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"452","cat_name":"Project Management","short_name":"Project Management","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"453","cat_name":"Risk Management","short_name":"Risk Management","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"454","cat_name":"Salesforce","short_name":"Salesforce","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"455","cat_name":"Supply Chain","short_name":"Supply Chain","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"456","cat_name":"Tourism","short_name":"Tourism","childNodes":"0","parentPath":"00433-00410-00001"}]},{"cat_id":"458","cat_name":"Economics","short_name":"Economics","childNodes":"24","parentPath":"00410-00001","sub_categories":[{"cat_id":"459","cat_name":"Behavioral Economics","short_name":"Behavioral Economics","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"471","cat_name":"Capital Markets","short_name":"Capital Markets","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"472","cat_name":"Corporate Finance","short_name":"Corporate Finance","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"460","cat_name":"Econometrics","short_name":"Econometrics","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"461","cat_name":"Economic Development","short_name":"Economic Development","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"462","cat_name":"Economics","short_name":"Economics","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"463","cat_name":"Environmental Economics","short_name":"Environmental Economics","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"473","cat_name":"Finance","short_name":"Finance","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"474","cat_name":"Financial Exams","short_name":"Financial Exams","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"475","cat_name":"Financial Literacy","short_name":"Financial Literacy","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"476","cat_name":"Financial Markets","short_name":"Financial Markets","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"477","cat_name":"Fixed Income","short_name":"Fixed Income","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"464","cat_name":"Game Theory","short_name":"Game Theory","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"465","cat_name":"Globalization","short_name":"Globalization","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"478","cat_name":"International Finance","short_name":"International Finance","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"479","cat_name":"Investment Analysis","short_name":"Investment Analysis","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"480","cat_name":"Investment Banking","short_name":"Investment Banking","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"466","cat_name":"Macroeconomics","short_name":"Macroeconomics","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"467","cat_name":"Managerial Economics","short_name":"Managerial Economics","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"468","cat_name":"Microeconomics","short_name":"Microeconomics","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"481","cat_name":"Personal Finance","short_name":"Personal Finance","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"469","cat_name":"Principles of Economics","short_name":"Principles of Economics","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"482","cat_name":"Private Equity","short_name":"Private Equity","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"483","cat_name":"Real Estate Finance","short_name":"Real Estate Finance","childNodes":"0","parentPath":"00458-00410-00001"}]},{"cat_id":"470","cat_name":"Finance","short_name":"Finance","childNodes":"0","parentPath":"00410-00001"},{"cat_id":"485","cat_name":"Management","short_name":"Management","childNodes":"12","parentPath":"00410-00001","sub_categories":[{"cat_id":"486","cat_name":"Business Administration","short_name":"Business Administration","childNodes":"0","parentPath":"00485-00410-00001"},{"cat_id":"487","cat_name":"Business Management","short_name":"Business Management","childNodes":"0","parentPath":"00485-00410-00001"},{"cat_id":"488","cat_name":"Effective Supervisory Practices","short_name":"Effective Supervisory Practices","childNodes":"0","parentPath":"00485-00410-00001"},{"cat_id":"489","cat_name":"Facilities Management","short_name":"Facilities Management","childNodes":"0","parentPath":"00485-00410-00001"},{"cat_id":"490","cat_name":"Healthcare Management","short_name":"Healthcare Management","childNodes":"0","parentPath":"00485-00410-00001"},{"cat_id":"491","cat_name":"Higher Business Management","short_name":"Higher Business Management","childNodes":"0","parentPath":"00485-00410-00001"},{"cat_id":"492","cat_name":"Human Resource Management","short_name":"Human Resource Management","childNodes":"0","parentPath":"00485-00410-00001"},{"cat_id":"493","cat_name":"Management 101","short_name":"Management 101","childNodes":"0","parentPath":"00485-00410-00001"},{"cat_id":"494","cat_name":"Operations Management","short_name":"Operations Management","childNodes":"0","parentPath":"00485-00410-00001"},{"cat_id":"495","cat_name":"Organizational Behavior","short_name":"Organizational Behavior","childNodes":"0","parentPath":"00485-00410-00001"},{"cat_id":"496","cat_name":"Principles of Management","short_name":"Principles of Management","childNodes":"0","parentPath":"00485-00410-00001"},{"cat_id":"497","cat_name":"Strategic Management","short_name":"Strategic Management","childNodes":"0","parentPath":"00485-00410-00001"}]},{"cat_id":"499","cat_name":"Marketing","short_name":"Marketing","childNodes":"13","parentPath":"00410-00001","sub_categories":[{"cat_id":"500","cat_name":"B2B Marketing","short_name":"B2B Marketing","childNodes":"0","parentPath":"00499-00410-00001"},{"cat_id":"501","cat_name":"Consumer Behavior","short_name":"Consumer Behavior","childNodes":"0","parentPath":"00499-00410-00001"},{"cat_id":"502","cat_name":"Digital Marketing","short_name":"Digital Marketing","childNodes":"0","parentPath":"00499-00410-00001"},{"cat_id":"503","cat_name":"Global Marketing","short_name":"Global Marketing","childNodes":"0","parentPath":"00499-00410-00001"},{"cat_id":"504","cat_name":"International Marketing","short_name":"International Marketing","childNodes":"0","parentPath":"00499-00410-00001"},{"cat_id":"505","cat_name":"Marketing 101","short_name":"Marketing 101","childNodes":"0","parentPath":"00499-00410-00001"},{"cat_id":"506","cat_name":"Marketing Research","short_name":"Marketing Research","childNodes":"0","parentPath":"00499-00410-00001"},{"cat_id":"507","cat_name":"Neuromarketing","short_name":"Neuromarketing","childNodes":"0","parentPath":"00499-00410-00001"},{"cat_id":"508","cat_name":"Principles of Marketing","short_name":"Principles of Marketing","childNodes":"0","parentPath":"00499-00410-00001"},{"cat_id":"509","cat_name":"Sales & Marketing","short_name":"Sales & Marketing","childNodes":"0","parentPath":"00499-00410-00001"},{"cat_id":"510","cat_name":"Service Marketing","short_name":"Service Marketing","childNodes":"0","parentPath":"00499-00410-00001"},{"cat_id":"511","cat_name":"Social Marketing","short_name":"Social Marketing","childNodes":"0","parentPath":"00499-00410-00001"},{"cat_id":"512","cat_name":"Strategic Marketing","short_name":"Strategic Marketing","childNodes":"0","parentPath":"00499-00410-00001"}]},{"cat_id":"514","cat_name":"Real Estate","short_name":"Real Estate","childNodes":"10","parentPath":"00410-00001","sub_categories":[{"cat_id":"515","cat_name":"Real Estate - General","short_name":"Real Estate - General","childNodes":"0","parentPath":"00514-00410-00001"},{"cat_id":"516","cat_name":"Real Estate Agent","short_name":"Real Estate Agent","childNodes":"0","parentPath":"00514-00410-00001"},{"cat_id":"517","cat_name":"Real Estate Appraisal","short_name":"Real Estate Appraisal","childNodes":"0","parentPath":"00514-00410-00001"},{"cat_id":"518","cat_name":"Real Estate Exam","short_name":"Real Estate Exam","childNodes":"0","parentPath":"00514-00410-00001"},{"cat_id":"519","cat_name":"Real Estate Finance","short_name":"Real Estate Finance","childNodes":"0","parentPath":"00514-00410-00001"},{"cat_id":"520","cat_name":"Real Estate Law","short_name":"Real Estate Law","childNodes":"0","parentPath":"00514-00410-00001"},{"cat_id":"521","cat_name":"Real Estate Math","short_name":"Real Estate Math","childNodes":"0","parentPath":"00514-00410-00001"},{"cat_id":"522","cat_name":"Real Estate Post-Licensing","short_name":"Real Estate Post-Licensing","childNodes":"0","parentPath":"00514-00410-00001"},{"cat_id":"523","cat_name":"Real Estate Practice","short_name":"Real Estate Practice","childNodes":"0","parentPath":"00514-00410-00001"},{"cat_id":"524","cat_name":"Real Estate Principles","short_name":"Real Estate Principles","childNodes":"0","parentPath":"00514-00410-00001"}]}]},{"cat_id":"64","cat_name":"English","short_name":"English","childNodes":"16","parentPath":"00001","sub_categories":[{"cat_id":"65","cat_name":"American Literature","short_name":"American Literature","childNodes":"0","parentPath":"00064-00001"},{"cat_id":"66","cat_name":"British Literature","short_name":"British Literature","childNodes":"0","parentPath":"00064-00001"},{"cat_id":"67","cat_name":"Classic Novels","short_name":"Classic Novels","childNodes":"0","parentPath":"00064-00001"},{"cat_id":"68","cat_name":"Creative Writing","short_name":"Creative Writing","childNodes":"0","parentPath":"00064-00001"},{"cat_id":"69","cat_name":"English","short_name":"English","childNodes":"0","parentPath":"00064-00001"},{"cat_id":"70","cat_name":"English Grammar","short_name":"English Grammar","childNodes":"0","parentPath":"00064-00001"},{"cat_id":"71","cat_name":"Fiction","short_name":"Fiction","childNodes":"0","parentPath":"00064-00001"},{"cat_id":"72","cat_name":"Higher English","short_name":"Higher English","childNodes":"0","parentPath":"00064-00001"},{"cat_id":"73","cat_name":"Literature","short_name":"Literature","childNodes":"0","parentPath":"00064-00001"},{"cat_id":"74","cat_name":"Medieval literature","short_name":"Medieval literature","childNodes":"0","parentPath":"00064-00001"},{"cat_id":"75","cat_name":"Phonics","short_name":"Phonics","childNodes":"0","parentPath":"00064-00001"},{"cat_id":"76","cat_name":"Poetry","short_name":"Poetry","childNodes":"0","parentPath":"00064-00001"},{"cat_id":"77","cat_name":"Proverbs and Idioms","short_name":"Proverbs and Idioms","childNodes":"0","parentPath":"00064-00001"},{"cat_id":"78","cat_name":"Shakespeare","short_name":"Shakespeare","childNodes":"0","parentPath":"00064-00001"},{"cat_id":"79","cat_name":"Spelling","short_name":"Spelling","childNodes":"0","parentPath":"00064-00001"},{"cat_id":"80","cat_name":"Vocab Builder","short_name":"Vocab Builder","childNodes":"0","parentPath":"00064-00001"}]},{"cat_id":"2","cat_name":"Entrance Exams","short_name":"Entrance Exams","childNodes":"8","parentPath":"00001","sub_categories":[{"cat_id":"3","cat_name":"A Level Exams","short_name":"A Level Exams","childNodes":"0","parentPath":"00002-00001"},{"cat_id":"4","cat_name":"AP Exams","short_name":"AP Exams","childNodes":"0","parentPath":"00002-00001"},{"cat_id":"5","cat_name":"GCSE Exams","short_name":"GCSE Exams","childNodes":"0","parentPath":"00002-00001"},{"cat_id":"6","cat_name":"Graduate Entrance Exams","short_name":"Graduate Entrance Exams","childNodes":"0","parentPath":"00002-00001"},{"cat_id":"7","cat_name":"IGCSE Exams","short_name":"IGCSE Exams","childNodes":"0","parentPath":"00002-00001"},{"cat_id":"8","cat_name":"International Baccalaureate","short_name":"International Baccalaureate","childNodes":"0","parentPath":"00002-00001"},{"cat_id":"9","cat_name":"National 5 Exams","short_name":"National 5 Exams","childNodes":"0","parentPath":"00002-00001"},{"cat_id":"10","cat_name":"University Entrance Exams","short_name":"University Entrance Exams","childNodes":"0","parentPath":"00002-00001"}]},{"cat_id":"605","cat_name":"Fine Arts","short_name":"Fine Arts","childNodes":"5","parentPath":"00001","sub_categories":[{"cat_id":"606","cat_name":"Art","short_name":"Art","childNodes":"0","parentPath":"00605-00001"},{"cat_id":"607","cat_name":"Art History","short_name":"Art History","childNodes":"0","parentPath":"00605-00001"},{"cat_id":"608","cat_name":"Dance","short_name":"Dance","childNodes":"0","parentPath":"00605-00001"},{"cat_id":"609","cat_name":"Music","short_name":"Music","childNodes":"0","parentPath":"00605-00001"},{"cat_id":"610","cat_name":"Other Fine Arts","short_name":"Other Fine Arts","childNodes":"0","parentPath":"00605-00001"}]},{"cat_id":"598","cat_name":"Food & Beverage","short_name":"Food & Beverage","childNodes":"6","parentPath":"00001","sub_categories":[{"cat_id":"599","cat_name":"Bartending","short_name":"Bartending","childNodes":"0","parentPath":"00598-00001"},{"cat_id":"600","cat_name":"Cooking","short_name":"Cooking","childNodes":"0","parentPath":"00598-00001"},{"cat_id":"601","cat_name":"Culinary Arts","short_name":"Culinary Arts","childNodes":"0","parentPath":"00598-00001"},{"cat_id":"602","cat_name":"Hospitality","short_name":"Hospitality","childNodes":"0","parentPath":"00598-00001"},{"cat_id":"603","cat_name":"Nutrition","short_name":"Nutrition","childNodes":"0","parentPath":"00598-00001"},{"cat_id":"604","cat_name":"Wine & Spirits","short_name":"Wine & Spirits","childNodes":"0","parentPath":"00598-00001"}]},{"cat_id":"23","cat_name":"Foreign Languages","short_name":"Foreign Languages","childNodes":"14","parentPath":"00001","sub_categories":[{"cat_id":"24","cat_name":"Arabic","short_name":"Arabic","childNodes":"0","parentPath":"00023-00001"},{"cat_id":"25","cat_name":"Chinese","short_name":"Chinese","childNodes":"0","parentPath":"00023-00001"},{"cat_id":"26","cat_name":"French","short_name":"French","childNodes":"0","parentPath":"00023-00001"},{"cat_id":"27","cat_name":"German","short_name":"German","childNodes":"0","parentPath":"00023-00001"},{"cat_id":"28","cat_name":"Hebrew","short_name":"Hebrew","childNodes":"0","parentPath":"00023-00001"},{"cat_id":"29","cat_name":"Italian","short_name":"Italian","childNodes":"0","parentPath":"00023-00001"},{"cat_id":"30","cat_name":"Japanese","short_name":"Japanese","childNodes":"0","parentPath":"00023-00001"},{"cat_id":"31","cat_name":"Korean","short_name":"Korean","childNodes":"0","parentPath":"00023-00001"},{"cat_id":"32","cat_name":"Linguistics","short_name":"Linguistics","childNodes":"0","parentPath":"00023-00001"},{"cat_id":"33","cat_name":"Other Foreign Languages","short_name":"Other Foreign Languages","childNodes":"0","parentPath":"00023-00001"},{"cat_id":"34","cat_name":"Portuguese","short_name":"Portuguese","childNodes":"0","parentPath":"00023-00001"},{"cat_id":"35","cat_name":"Russian","short_name":"Russian","childNodes":"0","parentPath":"00023-00001"},{"cat_id":"36","cat_name":"Spanish","short_name":"Spanish","childNodes":"0","parentPath":"00023-00001"},{"cat_id":"37","cat_name":"TOEFL","short_name":"TOEFL","childNodes":"0","parentPath":"00023-00001"}]},{"cat_id":"396","cat_name":"Health & Fitness","short_name":"Health & Fitness","childNodes":"13","parentPath":"00001","sub_categories":[{"cat_id":"409","cat_name":"ACE Health Coach","short_name":"ACE Health Coach","childNodes":"0","parentPath":"00396-00001"},{"cat_id":"397","cat_name":"Alternative Medicine","short_name":"Alternative Medicine","childNodes":"0","parentPath":"00396-00001"},{"cat_id":"398","cat_name":"Health & Fitness Class","short_name":"Health & Fitness Class","childNodes":"0","parentPath":"00396-00001"},{"cat_id":"399","cat_name":"Health & Human Development","short_name":"Health & Human Development","childNodes":"0","parentPath":"00396-00001"},{"cat_id":"400","cat_name":"Health Class","short_name":"Health Class","childNodes":"0","parentPath":"00396-00001"},{"cat_id":"401","cat_name":"Health Science","short_name":"Health Science","childNodes":"0","parentPath":"00396-00001"},{"cat_id":"402","cat_name":"Human Development","short_name":"Human Development","childNodes":"0","parentPath":"00396-00001"},{"cat_id":"403","cat_name":"Human Growth & Development","short_name":"Human Growth & Development","childNodes":"0","parentPath":"00396-00001"},{"cat_id":"404","cat_name":"Mental Health","short_name":"Mental Health","childNodes":"0","parentPath":"00396-00001"},{"cat_id":"406","cat_name":"NASM CPT","short_name":"NASM CPT","childNodes":"0","parentPath":"00396-00001"},{"cat_id":"405","cat_name":"Public Health","short_name":"Public Health","childNodes":"0","parentPath":"00396-00001"},{"cat_id":"407","cat_name":"Sports & Kinesiology","short_name":"Sports & Kinesiology","childNodes":"0","parentPath":"00396-00001"},{"cat_id":"408","cat_name":"Yoga","short_name":"Yoga","childNodes":"0","parentPath":"00396-00001"}]},{"cat_id":"81","cat_name":"Humanities & Social Studies","short_name":"Humanities & Social Studies","childNodes":"16","parentPath":"00001","sub_categories":[{"cat_id":"90","cat_name":"Anthropology","short_name":"Anthropology","childNodes":"16","parentPath":"00081-00001","sub_categories":[{"cat_id":"91","cat_name":"Anthropology","short_name":"Anthropology","childNodes":"0","parentPath":"00090-00081-00001"},{"cat_id":"92","cat_name":"Archaeology","short_name":"Archaeology","childNodes":"0","parentPath":"00090-00081-00001"},{"cat_id":"93","cat_name":"Biological Anthropology","short_name":"Biological Anthropology","childNodes":"0","parentPath":"00090-00081-00001"},{"cat_id":"94","cat_name":"Cultural Anthropology","short_name":"Cultural Anthropology","childNodes":"0","parentPath":"00090-00081-00001"},{"cat_id":"95","cat_name":"Ethnobotany","short_name":"Ethnobotany","childNodes":"0","parentPath":"00090-00081-00001"},{"cat_id":"96","cat_name":"Evolutionary Genetics","short_name":"Evolutionary Genetics","childNodes":"0","parentPath":"00090-00081-00001"},{"cat_id":"97","cat_name":"Forensic Anthropology","short_name":"Forensic Anthropology","childNodes":"0","parentPath":"00090-00081-00001"},{"cat_id":"98","cat_name":"Fossils","short_name":"Fossils","childNodes":"0","parentPath":"00090-00081-00001"},{"cat_id":"99","cat_name":"Gender Studies","short_name":"Gender Studies","childNodes":"0","parentPath":"00090-00081-00001"},{"cat_id":"100","cat_name":"Human Biology","short_name":"Human Biology","childNodes":"0","parentPath":"00090-00081-00001"},{"cat_id":"101","cat_name":"Human Evolution","short_name":"Human Evolution","childNodes":"0","parentPath":"00090-00081-00001"},{"cat_id":"102","cat_name":"Human Genetics","short_name":"Human Genetics","childNodes":"0","parentPath":"00090-00081-00001"},{"cat_id":"103","cat_name":"Human Reproduction","short_name":"Human Reproduction","childNodes":"0","parentPath":"00090-00081-00001"},{"cat_id":"104","cat_name":"Linguistics","short_name":"Linguistics","childNodes":"0","parentPath":"00090-00081-00001"},{"cat_id":"105","cat_name":"Physical Anthropology","short_name":"Physical Anthropology","childNodes":"0","parentPath":"00090-00081-00001"},{"cat_id":"106","cat_name":"Primate Behavior","short_name":"Primate Behavior","childNodes":"0","parentPath":"00090-00081-00001"}]},{"cat_id":"307","cat_name":"Citizenship","short_name":"Citizenship","childNodes":"0","parentPath":"00081-00001"},{"cat_id":"308","cat_name":"Civics","short_name":"Civics","childNodes":"0","parentPath":"00081-00001"},{"cat_id":"107","cat_name":"Classics","short_name":"Classics","childNodes":"9","parentPath":"00081-00001","sub_categories":[{"cat_id":"108","cat_name":"Ancient Greek","short_name":"Ancient Greek","childNodes":"0","parentPath":"00107-00081-00001"},{"cat_id":"109","cat_name":"Classical Architecture","short_name":"Classical Architecture","childNodes":"0","parentPath":"00107-00081-00001"},{"cat_id":"110","cat_name":"Classical Art","short_name":"Classical Art","childNodes":"0","parentPath":"00107-00081-00001"},{"cat_id":"111","cat_name":"Classical Mythology","short_name":"Classical Mythology","childNodes":"0","parentPath":"00107-00081-00001"},{"cat_id":"112","cat_name":"Greek Civilization","short_name":"Greek Civilization","childNodes":"0","parentPath":"00107-00081-00001"},{"cat_id":"113","cat_name":"Greek History","short_name":"Greek History","childNodes":"0","parentPath":"00107-00081-00001"},{"cat_id":"114","cat_name":"Latin","short_name":"Latin","childNodes":"0","parentPath":"00107-00081-00001"},{"cat_id":"115","cat_name":"Roman Civilization","short_name":"Roman Civilization","childNodes":"0","parentPath":"00107-00081-00001"},{"cat_id":"116","cat_name":"Roman History","short_name":"Roman History","childNodes":"0","parentPath":"00107-00081-00001"}]},{"cat_id":"117","cat_name":"Communications","short_name":"Communications","childNodes":"19","parentPath":"00081-00001","sub_categories":[{"cat_id":"118","cat_name":"Argumentation","short_name":"Argumentation","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"119","cat_name":"Business Communication","short_name":"Business Communication","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"120","cat_name":"Communication Theory","short_name":"Communication Theory","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"121","cat_name":"Communications","short_name":"Communications","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"122","cat_name":"Debate","short_name":"Debate","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"123","cat_name":"Human Relationships","short_name":"Human Relationships","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"124","cat_name":"Interpersonal Communication","short_name":"Interpersonal Communication","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"125","cat_name":"Mass Communication","short_name":"Mass Communication","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"126","cat_name":"Mass Media","short_name":"Mass Media","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"127","cat_name":"Media Studies","short_name":"Media Studies","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"128","cat_name":"Nonverbal Communication","short_name":"Nonverbal Communication","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"129","cat_name":"Organizational Communication","short_name":"Organizational Communication","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"130","cat_name":"Persuasion","short_name":"Persuasion","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"131","cat_name":"Professional Communication","short_name":"Professional Communication","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"132","cat_name":"Public Relations","short_name":"Public Relations","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"133","cat_name":"Public Speaking","short_name":"Public Speaking","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"134","cat_name":"Rhetoric","short_name":"Rhetoric","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"135","cat_name":"Small Group Communication","short_name":"Small Group Communication","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"136","cat_name":"Speech Communication","short_name":"Speech Communication","childNodes":"0","parentPath":"00117-00081-00001"}]},{"cat_id":"137","cat_name":"Counseling","short_name":"Counseling","childNodes":"6","parentPath":"00081-00001","sub_categories":[{"cat_id":"138","cat_name":"Counseling","short_name":"Counseling","childNodes":"1","parentPath":"00137-00081-00001","sub_categories":[{"cat_id":"629","cat_name":"Counseling","short_name":"Accounting","childNodes":"0","parentPath":"00138-00137-00081-00001"}]},{"cat_id":"139","cat_name":"Counseling Theory","short_name":"Counseling Theory","childNodes":"0","parentPath":"00137-00081-00001"},{"cat_id":"140","cat_name":"Family Therapy","short_name":"Family Therapy","childNodes":"0","parentPath":"00137-00081-00001"},{"cat_id":"141","cat_name":"LMSW Exam","short_name":"LMSW Exam","childNodes":"0","parentPath":"00137-00081-00001"},{"cat_id":"142","cat_name":"MFT Exam","short_name":"MFT Exam","childNodes":"0","parentPath":"00137-00081-00001"},{"cat_id":"143","cat_name":"NCMHCE","short_name":"NCMHCE","childNodes":"0","parentPath":"00137-00081-00001"}]},{"cat_id":"144","cat_name":"Criminal Justice","short_name":"Criminal Justice","childNodes":"19","parentPath":"00081-00001","sub_categories":[{"cat_id":"145","cat_name":"CIB","short_name":"CIB","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"146","cat_name":"Civil Rights","short_name":"Civil Rights","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"147","cat_name":"Corrections","short_name":"Corrections","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"148","cat_name":"Crime & Deviance","short_name":"Crime & Deviance","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"149","cat_name":"Crime & Punishment","short_name":"Crime & Punishment","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"150","cat_name":"Criminal Investigation","short_name":"Criminal Investigation","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"151","cat_name":"Criminal Justice","short_name":"Criminal Justice","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"152","cat_name":"Criminal Psychology","short_name":"Criminal Psychology","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"153","cat_name":"Criminology","short_name":"Criminology","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"154","cat_name":"Cybercrime","short_name":"Cybercrime","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"155","cat_name":"Forensic Pathology","short_name":"Forensic Pathology","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"156","cat_name":"Forensic Science","short_name":"Forensic Science","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"157","cat_name":"History of Crime","short_name":"History of Crime","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"158","cat_name":"Intro to Criminology","short_name":"Intro to Criminology","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"159","cat_name":"Law Enforcement","short_name":"Law Enforcement","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"160","cat_name":"Police Administration","short_name":"Police Administration","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"161","cat_name":"Police Studies","short_name":"Police Studies","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"162","cat_name":"Policing","short_name":"Policing","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"163","cat_name":"Prosecution","short_name":"Prosecution","childNodes":"0","parentPath":"00144-00081-00001"}]},{"cat_id":"164","cat_name":"Geography","short_name":"Geography","childNodes":"14","parentPath":"00081-00001","sub_categories":[{"cat_id":"165","cat_name":"Cartography","short_name":"Cartography","childNodes":"0","parentPath":"00164-00081-00001"},{"cat_id":"166","cat_name":"Climate Change","short_name":"Climate Change","childNodes":"0","parentPath":"00164-00081-00001"},{"cat_id":"167","cat_name":"Cultural Geography","short_name":"Cultural Geography","childNodes":"0","parentPath":"00164-00081-00001"},{"cat_id":"168","cat_name":"Environmental Science","short_name":"Environmental Science","childNodes":"0","parentPath":"00164-00081-00001"},{"cat_id":"169","cat_name":"Geography","short_name":"Geography","childNodes":"0","parentPath":"00164-00081-00001"},{"cat_id":"170","cat_name":"Human Geography","short_name":"Human Geography","childNodes":"0","parentPath":"00164-00081-00001"},{"cat_id":"171","cat_name":"Hydrology","short_name":"Hydrology","childNodes":"0","parentPath":"00164-00081-00001"},{"cat_id":"172","cat_name":"Landforms","short_name":"Landforms","childNodes":"0","parentPath":"00164-00081-00001"},{"cat_id":"173","cat_name":"Physical Geography","short_name":"Physical Geography","childNodes":"0","parentPath":"00164-00081-00001"},{"cat_id":"174","cat_name":"U.S. Geography","short_name":"U.S. Geography","childNodes":"0","parentPath":"00164-00081-00001"},{"cat_id":"175","cat_name":"Urban Geography","short_name":"Urban Geography","childNodes":"0","parentPath":"00164-00081-00001"},{"cat_id":"176","cat_name":"Weather and Climate","short_name":"Weather and Climate","childNodes":"0","parentPath":"00164-00081-00001"},{"cat_id":"177","cat_name":"World Capitals","short_name":"World Capitals","childNodes":"0","parentPath":"00164-00081-00001"},{"cat_id":"178","cat_name":"World Geography","short_name":"World Geography","childNodes":"0","parentPath":"00164-00081-00001"}]},{"cat_id":"179","cat_name":"History","short_name":"History","childNodes":"20","parentPath":"00081-00001","sub_categories":[{"cat_id":"180","cat_name":"African History","short_name":"African History","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"181","cat_name":"American West","short_name":"American West","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"182","cat_name":"Ancient Greece","short_name":"Ancient Greece","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"183","cat_name":"Ancient History","short_name":"Ancient History","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"184","cat_name":"Ancient Rome","short_name":"Ancient Rome","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"185","cat_name":"British History","short_name":"British History","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"186","cat_name":"Chinese History","short_name":"Chinese History","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"187","cat_name":"Christian History","short_name":"Christian History","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"188","cat_name":"Cold War","short_name":"Cold War","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"189","cat_name":"European History","short_name":"European History","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"190","cat_name":"Islamic History","short_name":"Islamic History","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"191","cat_name":"Jewish History","short_name":"Jewish History","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"192","cat_name":"Latin American History","short_name":"Latin American History","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"193","cat_name":"Medieval History","short_name":"Medieval History","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"194","cat_name":"Modern World History","short_name":"Modern World History","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"195","cat_name":"US History","short_name":"US History","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"196","cat_name":"Western Civilization","short_name":"Western Civilization","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"197","cat_name":"Womens History","short_name":"Womens History","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"198","cat_name":"World Civilizations","short_name":"World Civilizations","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"199","cat_name":"World History","short_name":"World History","childNodes":"0","parentPath":"00179-00081-00001"}]},{"cat_id":"82","cat_name":"Philosophy","short_name":"Philosophy","childNodes":"7","parentPath":"00081-00001","sub_categories":[{"cat_id":"83","cat_name":"Critical Thinking","short_name":"Critical Thinking","childNodes":"0","parentPath":"00082-00081-00001"},{"cat_id":"84","cat_name":"Ethics","short_name":"Ethics","childNodes":"0","parentPath":"00082-00081-00001"},{"cat_id":"85","cat_name":"Intro Philosophy","short_name":"Intro Philosophy","childNodes":"0","parentPath":"00082-00081-00001"},{"cat_id":"86","cat_name":"Logic","short_name":"Logic","childNodes":"0","parentPath":"00082-00081-00001"},{"cat_id":"87","cat_name":"Philosophy","short_name":"Philosophy","childNodes":"0","parentPath":"00082-00081-00001"},{"cat_id":"88","cat_name":"Plato","short_name":"Plato","childNodes":"0","parentPath":"00082-00081-00001"},{"cat_id":"89","cat_name":"Rhetoric","short_name":"Rhetoric","childNodes":"0","parentPath":"00082-00081-00001"}]},{"cat_id":"200","cat_name":"Political Science","short_name":"Political Science","childNodes":"17","parentPath":"00081-00001","sub_categories":[{"cat_id":"201","cat_name":"American Government","short_name":"American Government","childNodes":"0","parentPath":"00200-00081-00001"},{"cat_id":"202","cat_name":"Comparative Politics","short_name":"Comparative Politics","childNodes":"0","parentPath":"00200-00081-00001"},{"cat_id":"203","cat_name":"Foreign Policy","short_name":"Foreign Policy","childNodes":"0","parentPath":"00200-00081-00001"},{"cat_id":"204","cat_name":"Global Issues","short_name":"Global Issues","childNodes":"0","parentPath":"00200-00081-00001"},{"cat_id":"205","cat_name":"Human Rights","short_name":"Human Rights","childNodes":"0","parentPath":"00200-00081-00001"},{"cat_id":"206","cat_name":"International Political Economy","short_name":"International Political Economy","childNodes":"0","parentPath":"00200-00081-00001"},{"cat_id":"207","cat_name":"International Relations","short_name":"International Relations","childNodes":"0","parentPath":"00200-00081-00001"},{"cat_id":"208","cat_name":"Intro Political Science","short_name":"Intro Political Science","childNodes":"0","parentPath":"00200-00081-00001"},{"cat_id":"209","cat_name":"Policy Analysis","short_name":"Policy Analysis","childNodes":"0","parentPath":"00200-00081-00001"},{"cat_id":"210","cat_name":"Political Science","short_name":"Political Science","childNodes":"0","parentPath":"00200-00081-00001"},{"cat_id":"211","cat_name":"Presidency","short_name":"Presidency","childNodes":"0","parentPath":"00200-00081-00001"},{"cat_id":"212","cat_name":"Public Administration","short_name":"Public Administration","childNodes":"0","parentPath":"00200-00081-00001"},{"cat_id":"213","cat_name":"Public Policy","short_name":"Public Policy","childNodes":"0","parentPath":"00200-00081-00001"},{"cat_id":"214","cat_name":"Social Justice","short_name":"Social Justice","childNodes":"0","parentPath":"00200-00081-00001"},{"cat_id":"215","cat_name":"Terrorism","short_name":"Terrorism","childNodes":"0","parentPath":"00200-00081-00001"},{"cat_id":"216","cat_name":"UK Politics","short_name":"UK Politics","childNodes":"0","parentPath":"00200-00081-00001"},{"cat_id":"217","cat_name":"US Congress Leadership","short_name":"US Congress Leadership","childNodes":"0","parentPath":"00200-00081-00001"}]},{"cat_id":"218","cat_name":"Psychology","short_name":"Psychology","childNodes":"53","parentPath":"00081-00001","sub_categories":[{"cat_id":"219","cat_name":"Behavior Analysis","short_name":"Behavior Analysis","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"220","cat_name":"Behavioral Neuroscience","short_name":"Behavioral Neuroscience","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"221","cat_name":"Behavioral Statistics","short_name":"Behavioral Statistics","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"222","cat_name":"Biological Psychology","short_name":"Biological Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"223","cat_name":"Biopsychology","short_name":"Biopsychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"224","cat_name":"Brain and Behavior","short_name":"Brain and Behavior","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"225","cat_name":"Child Development","short_name":"Child Development","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"226","cat_name":"Child Psychology","short_name":"Child Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"227","cat_name":"Clinical Psychology","short_name":"Clinical Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"228","cat_name":"Cognitive Biases","short_name":"Cognitive Biases","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"229","cat_name":"Cognitive Neuroscience","short_name":"Cognitive Neuroscience","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"230","cat_name":"Cognitive Psychology","short_name":"Cognitive Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"231","cat_name":"Cognitive Science","short_name":"Cognitive Science","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"232","cat_name":"Community Psychology","short_name":"Community Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"233","cat_name":"Cultural Psychology","short_name":"Cultural Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"234","cat_name":"Developmental Psychology","short_name":"Developmental Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"235","cat_name":"Drugs and Behavior","short_name":"Drugs and Behavior","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"236","cat_name":"DSM","short_name":"DSM","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"237","cat_name":"DSM-5","short_name":"DSM-5","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"238","cat_name":"Educational Psychology","short_name":"Educational Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"239","cat_name":"Environmental Psychology","short_name":"Environmental Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"240","cat_name":"Evolutionary Psychology","short_name":"Evolutionary Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"241","cat_name":"Experimental Psychology","short_name":"Experimental Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"242","cat_name":"Forensic Pscyhology","short_name":"Forensic Pscyhology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"243","cat_name":"Gender Psychology","short_name":"Gender Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"244","cat_name":"General Psychology","short_name":"General Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"245","cat_name":"Health Psychology","short_name":"Health Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"246","cat_name":"Human Behavior","short_name":"Human Behavior","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"247","cat_name":"Human Sexuality","short_name":"Human Sexuality","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"248","cat_name":"Industrial Psychology","short_name":"Industrial Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"249","cat_name":"Intro Psychology","short_name":"Intro Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"250","cat_name":"Language Development","short_name":"Language Development","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"251","cat_name":"Learning and Memory","short_name":"Learning and Memory","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"252","cat_name":"Lifespan Psychology","short_name":"Lifespan Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"253","cat_name":"Neuropsychology","short_name":"Neuropsychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"254","cat_name":"Phonology","short_name":"Phonology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"255","cat_name":"Positive Psychology","short_name":"Positive Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"256","cat_name":"Psychobiology","short_name":"Psychobiology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"257","cat_name":"Psychological Assessment","short_name":"Psychological Assessment","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"258","cat_name":"Psychological Statistics","short_name":"Psychological Statistics","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"259","cat_name":"Psychological Testing","short_name":"Psychological Testing","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"260","cat_name":"Psychology","short_name":"Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"261","cat_name":"Psychology Ethics","short_name":"Psychology Ethics","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"262","cat_name":"Psychopathology","short_name":"Psychopathology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"263","cat_name":"Psychopharmacology","short_name":"Psychopharmacology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"264","cat_name":"Psychosocial","short_name":"Psychosocial","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"265","cat_name":"Psychotherapy","short_name":"Psychotherapy","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"266","cat_name":"Psychotropic Drugs","short_name":"Psychotropic Drugs","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"267","cat_name":"Research Methods in Psych","short_name":"Research Methods in Psych","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"268","cat_name":"Sensation and Perception","short_name":"Sensation and Perception","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"269","cat_name":"Social Psychology","short_name":"Social Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"270","cat_name":"The Brain","short_name":"The Brain","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"271","cat_name":"Theories of Personality","short_name":"Theories of Personality","childNodes":"0","parentPath":"00218-00081-00001"}]},{"cat_id":"272","cat_name":"Religion and Bible","short_name":"Religion and Bible","childNodes":"19","parentPath":"00081-00001","sub_categories":[{"cat_id":"273","cat_name":"Aramaic","short_name":"Aramaic","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"274","cat_name":"Bible","short_name":"Bible","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"275","cat_name":"Bible Verses","short_name":"Bible Verses","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"276","cat_name":"Biblical Greek","short_name":"Biblical Greek","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"277","cat_name":"Buddhism","short_name":"Buddhism","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"278","cat_name":"Catholicism","short_name":"Catholicism","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"279","cat_name":"Christianity","short_name":"Christianity","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"280","cat_name":"Hebrew","short_name":"Hebrew","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"281","cat_name":"Hinduism","short_name":"Hinduism","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"282","cat_name":"Islam","short_name":"Islam","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"283","cat_name":"Judaism","short_name":"Judaism","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"284","cat_name":"New Testament","short_name":"New Testament","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"285","cat_name":"Old Testament","short_name":"Old Testament","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"286","cat_name":"Quran","short_name":"Quran","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"287","cat_name":"Religion","short_name":"Religion","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"288","cat_name":"Religious Studies","short_name":"Religious Studies","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"289","cat_name":"Sanskrit","short_name":"Sanskrit","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"290","cat_name":"Theology","short_name":"Theology","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"291","cat_name":"Torah","short_name":"Torah","childNodes":"0","parentPath":"00272-00081-00001"}]},{"cat_id":"309","cat_name":"Social Studies","short_name":"Social Studies","childNodes":"0","parentPath":"00081-00001"},{"cat_id":"310","cat_name":"Social Work","short_name":"Social Work","childNodes":"0","parentPath":"00081-00001"},{"cat_id":"292","cat_name":"Sociology","short_name":"Sociology","childNodes":"14","parentPath":"00081-00001","sub_categories":[{"cat_id":"293","cat_name":"Civil Rights","short_name":"Civil Rights","childNodes":"0","parentPath":"00292-00081-00001"},{"cat_id":"294","cat_name":"Cultural Diversity","short_name":"Cultural Diversity","childNodes":"0","parentPath":"00292-00081-00001"},{"cat_id":"295","cat_name":"Gender Studies","short_name":"Gender Studies","childNodes":"0","parentPath":"00292-00081-00001"},{"cat_id":"296","cat_name":"Group Dynamcis","short_name":"Group Dynamcis","childNodes":"0","parentPath":"00292-00081-00001"},{"cat_id":"297","cat_name":"Intro Sociology","short_name":"Intro Sociology","childNodes":"0","parentPath":"00292-00081-00001"},{"cat_id":"298","cat_name":"Juvenile Delinquency","short_name":"Juvenile Delinquency","childNodes":"0","parentPath":"00292-00081-00001"},{"cat_id":"299","cat_name":"Marriage & Family","short_name":"Marriage & Family","childNodes":"0","parentPath":"00292-00081-00001"},{"cat_id":"300","cat_name":"Mass Media Sociology","short_name":"Mass Media Sociology","childNodes":"0","parentPath":"00292-00081-00001"},{"cat_id":"301","cat_name":"Medical Sociology","short_name":"Medical Sociology","childNodes":"0","parentPath":"00292-00081-00001"},{"cat_id":"302","cat_name":"Social Control","short_name":"Social Control","childNodes":"0","parentPath":"00292-00081-00001"},{"cat_id":"303","cat_name":"Social Institutions","short_name":"Social Institutions","childNodes":"0","parentPath":"00292-00081-00001"},{"cat_id":"304","cat_name":"Sociology","short_name":"Sociology","childNodes":"0","parentPath":"00292-00081-00001"},{"cat_id":"305","cat_name":"Subcultures","short_name":"Subcultures","childNodes":"0","parentPath":"00292-00081-00001"},{"cat_id":"306","cat_name":"Youth Subcultures","short_name":"Youth Subcultures","childNodes":"0","parentPath":"00292-00081-00001"}]}]},{"cat_id":"623","cat_name":"Languages","short_name":"Languages","childNodes":"3","parentPath":"00001","sub_categories":[{"cat_id":"626","cat_name":"Africans","short_name":"Africans","childNodes":"0","parentPath":"00623-00001"},{"cat_id":"624","cat_name":"Xkhosa","short_name":"Xkhosa","childNodes":"0","parentPath":"00623-00001"},{"cat_id":"625","cat_name":"Zulu","short_name":"Zulu","childNodes":"0","parentPath":"00623-00001"}]},{"cat_id":"366","cat_name":"Law","short_name":"Law","childNodes":"29","parentPath":"00001","sub_categories":[{"cat_id":"368","cat_name":"Bankruptcy","short_name":"Bankruptcy","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"369","cat_name":"Bar Exam","short_name":"Bar Exam","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"370","cat_name":"Business Law","short_name":"Business Law","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"371","cat_name":"California Bar Exam","short_name":"California Bar Exam","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"372","cat_name":"CIPP Exam","short_name":"CIPP Exam","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"373","cat_name":"Civil Procedure","short_name":"Civil Procedure","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"374","cat_name":"Constitutional Law","short_name":"Constitutional Law","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"375","cat_name":"Contract Law","short_name":"Contract Law","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"376","cat_name":"Corporate Law","short_name":"Corporate Law","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"377","cat_name":"Criminal Law","short_name":"Criminal Law","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"378","cat_name":"Evidence","short_name":"Evidence","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"379","cat_name":"Family Law","short_name":"Family Law","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"380","cat_name":"Florida Bar Exam","short_name":"Florida Bar Exam","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"381","cat_name":"Insurance Law","short_name":"Insurance Law","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"382","cat_name":"Intellectual Property","short_name":"Intellectual Property","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"383","cat_name":"International Law","short_name":"International Law","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"384","cat_name":"Law","short_name":"Law","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"385","cat_name":"Law & Ethics","short_name":"Law & Ethics","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"386","cat_name":"Legal Studies","short_name":"Legal Studies","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"367","cat_name":"Legislation Acts Policies","short_name":"Legislation Acts Policies","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"387","cat_name":"Litigation","short_name":"Litigation","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"388","cat_name":"MBE","short_name":"MBE","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"389","cat_name":"MPRE","short_name":"MPRE","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"390","cat_name":"Pharmacy Law","short_name":"Pharmacy Law","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"391","cat_name":"Property Law","short_name":"Property Law","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"392","cat_name":"Real Estate Law","short_name":"Real Estate Law","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"393","cat_name":"Texas Bar Exam","short_name":"Texas Bar Exam","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"394","cat_name":"Torts","short_name":"Torts","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"395","cat_name":"Trusts & Estates","short_name":"Trusts & Estates","childNodes":"0","parentPath":"00366-00001"}]},{"cat_id":"311","cat_name":"Mathematics","short_name":"Mathematics","childNodes":"13","parentPath":"00001","sub_categories":[{"cat_id":"312","cat_name":"Algebra","short_name":"Algebra","childNodes":"0","parentPath":"00311-00001"},{"cat_id":"313","cat_name":"Algebra II","short_name":"Algebra II","childNodes":"0","parentPath":"00311-00001"},{"cat_id":"314","cat_name":"Arithmetic","short_name":"Arithmetic","childNodes":"0","parentPath":"00311-00001"},{"cat_id":"315","cat_name":"Calculus","short_name":"Calculus","childNodes":"0","parentPath":"00311-00001"},{"cat_id":"316","cat_name":"Geometry","short_name":"Geometry","childNodes":"0","parentPath":"00311-00001"},{"cat_id":"317","cat_name":"Linear Algebra","short_name":"Linear Algebra","childNodes":"0","parentPath":"00311-00001"},{"cat_id":"318","cat_name":"Math","short_name":"Math","childNodes":"0","parentPath":"00311-00001"},{"cat_id":"319","cat_name":"Multiplication Tables","short_name":"Multiplication Tables","childNodes":"0","parentPath":"00311-00001"},{"cat_id":"320","cat_name":"Precalculus","short_name":"Precalculus","childNodes":"0","parentPath":"00311-00001"},{"cat_id":"321","cat_name":"Probability","short_name":"Probability","childNodes":"0","parentPath":"00311-00001"},{"cat_id":"322","cat_name":"Statistical Methods","short_name":"Statistical Methods","childNodes":"0","parentPath":"00311-00001"},{"cat_id":"323","cat_name":"Statistics","short_name":"Statistics","childNodes":"0","parentPath":"00311-00001"},{"cat_id":"324","cat_name":"Trigonometry","short_name":"Trigonometry","childNodes":"0","parentPath":"00311-00001"}]},{"cat_id":"325","cat_name":"Medical & Nursing","short_name":"Medical & Nursing","childNodes":"15","parentPath":"00001","sub_categories":[{"cat_id":"326","cat_name":"Anatomy","short_name":"Anatomy","childNodes":"0","parentPath":"00325-00001"},{"cat_id":"327","cat_name":"Body Systems","short_name":"Body Systems","childNodes":"0","parentPath":"00325-00001"},{"cat_id":"328","cat_name":"Dentistry","short_name":"Dentistry","childNodes":"0","parentPath":"00325-00001"},{"cat_id":"329","cat_name":"Medical Courses & Subject Areas","short_name":"Medical Courses & Subject Areas","childNodes":"0","parentPath":"00325-00001"},{"cat_id":"330","cat_name":"Medical Exams","short_name":"Medical Exams","childNodes":"0","parentPath":"00325-00001"},{"cat_id":"331","cat_name":"Medical Subspecialties","short_name":"Medical Subspecialties","childNodes":"0","parentPath":"00325-00001"},{"cat_id":"332","cat_name":"Medical Terminology","short_name":"Medical Terminology","childNodes":"0","parentPath":"00325-00001"},{"cat_id":"333","cat_name":"Misc Healthcare Topics","short_name":"Misc Healthcare Topics","childNodes":"0","parentPath":"00325-00001"},{"cat_id":"334","cat_name":"Nursing Courses & Subject Areas","short_name":"Nursing Courses & Subject Areas","childNodes":"0","parentPath":"00325-00001"},{"cat_id":"335","cat_name":"Nursing Subspecialties","short_name":"Nursing Subspecialties","childNodes":"0","parentPath":"00325-00001"},{"cat_id":"336","cat_name":"Other Healthcare Fields","short_name":"Other Healthcare Fields","childNodes":"0","parentPath":"00325-00001"},{"cat_id":"337","cat_name":"Pharmacology","short_name":"Pharmacology","childNodes":"0","parentPath":"00325-00001"},{"cat_id":"338","cat_name":"Physiology","short_name":"Physiology","childNodes":"0","parentPath":"00325-00001"},{"cat_id":"339","cat_name":"Radiology & Diagnostic Imaging","short_name":"Radiology & Diagnostic Imaging","childNodes":"0","parentPath":"00325-00001"},{"cat_id":"340","cat_name":"Veterinary","short_name":"Veterinary","childNodes":"0","parentPath":"00325-00001"}]},{"cat_id":"11","cat_name":"Professional Certifications","short_name":"Professional Certifications","childNodes":"11","parentPath":"00001","sub_categories":[{"cat_id":"12","cat_name":"Bar Exam","short_name":"Bar Exam","childNodes":"0","parentPath":"00011-00001"},{"cat_id":"13","cat_name":"Drivers Ed","short_name":"Drivers Ed","childNodes":"0","parentPath":"00011-00001"},{"cat_id":"14","cat_name":"Financial Exams","short_name":"Financial Exams","childNodes":"0","parentPath":"00011-00001"},{"cat_id":"15","cat_name":"Management Certifications","short_name":"Management Certifications","childNodes":"0","parentPath":"00011-00001"},{"cat_id":"16","cat_name":"Medical & Nursing Certifications","short_name":"Medical & Nursing Certifications","childNodes":"0","parentPath":"00011-00001"},{"cat_id":"17","cat_name":"Military Exams","short_name":"Military Exams","childNodes":"0","parentPath":"00011-00001"},{"cat_id":"18","cat_name":"MPRE","short_name":"MPRE","childNodes":"0","parentPath":"00011-00001"},{"cat_id":"19","cat_name":"Other Certifications","short_name":"Other Certifications","childNodes":"0","parentPath":"00011-00001"},{"cat_id":"20","cat_name":"Technology Certifications","short_name":"Technology Certifications","childNodes":"0","parentPath":"00011-00001"},{"cat_id":"21","cat_name":"TOEFL","short_name":"TOEFL","childNodes":"0","parentPath":"00011-00001"},{"cat_id":"22","cat_name":"Wine & Spirits","short_name":"Wine & Spirits","childNodes":"0","parentPath":"00011-00001"}]},{"cat_id":"611","cat_name":"Random Knowledge","short_name":"Random Knowledge","childNodes":"11","parentPath":"00001","sub_categories":[{"cat_id":"612","cat_name":"Astrology","short_name":"Astrology","childNodes":"0","parentPath":"00611-00001"},{"cat_id":"613","cat_name":"Blackjack","short_name":"Blackjack","childNodes":"0","parentPath":"00611-00001"},{"cat_id":"614","cat_name":"Cultural Literacy","short_name":"Cultural Literacy","childNodes":"0","parentPath":"00611-00001"},{"cat_id":"615","cat_name":"Knowledge Rehab","short_name":"Knowledge Rehab","childNodes":"0","parentPath":"00611-00001"},{"cat_id":"616","cat_name":"Mythology","short_name":"Mythology","childNodes":"0","parentPath":"00611-00001"},{"cat_id":"617","cat_name":"National Capitals","short_name":"National Capitals","childNodes":"0","parentPath":"00611-00001"},{"cat_id":"618","cat_name":"People You Should Know","short_name":"People You Should Know","childNodes":"0","parentPath":"00611-00001"},{"cat_id":"619","cat_name":"Poker","short_name":"Poker","childNodes":"0","parentPath":"00611-00001"},{"cat_id":"620","cat_name":"Quiz Bowl","short_name":"Quiz Bowl","childNodes":"0","parentPath":"00611-00001"},{"cat_id":"621","cat_name":"Sports Trivia","short_name":"Sports Trivia","childNodes":"0","parentPath":"00611-00001"},{"cat_id":"622","cat_name":"Tarot Cards","short_name":"Tarot Cards","childNodes":"0","parentPath":"00611-00001"}]},{"cat_id":"38","cat_name":"Science","short_name":"Science","childNodes":"25","parentPath":"00001","sub_categories":[{"cat_id":"39","cat_name":"Anatomy","short_name":"Anatomy","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"40","cat_name":"Astronomy","short_name":"Astronomy","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"41","cat_name":"Biochemistry","short_name":"Biochemistry","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"42","cat_name":"Biology","short_name":"Biology","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"43","cat_name":"Cellular Biology","short_name":"Cellular Biology","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"44","cat_name":"Chemistry","short_name":"Chemistry","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"45","cat_name":"Earth Science","short_name":"Earth Science","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"46","cat_name":"Environmental Science","short_name":"Environmental Science","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"47","cat_name":"Genetics","short_name":"Genetics","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"48","cat_name":"Geology","short_name":"Geology","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"49","cat_name":"Life Science","short_name":"Life Science","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"50","cat_name":"Marine Biology","short_name":"Marine Biology","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"51","cat_name":"Meteorology","short_name":"Meteorology","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"52","cat_name":"Microbiology","short_name":"Microbiology","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"53","cat_name":"Molecular Biology","short_name":"Molecular Biology","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"54","cat_name":"Natural Science","short_name":"Natural Science","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"55","cat_name":"Oceanography","short_name":"Oceanography","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"56","cat_name":"Organic Chemistry","short_name":"Organic Chemistry","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"57","cat_name":"Periodic Table","short_name":"Periodic Table","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"58","cat_name":"Physical Science","short_name":"Physical Science","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"59","cat_name":"Physics","short_name":"Physics","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"60","cat_name":"Physiology","short_name":"Physiology","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"61","cat_name":"Plant Science","short_name":"Plant Science","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"62","cat_name":"Science Class","short_name":"Science Class","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"63","cat_name":"Zoology","short_name":"Zoology","childNodes":"0","parentPath":"00038-00001"}]},{"cat_id":"525","cat_name":"Technology & Engineering","short_name":"Technology & Engineering","childNodes":"9","parentPath":"00001","sub_categories":[{"cat_id":"526","cat_name":"Architecture","short_name":"Architecture","childNodes":"0","parentPath":"00525-00001"},{"cat_id":"527","cat_name":"Biotechnology","short_name":"Biotechnology","childNodes":"0","parentPath":"00525-00001"},{"cat_id":"528","cat_name":"Computer Programming","short_name":"Computer Programming","childNodes":"22","parentPath":"00525-00001","sub_categories":[{"cat_id":"529","cat_name":"Agile","short_name":"Agile","childNodes":"1","parentPath":"00528-00525-00001","sub_categories":[{"cat_id":"628","cat_name":"test category","short_name":"test category","childNodes":"0","parentPath":"00529-00528-00525-00001"}]},{"cat_id":"530","cat_name":"AWS","short_name":"AWS","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"550","cat_name":"Brainscape Certified (\u00c2\u00a0See All\u00c2\u00a0)","short_name":"Brainscape Certified (\u00c2\u00a0See All\u00c2\u00a0)","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"531","cat_name":"Computer Programming","short_name":"Computer Programming","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"532","cat_name":"Cryptography","short_name":"Cryptography","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"533","cat_name":"Git Commands","short_name":"Git Commands","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"534","cat_name":"HTML","short_name":"HTML","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"535","cat_name":"Java","short_name":"Java","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"536","cat_name":"Javascript","short_name":"Javascript","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"537","cat_name":"Keyboard Shortcuts","short_name":"Keyboard Shortcuts","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"538","cat_name":"Kubernetes","short_name":"Kubernetes","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"539","cat_name":"Linux","short_name":"Linux","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"540","cat_name":"Mac OS","short_name":"Mac OS","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"541","cat_name":"Objective-C","short_name":"Objective-C","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"542","cat_name":"PHP","short_name":"PHP","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"543","cat_name":"Python","short_name":"Python","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"544","cat_name":"React","short_name":"React","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"545","cat_name":"Ruby","short_name":"Ruby","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"546","cat_name":"Ruby on Rails","short_name":"Ruby on Rails","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"547","cat_name":"Swift","short_name":"Swift","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"548","cat_name":"Tech Startup Genius","short_name":"Tech Startup Genius","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"549","cat_name":"Wordpress","short_name":"Wordpress","childNodes":"0","parentPath":"00528-00525-00001"}]},{"cat_id":"551","cat_name":"Computer Science","short_name":"Computer Science","childNodes":"28","parentPath":"00525-00001","sub_categories":[{"cat_id":"552","cat_name":"Algorithms","short_name":"Algorithms","childNodes":"1","parentPath":"00551-00525-00001","sub_categories":[{"cat_id":"630","cat_name":"               ","short_name":"               ","childNodes":"0","parentPath":"00552-00551-00525-00001"}]},{"cat_id":"553","cat_name":"Artificial Intelligence","short_name":"Artificial Intelligence","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"554","cat_name":"Computer Architecture","short_name":"Computer Architecture","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"555","cat_name":"Computer Concepts","short_name":"Computer Concepts","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"556","cat_name":"Computer Literacy","short_name":"Computer Literacy","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"557","cat_name":"Computer Science","short_name":"Computer Science","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"558","cat_name":"Computer Security","short_name":"Computer Security","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"559","cat_name":"Computer Systems","short_name":"Computer Systems","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"560","cat_name":"Computing","short_name":"Computing","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"561","cat_name":"Cybersecurity","short_name":"Cybersecurity","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"562","cat_name":"Data Mining","short_name":"Data Mining","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"563","cat_name":"Data Science","short_name":"Data Science","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"564","cat_name":"Data Structures","short_name":"Data Structures","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"565","cat_name":"Database","short_name":"Database","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"566","cat_name":"Database Management","short_name":"Database Management","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"567","cat_name":"Deep Learning","short_name":"Deep Learning","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"568","cat_name":"Discrete Structures","short_name":"Discrete Structures","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"569","cat_name":"Human Computer Interaction","short_name":"Human Computer Interaction","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"570","cat_name":"Informatics","short_name":"Informatics","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"571","cat_name":"Intro to Computers","short_name":"Intro to Computers","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"572","cat_name":"Machine Learning","short_name":"Machine Learning","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"573","cat_name":"Network Security","short_name":"Network Security","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"574","cat_name":"Networking","short_name":"Networking","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"575","cat_name":"Object Oriented Programming","short_name":"Object Oriented Programming","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"576","cat_name":"Operating Systems","short_name":"Operating Systems","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"577","cat_name":"Programming","short_name":"Programming","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"578","cat_name":"Robotics","short_name":"Robotics","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"579","cat_name":"Software Development","short_name":"Software Development","childNodes":"0","parentPath":"00551-00525-00001"}]},{"cat_id":"581","cat_name":"Engineering","short_name":"Engineering","childNodes":"12","parentPath":"00525-00001","sub_categories":[{"cat_id":"582","cat_name":"Amateur Radio","short_name":"Amateur Radio","childNodes":"0","parentPath":"00581-00525-00001"},{"cat_id":"583","cat_name":"Architecture","short_name":"Architecture","childNodes":"0","parentPath":"00581-00525-00001"},{"cat_id":"584","cat_name":"Circuits","short_name":"Circuits","childNodes":"0","parentPath":"00581-00525-00001"},{"cat_id":"585","cat_name":"Civil Engineering","short_name":"Civil Engineering","childNodes":"0","parentPath":"00581-00525-00001"},{"cat_id":"586","cat_name":"Construction","short_name":"Construction","childNodes":"0","parentPath":"00581-00525-00001"},{"cat_id":"587","cat_name":"Electrical Engineering","short_name":"Electrical Engineering","childNodes":"0","parentPath":"00581-00525-00001"},{"cat_id":"588","cat_name":"Engineering Science","short_name":"Engineering Science","childNodes":"0","parentPath":"00581-00525-00001"},{"cat_id":"589","cat_name":"Materials Science","short_name":"Materials Science","childNodes":"0","parentPath":"00581-00525-00001"},{"cat_id":"590","cat_name":"Mechanical Engineering","short_name":"Mechanical Engineering","childNodes":"0","parentPath":"00581-00525-00001"},{"cat_id":"591","cat_name":"Millwright","short_name":"Millwright","childNodes":"0","parentPath":"00581-00525-00001"},{"cat_id":"592","cat_name":"Morse Code","short_name":"Morse Code","childNodes":"0","parentPath":"00581-00525-00001"},{"cat_id":"593","cat_name":"Power Engineering","short_name":"Power Engineering","childNodes":"0","parentPath":"00581-00525-00001"}]},{"cat_id":"594","cat_name":"Graphic Design","short_name":"Graphic Design","childNodes":"0","parentPath":"00525-00001"},{"cat_id":"595","cat_name":"Information Security","short_name":"Information Security","childNodes":"0","parentPath":"00525-00001"},{"cat_id":"596","cat_name":"Information Technology","short_name":"Information Technology","childNodes":"0","parentPath":"00525-00001"},{"cat_id":"597","cat_name":"Management Information Systems","short_name":"Management Information Systems","childNodes":"0","parentPath":"00525-00001"}]},{"cat_id":"341","cat_name":"Vocations","short_name":"Vocations","childNodes":"24","parentPath":"00001","sub_categories":[{"cat_id":"342","cat_name":"ASVAB","short_name":"ASVAB","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"343","cat_name":"Automotive","short_name":"Automotive","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"344","cat_name":"Aviation","short_name":"Aviation","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"345","cat_name":"Barbering","short_name":"Barbering","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"346","cat_name":"Boating","short_name":"Boating","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"347","cat_name":"Cosmetology","short_name":"Cosmetology","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"348","cat_name":"Diamonds","short_name":"Diamonds","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"349","cat_name":"Electrical","short_name":"Electrical","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"350","cat_name":"Electrician","short_name":"Electrician","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"351","cat_name":"Firefighting","short_name":"Firefighting","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"352","cat_name":"Gardening","short_name":"Gardening","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"353","cat_name":"Home Economics","short_name":"Home Economics","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"354","cat_name":"Horticulture","short_name":"Horticulture","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"355","cat_name":"HVAC","short_name":"HVAC","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"356","cat_name":"Interior Design","short_name":"Interior Design","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"357","cat_name":"Landscape Architecture","short_name":"Landscape Architecture","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"358","cat_name":"Massage Therapy","short_name":"Massage Therapy","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"359","cat_name":"Metallurgy","short_name":"Metallurgy","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"360","cat_name":"Military","short_name":"Military","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"361","cat_name":"Pest Control","short_name":"Pest Control","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"362","cat_name":"Plumbing","short_name":"Plumbing","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"363","cat_name":"Policing","short_name":"Policing","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"364","cat_name":"Wastewater","short_name":"Wastewater","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"365","cat_name":"Welding","short_name":"Welding","childNodes":"0","parentPath":"00341-00001"}]}]}
[02/Feb/2026:00:48:55] (root_api-) token =  IP = 41.193.163.204
[02/Feb/2026:00:48:55] (root_api-) 
[02/Feb/2026:00:48:55] (root_api-) OP=  of page root_api.php
[02/Feb/2026:00:48:55] (root_api-) Final JSON =  { "status":"error",
					"message":"Invalid Session",
					"Errorcode":"err100",
					"data":{}}
[02/Feb/2026:00:48:55] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 41.193.163.204
[02/Feb/2026:00:48:55] (root_api-) op => getFrontCategoryMenu ,categoryId =>  ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => category_data ,
[02/Feb/2026:00:48:55] (root_api-) OP= getFrontCategoryMenu of page root_api.php
[02/Feb/2026:00:48:55] (root_api-) serviceName category_data
[02/Feb/2026:00:48:55] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:00:48:55] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='1' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 00:48:55:0255~2026-02-02 00:48:55~success
[02/Feb/2026:00:48:55] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:00:48:55] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='410' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 00:48:55:0255~2026-02-02 00:48:55~success
[02/Feb/2026:00:48:55] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:00:48:55] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='411' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 00:48:55:0255~2026-02-02 00:48:55~success
[02/Feb/2026:00:48:55] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:00:48:55] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='433' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 00:48:55:0255~2026-02-02 00:48:55~success
[02/Feb/2026:00:48:55] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:00:48:55] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='458' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 00:48:55:0255~2026-02-02 00:48:55~success
[02/Feb/2026:00:48:55] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:00:48:55] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='485' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 00:48:55:0255~2026-02-02 00:48:55~success
[02/Feb/2026:00:48:55] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:00:48:55] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='499' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 00:48:55:0255~2026-02-02 00:48:55~success
[02/Feb/2026:00:48:55] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:00:48:55] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='514' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 00:48:55:0255~2026-02-02 00:48:55~success
[02/Feb/2026:00:48:55] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:00:48:55] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='64' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 00:48:55:0255~2026-02-02 00:48:55~success
[02/Feb/2026:00:48:55] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:00:48:55] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='2' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 00:48:55:0255~2026-02-02 00:48:55~success
[02/Feb/2026:00:48:55] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:00:48:55] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='605' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 00:48:55:0255~2026-02-02 00:48:55~success
[02/Feb/2026:00:48:55] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:00:48:55] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='598' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 00:48:55:0255~2026-02-02 00:48:55~success
[02/Feb/2026:00:48:55] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:00:48:55] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='23' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 00:48:55:0255~2026-02-02 00:48:55~success
[02/Feb/2026:00:48:55] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:00:48:55] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='396' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 00:48:55:0255~2026-02-02 00:48:55~success
[02/Feb/2026:00:48:55] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:00:48:55] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='81' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 00:48:55:0255~2026-02-02 00:48:55~success
[02/Feb/2026:00:48:55] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:00:48:55] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='90' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 00:48:55:0255~2026-02-02 00:48:55~success
[02/Feb/2026:00:48:55] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:00:48:55] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='107' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 00:48:55:0255~2026-02-02 00:48:55~success
[02/Feb/2026:00:48:55] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:00:48:55] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='117' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 00:48:55:0255~2026-02-02 00:48:55~success
[02/Feb/2026:00:48:55] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:00:48:55] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='137' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 00:48:55:0255~2026-02-02 00:48:55~success
[02/Feb/2026:00:48:55] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:00:48:55] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='138' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 00:48:55:0255~2026-02-02 00:48:55~success
[02/Feb/2026:00:48:55] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:00:48:55] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='144' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 00:48:55:0255~2026-02-02 00:48:55~success
[02/Feb/2026:00:48:55] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:00:48:55] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='164' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 00:48:55:0255~2026-02-02 00:48:55~success
[02/Feb/2026:00:48:55] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:00:48:55] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='179' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 00:48:55:0255~2026-02-02 00:48:55~success
[02/Feb/2026:00:48:55] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:00:48:55] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='82' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 00:48:55:0255~2026-02-02 00:48:55~success
[02/Feb/2026:00:48:55] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:00:48:55] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='200' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 00:48:55:0255~2026-02-02 00:48:55~success
[02/Feb/2026:00:48:55] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:00:48:55] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='218' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 00:48:55:0255~2026-02-02 00:48:55~success
[02/Feb/2026:00:48:55] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:00:48:55] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='272' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 00:48:55:0255~2026-02-02 00:48:55~success
[02/Feb/2026:00:48:55] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:00:48:55] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='292' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 00:48:55:0255~2026-02-02 00:48:55~success
[02/Feb/2026:00:48:55] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:00:48:55] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='623' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 00:48:55:0255~2026-02-02 00:48:55~success
[02/Feb/2026:00:48:55] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:00:48:55] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='366' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 00:48:55:0255~2026-02-02 00:48:55~success
[02/Feb/2026:00:48:55] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:00:48:55] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='311' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 00:48:55:0255~2026-02-02 00:48:55~success
[02/Feb/2026:00:48:55] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:00:48:55] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='325' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 00:48:55:0255~2026-02-02 00:48:55~success
[02/Feb/2026:00:48:55] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:00:48:55] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='11' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 00:48:55:0255~2026-02-02 00:48:55~success
[02/Feb/2026:00:48:55] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:00:48:55] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='611' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 00:48:55:0255~2026-02-02 00:48:55~success
[02/Feb/2026:00:48:55] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:00:48:55] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='38' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 00:48:55:0255~2026-02-02 00:48:55~success
[02/Feb/2026:00:48:55] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:00:48:55] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='525' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 00:48:55:0255~2026-02-02 00:48:55~success
[02/Feb/2026:00:48:55] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:00:48:55] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='528' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 00:48:55:0255~2026-02-02 00:48:55~success
[02/Feb/2026:00:48:55] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:00:48:55] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='529' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 00:48:55:0255~2026-02-02 00:48:55~success
[02/Feb/2026:00:48:55] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:00:48:55] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='551' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 00:48:55:0255~2026-02-02 00:48:55~success
[02/Feb/2026:00:48:55] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:00:48:55] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='552' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 00:48:55:0255~2026-02-02 00:48:55~success
[02/Feb/2026:00:48:55] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:00:48:55] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='581' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 00:48:55:0255~2026-02-02 00:48:55~success
[02/Feb/2026:00:48:55] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:00:48:55] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='341' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 00:48:55:0255~2026-02-02 00:48:55~success
[02/Feb/2026:00:48:55] (root_api-) Final JSON =  {"status":"ok","message":"","Errorcode":"","data":[{"cat_id":"410","cat_name":"Business & Finance","short_name":"Business & Finance","childNodes":"7","parentPath":"00001","sub_categories":[{"cat_id":"411","cat_name":"Accounting","short_name":"Accounting","childNodes":"21","parentPath":"00410-00001","sub_categories":[{"cat_id":"431","cat_name":"                    Accounting","short_name":"Taxation Partnership","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"412","cat_name":"AAT","short_name":"AAT","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"413","cat_name":"Accounting","short_name":"Accounting","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"414","cat_name":"Accounting Information Systems","short_name":"Accounting Information Systems","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"415","cat_name":"Accounting Theory","short_name":"Accounting Theory","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"416","cat_name":"Appraisal","short_name":"Appraisal","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"417","cat_name":"Audit","short_name":"Audit","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"418","cat_name":"Audit & Assurance","short_name":"Audit & Assurance","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"419","cat_name":"Audit Sampling","short_name":"Audit Sampling","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"420","cat_name":"Bookkeeping","short_name":"Bookkeeping","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"421","cat_name":"Cost Accounting","short_name":"Cost Accounting","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"422","cat_name":"Enrolled Agent","short_name":"Enrolled Agent","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"423","cat_name":"Federal Income Tax","short_name":"Federal Income Tax","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"627","cat_name":"Finanace","short_name":"Finanace","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"424","cat_name":"Financial Accounting","short_name":"Financial Accounting","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"425","cat_name":"Fraud","short_name":"Fraud","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"426","cat_name":"Income Tax","short_name":"Income Tax","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"427","cat_name":"Intermediate Accounting","short_name":"Intermediate Accounting","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"428","cat_name":"Managerial Accounting","short_name":"Managerial Accounting","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"429","cat_name":"Public Finance","short_name":"Public Finance","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"430","cat_name":"Taxation","short_name":"Taxation","childNodes":"0","parentPath":"00411-00410-00001"}]},{"cat_id":"433","cat_name":"Business","short_name":"Business","childNodes":"23","parentPath":"00410-00001","sub_categories":[{"cat_id":"434","cat_name":"Accounting","short_name":"Accounting","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"435","cat_name":"Advertising","short_name":"Advertising","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"436","cat_name":"Business","short_name":"Business","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"437","cat_name":"Business Analysis","short_name":"Business Analysis","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"438","cat_name":"Business Analytics","short_name":"Business Analytics","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"439","cat_name":"Business Communication","short_name":"Business Communication","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"440","cat_name":"Business Ethics","short_name":"Business Ethics","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"441","cat_name":"Employee Training Demo","short_name":"Employee Training Demo","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"442","cat_name":"Entrepreneurship","short_name":"Entrepreneurship","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"443","cat_name":"Fashion","short_name":"Fashion","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"444","cat_name":"Finance","short_name":"Finance","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"445","cat_name":"Global Business","short_name":"Global Business","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"446","cat_name":"Human Resources","short_name":"Human Resources","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"447","cat_name":"Insurance","short_name":"Insurance","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"448","cat_name":"International Business","short_name":"International Business","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"449","cat_name":"Life & Health Insurance","short_name":"Life & Health Insurance","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"450","cat_name":"Logistics","short_name":"Logistics","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"451","cat_name":"Procurement","short_name":"Procurement","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"452","cat_name":"Project Management","short_name":"Project Management","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"453","cat_name":"Risk Management","short_name":"Risk Management","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"454","cat_name":"Salesforce","short_name":"Salesforce","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"455","cat_name":"Supply Chain","short_name":"Supply Chain","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"456","cat_name":"Tourism","short_name":"Tourism","childNodes":"0","parentPath":"00433-00410-00001"}]},{"cat_id":"458","cat_name":"Economics","short_name":"Economics","childNodes":"24","parentPath":"00410-00001","sub_categories":[{"cat_id":"459","cat_name":"Behavioral Economics","short_name":"Behavioral Economics","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"471","cat_name":"Capital Markets","short_name":"Capital Markets","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"472","cat_name":"Corporate Finance","short_name":"Corporate Finance","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"460","cat_name":"Econometrics","short_name":"Econometrics","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"461","cat_name":"Economic Development","short_name":"Economic Development","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"462","cat_name":"Economics","short_name":"Economics","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"463","cat_name":"Environmental Economics","short_name":"Environmental Economics","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"473","cat_name":"Finance","short_name":"Finance","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"474","cat_name":"Financial Exams","short_name":"Financial Exams","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"475","cat_name":"Financial Literacy","short_name":"Financial Literacy","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"476","cat_name":"Financial Markets","short_name":"Financial Markets","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"477","cat_name":"Fixed Income","short_name":"Fixed Income","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"464","cat_name":"Game Theory","short_name":"Game Theory","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"465","cat_name":"Globalization","short_name":"Globalization","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"478","cat_name":"International Finance","short_name":"International Finance","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"479","cat_name":"Investment Analysis","short_name":"Investment Analysis","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"480","cat_name":"Investment Banking","short_name":"Investment Banking","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"466","cat_name":"Macroeconomics","short_name":"Macroeconomics","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"467","cat_name":"Managerial Economics","short_name":"Managerial Economics","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"468","cat_name":"Microeconomics","short_name":"Microeconomics","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"481","cat_name":"Personal Finance","short_name":"Personal Finance","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"469","cat_name":"Principles of Economics","short_name":"Principles of Economics","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"482","cat_name":"Private Equity","short_name":"Private Equity","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"483","cat_name":"Real Estate Finance","short_name":"Real Estate Finance","childNodes":"0","parentPath":"00458-00410-00001"}]},{"cat_id":"470","cat_name":"Finance","short_name":"Finance","childNodes":"0","parentPath":"00410-00001"},{"cat_id":"485","cat_name":"Management","short_name":"Management","childNodes":"12","parentPath":"00410-00001","sub_categories":[{"cat_id":"486","cat_name":"Business Administration","short_name":"Business Administration","childNodes":"0","parentPath":"00485-00410-00001"},{"cat_id":"487","cat_name":"Business Management","short_name":"Business Management","childNodes":"0","parentPath":"00485-00410-00001"},{"cat_id":"488","cat_name":"Effective Supervisory Practices","short_name":"Effective Supervisory Practices","childNodes":"0","parentPath":"00485-00410-00001"},{"cat_id":"489","cat_name":"Facilities Management","short_name":"Facilities Management","childNodes":"0","parentPath":"00485-00410-00001"},{"cat_id":"490","cat_name":"Healthcare Management","short_name":"Healthcare Management","childNodes":"0","parentPath":"00485-00410-00001"},{"cat_id":"491","cat_name":"Higher Business Management","short_name":"Higher Business Management","childNodes":"0","parentPath":"00485-00410-00001"},{"cat_id":"492","cat_name":"Human Resource Management","short_name":"Human Resource Management","childNodes":"0","parentPath":"00485-00410-00001"},{"cat_id":"493","cat_name":"Management 101","short_name":"Management 101","childNodes":"0","parentPath":"00485-00410-00001"},{"cat_id":"494","cat_name":"Operations Management","short_name":"Operations Management","childNodes":"0","parentPath":"00485-00410-00001"},{"cat_id":"495","cat_name":"Organizational Behavior","short_name":"Organizational Behavior","childNodes":"0","parentPath":"00485-00410-00001"},{"cat_id":"496","cat_name":"Principles of Management","short_name":"Principles of Management","childNodes":"0","parentPath":"00485-00410-00001"},{"cat_id":"497","cat_name":"Strategic Management","short_name":"Strategic Management","childNodes":"0","parentPath":"00485-00410-00001"}]},{"cat_id":"499","cat_name":"Marketing","short_name":"Marketing","childNodes":"13","parentPath":"00410-00001","sub_categories":[{"cat_id":"500","cat_name":"B2B Marketing","short_name":"B2B Marketing","childNodes":"0","parentPath":"00499-00410-00001"},{"cat_id":"501","cat_name":"Consumer Behavior","short_name":"Consumer Behavior","childNodes":"0","parentPath":"00499-00410-00001"},{"cat_id":"502","cat_name":"Digital Marketing","short_name":"Digital Marketing","childNodes":"0","parentPath":"00499-00410-00001"},{"cat_id":"503","cat_name":"Global Marketing","short_name":"Global Marketing","childNodes":"0","parentPath":"00499-00410-00001"},{"cat_id":"504","cat_name":"International Marketing","short_name":"International Marketing","childNodes":"0","parentPath":"00499-00410-00001"},{"cat_id":"505","cat_name":"Marketing 101","short_name":"Marketing 101","childNodes":"0","parentPath":"00499-00410-00001"},{"cat_id":"506","cat_name":"Marketing Research","short_name":"Marketing Research","childNodes":"0","parentPath":"00499-00410-00001"},{"cat_id":"507","cat_name":"Neuromarketing","short_name":"Neuromarketing","childNodes":"0","parentPath":"00499-00410-00001"},{"cat_id":"508","cat_name":"Principles of Marketing","short_name":"Principles of Marketing","childNodes":"0","parentPath":"00499-00410-00001"},{"cat_id":"509","cat_name":"Sales & Marketing","short_name":"Sales & Marketing","childNodes":"0","parentPath":"00499-00410-00001"},{"cat_id":"510","cat_name":"Service Marketing","short_name":"Service Marketing","childNodes":"0","parentPath":"00499-00410-00001"},{"cat_id":"511","cat_name":"Social Marketing","short_name":"Social Marketing","childNodes":"0","parentPath":"00499-00410-00001"},{"cat_id":"512","cat_name":"Strategic Marketing","short_name":"Strategic Marketing","childNodes":"0","parentPath":"00499-00410-00001"}]},{"cat_id":"514","cat_name":"Real Estate","short_name":"Real Estate","childNodes":"10","parentPath":"00410-00001","sub_categories":[{"cat_id":"515","cat_name":"Real Estate - General","short_name":"Real Estate - General","childNodes":"0","parentPath":"00514-00410-00001"},{"cat_id":"516","cat_name":"Real Estate Agent","short_name":"Real Estate Agent","childNodes":"0","parentPath":"00514-00410-00001"},{"cat_id":"517","cat_name":"Real Estate Appraisal","short_name":"Real Estate Appraisal","childNodes":"0","parentPath":"00514-00410-00001"},{"cat_id":"518","cat_name":"Real Estate Exam","short_name":"Real Estate Exam","childNodes":"0","parentPath":"00514-00410-00001"},{"cat_id":"519","cat_name":"Real Estate Finance","short_name":"Real Estate Finance","childNodes":"0","parentPath":"00514-00410-00001"},{"cat_id":"520","cat_name":"Real Estate Law","short_name":"Real Estate Law","childNodes":"0","parentPath":"00514-00410-00001"},{"cat_id":"521","cat_name":"Real Estate Math","short_name":"Real Estate Math","childNodes":"0","parentPath":"00514-00410-00001"},{"cat_id":"522","cat_name":"Real Estate Post-Licensing","short_name":"Real Estate Post-Licensing","childNodes":"0","parentPath":"00514-00410-00001"},{"cat_id":"523","cat_name":"Real Estate Practice","short_name":"Real Estate Practice","childNodes":"0","parentPath":"00514-00410-00001"},{"cat_id":"524","cat_name":"Real Estate Principles","short_name":"Real Estate Principles","childNodes":"0","parentPath":"00514-00410-00001"}]}]},{"cat_id":"64","cat_name":"English","short_name":"English","childNodes":"16","parentPath":"00001","sub_categories":[{"cat_id":"65","cat_name":"American Literature","short_name":"American Literature","childNodes":"0","parentPath":"00064-00001"},{"cat_id":"66","cat_name":"British Literature","short_name":"British Literature","childNodes":"0","parentPath":"00064-00001"},{"cat_id":"67","cat_name":"Classic Novels","short_name":"Classic Novels","childNodes":"0","parentPath":"00064-00001"},{"cat_id":"68","cat_name":"Creative Writing","short_name":"Creative Writing","childNodes":"0","parentPath":"00064-00001"},{"cat_id":"69","cat_name":"English","short_name":"English","childNodes":"0","parentPath":"00064-00001"},{"cat_id":"70","cat_name":"English Grammar","short_name":"English Grammar","childNodes":"0","parentPath":"00064-00001"},{"cat_id":"71","cat_name":"Fiction","short_name":"Fiction","childNodes":"0","parentPath":"00064-00001"},{"cat_id":"72","cat_name":"Higher English","short_name":"Higher English","childNodes":"0","parentPath":"00064-00001"},{"cat_id":"73","cat_name":"Literature","short_name":"Literature","childNodes":"0","parentPath":"00064-00001"},{"cat_id":"74","cat_name":"Medieval literature","short_name":"Medieval literature","childNodes":"0","parentPath":"00064-00001"},{"cat_id":"75","cat_name":"Phonics","short_name":"Phonics","childNodes":"0","parentPath":"00064-00001"},{"cat_id":"76","cat_name":"Poetry","short_name":"Poetry","childNodes":"0","parentPath":"00064-00001"},{"cat_id":"77","cat_name":"Proverbs and Idioms","short_name":"Proverbs and Idioms","childNodes":"0","parentPath":"00064-00001"},{"cat_id":"78","cat_name":"Shakespeare","short_name":"Shakespeare","childNodes":"0","parentPath":"00064-00001"},{"cat_id":"79","cat_name":"Spelling","short_name":"Spelling","childNodes":"0","parentPath":"00064-00001"},{"cat_id":"80","cat_name":"Vocab Builder","short_name":"Vocab Builder","childNodes":"0","parentPath":"00064-00001"}]},{"cat_id":"2","cat_name":"Entrance Exams","short_name":"Entrance Exams","childNodes":"8","parentPath":"00001","sub_categories":[{"cat_id":"3","cat_name":"A Level Exams","short_name":"A Level Exams","childNodes":"0","parentPath":"00002-00001"},{"cat_id":"4","cat_name":"AP Exams","short_name":"AP Exams","childNodes":"0","parentPath":"00002-00001"},{"cat_id":"5","cat_name":"GCSE Exams","short_name":"GCSE Exams","childNodes":"0","parentPath":"00002-00001"},{"cat_id":"6","cat_name":"Graduate Entrance Exams","short_name":"Graduate Entrance Exams","childNodes":"0","parentPath":"00002-00001"},{"cat_id":"7","cat_name":"IGCSE Exams","short_name":"IGCSE Exams","childNodes":"0","parentPath":"00002-00001"},{"cat_id":"8","cat_name":"International Baccalaureate","short_name":"International Baccalaureate","childNodes":"0","parentPath":"00002-00001"},{"cat_id":"9","cat_name":"National 5 Exams","short_name":"National 5 Exams","childNodes":"0","parentPath":"00002-00001"},{"cat_id":"10","cat_name":"University Entrance Exams","short_name":"University Entrance Exams","childNodes":"0","parentPath":"00002-00001"}]},{"cat_id":"605","cat_name":"Fine Arts","short_name":"Fine Arts","childNodes":"5","parentPath":"00001","sub_categories":[{"cat_id":"606","cat_name":"Art","short_name":"Art","childNodes":"0","parentPath":"00605-00001"},{"cat_id":"607","cat_name":"Art History","short_name":"Art History","childNodes":"0","parentPath":"00605-00001"},{"cat_id":"608","cat_name":"Dance","short_name":"Dance","childNodes":"0","parentPath":"00605-00001"},{"cat_id":"609","cat_name":"Music","short_name":"Music","childNodes":"0","parentPath":"00605-00001"},{"cat_id":"610","cat_name":"Other Fine Arts","short_name":"Other Fine Arts","childNodes":"0","parentPath":"00605-00001"}]},{"cat_id":"598","cat_name":"Food & Beverage","short_name":"Food & Beverage","childNodes":"6","parentPath":"00001","sub_categories":[{"cat_id":"599","cat_name":"Bartending","short_name":"Bartending","childNodes":"0","parentPath":"00598-00001"},{"cat_id":"600","cat_name":"Cooking","short_name":"Cooking","childNodes":"0","parentPath":"00598-00001"},{"cat_id":"601","cat_name":"Culinary Arts","short_name":"Culinary Arts","childNodes":"0","parentPath":"00598-00001"},{"cat_id":"602","cat_name":"Hospitality","short_name":"Hospitality","childNodes":"0","parentPath":"00598-00001"},{"cat_id":"603","cat_name":"Nutrition","short_name":"Nutrition","childNodes":"0","parentPath":"00598-00001"},{"cat_id":"604","cat_name":"Wine & Spirits","short_name":"Wine & Spirits","childNodes":"0","parentPath":"00598-00001"}]},{"cat_id":"23","cat_name":"Foreign Languages","short_name":"Foreign Languages","childNodes":"14","parentPath":"00001","sub_categories":[{"cat_id":"24","cat_name":"Arabic","short_name":"Arabic","childNodes":"0","parentPath":"00023-00001"},{"cat_id":"25","cat_name":"Chinese","short_name":"Chinese","childNodes":"0","parentPath":"00023-00001"},{"cat_id":"26","cat_name":"French","short_name":"French","childNodes":"0","parentPath":"00023-00001"},{"cat_id":"27","cat_name":"German","short_name":"German","childNodes":"0","parentPath":"00023-00001"},{"cat_id":"28","cat_name":"Hebrew","short_name":"Hebrew","childNodes":"0","parentPath":"00023-00001"},{"cat_id":"29","cat_name":"Italian","short_name":"Italian","childNodes":"0","parentPath":"00023-00001"},{"cat_id":"30","cat_name":"Japanese","short_name":"Japanese","childNodes":"0","parentPath":"00023-00001"},{"cat_id":"31","cat_name":"Korean","short_name":"Korean","childNodes":"0","parentPath":"00023-00001"},{"cat_id":"32","cat_name":"Linguistics","short_name":"Linguistics","childNodes":"0","parentPath":"00023-00001"},{"cat_id":"33","cat_name":"Other Foreign Languages","short_name":"Other Foreign Languages","childNodes":"0","parentPath":"00023-00001"},{"cat_id":"34","cat_name":"Portuguese","short_name":"Portuguese","childNodes":"0","parentPath":"00023-00001"},{"cat_id":"35","cat_name":"Russian","short_name":"Russian","childNodes":"0","parentPath":"00023-00001"},{"cat_id":"36","cat_name":"Spanish","short_name":"Spanish","childNodes":"0","parentPath":"00023-00001"},{"cat_id":"37","cat_name":"TOEFL","short_name":"TOEFL","childNodes":"0","parentPath":"00023-00001"}]},{"cat_id":"396","cat_name":"Health & Fitness","short_name":"Health & Fitness","childNodes":"13","parentPath":"00001","sub_categories":[{"cat_id":"409","cat_name":"ACE Health Coach","short_name":"ACE Health Coach","childNodes":"0","parentPath":"00396-00001"},{"cat_id":"397","cat_name":"Alternative Medicine","short_name":"Alternative Medicine","childNodes":"0","parentPath":"00396-00001"},{"cat_id":"398","cat_name":"Health & Fitness Class","short_name":"Health & Fitness Class","childNodes":"0","parentPath":"00396-00001"},{"cat_id":"399","cat_name":"Health & Human Development","short_name":"Health & Human Development","childNodes":"0","parentPath":"00396-00001"},{"cat_id":"400","cat_name":"Health Class","short_name":"Health Class","childNodes":"0","parentPath":"00396-00001"},{"cat_id":"401","cat_name":"Health Science","short_name":"Health Science","childNodes":"0","parentPath":"00396-00001"},{"cat_id":"402","cat_name":"Human Development","short_name":"Human Development","childNodes":"0","parentPath":"00396-00001"},{"cat_id":"403","cat_name":"Human Growth & Development","short_name":"Human Growth & Development","childNodes":"0","parentPath":"00396-00001"},{"cat_id":"404","cat_name":"Mental Health","short_name":"Mental Health","childNodes":"0","parentPath":"00396-00001"},{"cat_id":"406","cat_name":"NASM CPT","short_name":"NASM CPT","childNodes":"0","parentPath":"00396-00001"},{"cat_id":"405","cat_name":"Public Health","short_name":"Public Health","childNodes":"0","parentPath":"00396-00001"},{"cat_id":"407","cat_name":"Sports & Kinesiology","short_name":"Sports & Kinesiology","childNodes":"0","parentPath":"00396-00001"},{"cat_id":"408","cat_name":"Yoga","short_name":"Yoga","childNodes":"0","parentPath":"00396-00001"}]},{"cat_id":"81","cat_name":"Humanities & Social Studies","short_name":"Humanities & Social Studies","childNodes":"16","parentPath":"00001","sub_categories":[{"cat_id":"90","cat_name":"Anthropology","short_name":"Anthropology","childNodes":"16","parentPath":"00081-00001","sub_categories":[{"cat_id":"91","cat_name":"Anthropology","short_name":"Anthropology","childNodes":"0","parentPath":"00090-00081-00001"},{"cat_id":"92","cat_name":"Archaeology","short_name":"Archaeology","childNodes":"0","parentPath":"00090-00081-00001"},{"cat_id":"93","cat_name":"Biological Anthropology","short_name":"Biological Anthropology","childNodes":"0","parentPath":"00090-00081-00001"},{"cat_id":"94","cat_name":"Cultural Anthropology","short_name":"Cultural Anthropology","childNodes":"0","parentPath":"00090-00081-00001"},{"cat_id":"95","cat_name":"Ethnobotany","short_name":"Ethnobotany","childNodes":"0","parentPath":"00090-00081-00001"},{"cat_id":"96","cat_name":"Evolutionary Genetics","short_name":"Evolutionary Genetics","childNodes":"0","parentPath":"00090-00081-00001"},{"cat_id":"97","cat_name":"Forensic Anthropology","short_name":"Forensic Anthropology","childNodes":"0","parentPath":"00090-00081-00001"},{"cat_id":"98","cat_name":"Fossils","short_name":"Fossils","childNodes":"0","parentPath":"00090-00081-00001"},{"cat_id":"99","cat_name":"Gender Studies","short_name":"Gender Studies","childNodes":"0","parentPath":"00090-00081-00001"},{"cat_id":"100","cat_name":"Human Biology","short_name":"Human Biology","childNodes":"0","parentPath":"00090-00081-00001"},{"cat_id":"101","cat_name":"Human Evolution","short_name":"Human Evolution","childNodes":"0","parentPath":"00090-00081-00001"},{"cat_id":"102","cat_name":"Human Genetics","short_name":"Human Genetics","childNodes":"0","parentPath":"00090-00081-00001"},{"cat_id":"103","cat_name":"Human Reproduction","short_name":"Human Reproduction","childNodes":"0","parentPath":"00090-00081-00001"},{"cat_id":"104","cat_name":"Linguistics","short_name":"Linguistics","childNodes":"0","parentPath":"00090-00081-00001"},{"cat_id":"105","cat_name":"Physical Anthropology","short_name":"Physical Anthropology","childNodes":"0","parentPath":"00090-00081-00001"},{"cat_id":"106","cat_name":"Primate Behavior","short_name":"Primate Behavior","childNodes":"0","parentPath":"00090-00081-00001"}]},{"cat_id":"307","cat_name":"Citizenship","short_name":"Citizenship","childNodes":"0","parentPath":"00081-00001"},{"cat_id":"308","cat_name":"Civics","short_name":"Civics","childNodes":"0","parentPath":"00081-00001"},{"cat_id":"107","cat_name":"Classics","short_name":"Classics","childNodes":"9","parentPath":"00081-00001","sub_categories":[{"cat_id":"108","cat_name":"Ancient Greek","short_name":"Ancient Greek","childNodes":"0","parentPath":"00107-00081-00001"},{"cat_id":"109","cat_name":"Classical Architecture","short_name":"Classical Architecture","childNodes":"0","parentPath":"00107-00081-00001"},{"cat_id":"110","cat_name":"Classical Art","short_name":"Classical Art","childNodes":"0","parentPath":"00107-00081-00001"},{"cat_id":"111","cat_name":"Classical Mythology","short_name":"Classical Mythology","childNodes":"0","parentPath":"00107-00081-00001"},{"cat_id":"112","cat_name":"Greek Civilization","short_name":"Greek Civilization","childNodes":"0","parentPath":"00107-00081-00001"},{"cat_id":"113","cat_name":"Greek History","short_name":"Greek History","childNodes":"0","parentPath":"00107-00081-00001"},{"cat_id":"114","cat_name":"Latin","short_name":"Latin","childNodes":"0","parentPath":"00107-00081-00001"},{"cat_id":"115","cat_name":"Roman Civilization","short_name":"Roman Civilization","childNodes":"0","parentPath":"00107-00081-00001"},{"cat_id":"116","cat_name":"Roman History","short_name":"Roman History","childNodes":"0","parentPath":"00107-00081-00001"}]},{"cat_id":"117","cat_name":"Communications","short_name":"Communications","childNodes":"19","parentPath":"00081-00001","sub_categories":[{"cat_id":"118","cat_name":"Argumentation","short_name":"Argumentation","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"119","cat_name":"Business Communication","short_name":"Business Communication","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"120","cat_name":"Communication Theory","short_name":"Communication Theory","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"121","cat_name":"Communications","short_name":"Communications","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"122","cat_name":"Debate","short_name":"Debate","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"123","cat_name":"Human Relationships","short_name":"Human Relationships","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"124","cat_name":"Interpersonal Communication","short_name":"Interpersonal Communication","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"125","cat_name":"Mass Communication","short_name":"Mass Communication","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"126","cat_name":"Mass Media","short_name":"Mass Media","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"127","cat_name":"Media Studies","short_name":"Media Studies","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"128","cat_name":"Nonverbal Communication","short_name":"Nonverbal Communication","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"129","cat_name":"Organizational Communication","short_name":"Organizational Communication","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"130","cat_name":"Persuasion","short_name":"Persuasion","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"131","cat_name":"Professional Communication","short_name":"Professional Communication","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"132","cat_name":"Public Relations","short_name":"Public Relations","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"133","cat_name":"Public Speaking","short_name":"Public Speaking","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"134","cat_name":"Rhetoric","short_name":"Rhetoric","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"135","cat_name":"Small Group Communication","short_name":"Small Group Communication","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"136","cat_name":"Speech Communication","short_name":"Speech Communication","childNodes":"0","parentPath":"00117-00081-00001"}]},{"cat_id":"137","cat_name":"Counseling","short_name":"Counseling","childNodes":"6","parentPath":"00081-00001","sub_categories":[{"cat_id":"138","cat_name":"Counseling","short_name":"Counseling","childNodes":"1","parentPath":"00137-00081-00001","sub_categories":[{"cat_id":"629","cat_name":"Counseling","short_name":"Accounting","childNodes":"0","parentPath":"00138-00137-00081-00001"}]},{"cat_id":"139","cat_name":"Counseling Theory","short_name":"Counseling Theory","childNodes":"0","parentPath":"00137-00081-00001"},{"cat_id":"140","cat_name":"Family Therapy","short_name":"Family Therapy","childNodes":"0","parentPath":"00137-00081-00001"},{"cat_id":"141","cat_name":"LMSW Exam","short_name":"LMSW Exam","childNodes":"0","parentPath":"00137-00081-00001"},{"cat_id":"142","cat_name":"MFT Exam","short_name":"MFT Exam","childNodes":"0","parentPath":"00137-00081-00001"},{"cat_id":"143","cat_name":"NCMHCE","short_name":"NCMHCE","childNodes":"0","parentPath":"00137-00081-00001"}]},{"cat_id":"144","cat_name":"Criminal Justice","short_name":"Criminal Justice","childNodes":"19","parentPath":"00081-00001","sub_categories":[{"cat_id":"145","cat_name":"CIB","short_name":"CIB","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"146","cat_name":"Civil Rights","short_name":"Civil Rights","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"147","cat_name":"Corrections","short_name":"Corrections","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"148","cat_name":"Crime & Deviance","short_name":"Crime & Deviance","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"149","cat_name":"Crime & Punishment","short_name":"Crime & Punishment","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"150","cat_name":"Criminal Investigation","short_name":"Criminal Investigation","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"151","cat_name":"Criminal Justice","short_name":"Criminal Justice","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"152","cat_name":"Criminal Psychology","short_name":"Criminal Psychology","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"153","cat_name":"Criminology","short_name":"Criminology","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"154","cat_name":"Cybercrime","short_name":"Cybercrime","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"155","cat_name":"Forensic Pathology","short_name":"Forensic Pathology","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"156","cat_name":"Forensic Science","short_name":"Forensic Science","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"157","cat_name":"History of Crime","short_name":"History of Crime","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"158","cat_name":"Intro to Criminology","short_name":"Intro to Criminology","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"159","cat_name":"Law Enforcement","short_name":"Law Enforcement","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"160","cat_name":"Police Administration","short_name":"Police Administration","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"161","cat_name":"Police Studies","short_name":"Police Studies","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"162","cat_name":"Policing","short_name":"Policing","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"163","cat_name":"Prosecution","short_name":"Prosecution","childNodes":"0","parentPath":"00144-00081-00001"}]},{"cat_id":"164","cat_name":"Geography","short_name":"Geography","childNodes":"14","parentPath":"00081-00001","sub_categories":[{"cat_id":"165","cat_name":"Cartography","short_name":"Cartography","childNodes":"0","parentPath":"00164-00081-00001"},{"cat_id":"166","cat_name":"Climate Change","short_name":"Climate Change","childNodes":"0","parentPath":"00164-00081-00001"},{"cat_id":"167","cat_name":"Cultural Geography","short_name":"Cultural Geography","childNodes":"0","parentPath":"00164-00081-00001"},{"cat_id":"168","cat_name":"Environmental Science","short_name":"Environmental Science","childNodes":"0","parentPath":"00164-00081-00001"},{"cat_id":"169","cat_name":"Geography","short_name":"Geography","childNodes":"0","parentPath":"00164-00081-00001"},{"cat_id":"170","cat_name":"Human Geography","short_name":"Human Geography","childNodes":"0","parentPath":"00164-00081-00001"},{"cat_id":"171","cat_name":"Hydrology","short_name":"Hydrology","childNodes":"0","parentPath":"00164-00081-00001"},{"cat_id":"172","cat_name":"Landforms","short_name":"Landforms","childNodes":"0","parentPath":"00164-00081-00001"},{"cat_id":"173","cat_name":"Physical Geography","short_name":"Physical Geography","childNodes":"0","parentPath":"00164-00081-00001"},{"cat_id":"174","cat_name":"U.S. Geography","short_name":"U.S. Geography","childNodes":"0","parentPath":"00164-00081-00001"},{"cat_id":"175","cat_name":"Urban Geography","short_name":"Urban Geography","childNodes":"0","parentPath":"00164-00081-00001"},{"cat_id":"176","cat_name":"Weather and Climate","short_name":"Weather and Climate","childNodes":"0","parentPath":"00164-00081-00001"},{"cat_id":"177","cat_name":"World Capitals","short_name":"World Capitals","childNodes":"0","parentPath":"00164-00081-00001"},{"cat_id":"178","cat_name":"World Geography","short_name":"World Geography","childNodes":"0","parentPath":"00164-00081-00001"}]},{"cat_id":"179","cat_name":"History","short_name":"History","childNodes":"20","parentPath":"00081-00001","sub_categories":[{"cat_id":"180","cat_name":"African History","short_name":"African History","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"181","cat_name":"American West","short_name":"American West","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"182","cat_name":"Ancient Greece","short_name":"Ancient Greece","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"183","cat_name":"Ancient History","short_name":"Ancient History","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"184","cat_name":"Ancient Rome","short_name":"Ancient Rome","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"185","cat_name":"British History","short_name":"British History","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"186","cat_name":"Chinese History","short_name":"Chinese History","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"187","cat_name":"Christian History","short_name":"Christian History","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"188","cat_name":"Cold War","short_name":"Cold War","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"189","cat_name":"European History","short_name":"European History","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"190","cat_name":"Islamic History","short_name":"Islamic History","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"191","cat_name":"Jewish History","short_name":"Jewish History","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"192","cat_name":"Latin American History","short_name":"Latin American History","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"193","cat_name":"Medieval History","short_name":"Medieval History","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"194","cat_name":"Modern World History","short_name":"Modern World History","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"195","cat_name":"US History","short_name":"US History","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"196","cat_name":"Western Civilization","short_name":"Western Civilization","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"197","cat_name":"Womens History","short_name":"Womens History","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"198","cat_name":"World Civilizations","short_name":"World Civilizations","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"199","cat_name":"World History","short_name":"World History","childNodes":"0","parentPath":"00179-00081-00001"}]},{"cat_id":"82","cat_name":"Philosophy","short_name":"Philosophy","childNodes":"7","parentPath":"00081-00001","sub_categories":[{"cat_id":"83","cat_name":"Critical Thinking","short_name":"Critical Thinking","childNodes":"0","parentPath":"00082-00081-00001"},{"cat_id":"84","cat_name":"Ethics","short_name":"Ethics","childNodes":"0","parentPath":"00082-00081-00001"},{"cat_id":"85","cat_name":"Intro Philosophy","short_name":"Intro Philosophy","childNodes":"0","parentPath":"00082-00081-00001"},{"cat_id":"86","cat_name":"Logic","short_name":"Logic","childNodes":"0","parentPath":"00082-00081-00001"},{"cat_id":"87","cat_name":"Philosophy","short_name":"Philosophy","childNodes":"0","parentPath":"00082-00081-00001"},{"cat_id":"88","cat_name":"Plato","short_name":"Plato","childNodes":"0","parentPath":"00082-00081-00001"},{"cat_id":"89","cat_name":"Rhetoric","short_name":"Rhetoric","childNodes":"0","parentPath":"00082-00081-00001"}]},{"cat_id":"200","cat_name":"Political Science","short_name":"Political Science","childNodes":"17","parentPath":"00081-00001","sub_categories":[{"cat_id":"201","cat_name":"American Government","short_name":"American Government","childNodes":"0","parentPath":"00200-00081-00001"},{"cat_id":"202","cat_name":"Comparative Politics","short_name":"Comparative Politics","childNodes":"0","parentPath":"00200-00081-00001"},{"cat_id":"203","cat_name":"Foreign Policy","short_name":"Foreign Policy","childNodes":"0","parentPath":"00200-00081-00001"},{"cat_id":"204","cat_name":"Global Issues","short_name":"Global Issues","childNodes":"0","parentPath":"00200-00081-00001"},{"cat_id":"205","cat_name":"Human Rights","short_name":"Human Rights","childNodes":"0","parentPath":"00200-00081-00001"},{"cat_id":"206","cat_name":"International Political Economy","short_name":"International Political Economy","childNodes":"0","parentPath":"00200-00081-00001"},{"cat_id":"207","cat_name":"International Relations","short_name":"International Relations","childNodes":"0","parentPath":"00200-00081-00001"},{"cat_id":"208","cat_name":"Intro Political Science","short_name":"Intro Political Science","childNodes":"0","parentPath":"00200-00081-00001"},{"cat_id":"209","cat_name":"Policy Analysis","short_name":"Policy Analysis","childNodes":"0","parentPath":"00200-00081-00001"},{"cat_id":"210","cat_name":"Political Science","short_name":"Political Science","childNodes":"0","parentPath":"00200-00081-00001"},{"cat_id":"211","cat_name":"Presidency","short_name":"Presidency","childNodes":"0","parentPath":"00200-00081-00001"},{"cat_id":"212","cat_name":"Public Administration","short_name":"Public Administration","childNodes":"0","parentPath":"00200-00081-00001"},{"cat_id":"213","cat_name":"Public Policy","short_name":"Public Policy","childNodes":"0","parentPath":"00200-00081-00001"},{"cat_id":"214","cat_name":"Social Justice","short_name":"Social Justice","childNodes":"0","parentPath":"00200-00081-00001"},{"cat_id":"215","cat_name":"Terrorism","short_name":"Terrorism","childNodes":"0","parentPath":"00200-00081-00001"},{"cat_id":"216","cat_name":"UK Politics","short_name":"UK Politics","childNodes":"0","parentPath":"00200-00081-00001"},{"cat_id":"217","cat_name":"US Congress Leadership","short_name":"US Congress Leadership","childNodes":"0","parentPath":"00200-00081-00001"}]},{"cat_id":"218","cat_name":"Psychology","short_name":"Psychology","childNodes":"53","parentPath":"00081-00001","sub_categories":[{"cat_id":"219","cat_name":"Behavior Analysis","short_name":"Behavior Analysis","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"220","cat_name":"Behavioral Neuroscience","short_name":"Behavioral Neuroscience","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"221","cat_name":"Behavioral Statistics","short_name":"Behavioral Statistics","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"222","cat_name":"Biological Psychology","short_name":"Biological Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"223","cat_name":"Biopsychology","short_name":"Biopsychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"224","cat_name":"Brain and Behavior","short_name":"Brain and Behavior","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"225","cat_name":"Child Development","short_name":"Child Development","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"226","cat_name":"Child Psychology","short_name":"Child Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"227","cat_name":"Clinical Psychology","short_name":"Clinical Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"228","cat_name":"Cognitive Biases","short_name":"Cognitive Biases","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"229","cat_name":"Cognitive Neuroscience","short_name":"Cognitive Neuroscience","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"230","cat_name":"Cognitive Psychology","short_name":"Cognitive Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"231","cat_name":"Cognitive Science","short_name":"Cognitive Science","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"232","cat_name":"Community Psychology","short_name":"Community Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"233","cat_name":"Cultural Psychology","short_name":"Cultural Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"234","cat_name":"Developmental Psychology","short_name":"Developmental Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"235","cat_name":"Drugs and Behavior","short_name":"Drugs and Behavior","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"236","cat_name":"DSM","short_name":"DSM","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"237","cat_name":"DSM-5","short_name":"DSM-5","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"238","cat_name":"Educational Psychology","short_name":"Educational Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"239","cat_name":"Environmental Psychology","short_name":"Environmental Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"240","cat_name":"Evolutionary Psychology","short_name":"Evolutionary Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"241","cat_name":"Experimental Psychology","short_name":"Experimental Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"242","cat_name":"Forensic Pscyhology","short_name":"Forensic Pscyhology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"243","cat_name":"Gender Psychology","short_name":"Gender Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"244","cat_name":"General Psychology","short_name":"General Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"245","cat_name":"Health Psychology","short_name":"Health Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"246","cat_name":"Human Behavior","short_name":"Human Behavior","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"247","cat_name":"Human Sexuality","short_name":"Human Sexuality","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"248","cat_name":"Industrial Psychology","short_name":"Industrial Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"249","cat_name":"Intro Psychology","short_name":"Intro Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"250","cat_name":"Language Development","short_name":"Language Development","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"251","cat_name":"Learning and Memory","short_name":"Learning and Memory","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"252","cat_name":"Lifespan Psychology","short_name":"Lifespan Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"253","cat_name":"Neuropsychology","short_name":"Neuropsychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"254","cat_name":"Phonology","short_name":"Phonology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"255","cat_name":"Positive Psychology","short_name":"Positive Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"256","cat_name":"Psychobiology","short_name":"Psychobiology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"257","cat_name":"Psychological Assessment","short_name":"Psychological Assessment","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"258","cat_name":"Psychological Statistics","short_name":"Psychological Statistics","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"259","cat_name":"Psychological Testing","short_name":"Psychological Testing","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"260","cat_name":"Psychology","short_name":"Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"261","cat_name":"Psychology Ethics","short_name":"Psychology Ethics","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"262","cat_name":"Psychopathology","short_name":"Psychopathology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"263","cat_name":"Psychopharmacology","short_name":"Psychopharmacology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"264","cat_name":"Psychosocial","short_name":"Psychosocial","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"265","cat_name":"Psychotherapy","short_name":"Psychotherapy","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"266","cat_name":"Psychotropic Drugs","short_name":"Psychotropic Drugs","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"267","cat_name":"Research Methods in Psych","short_name":"Research Methods in Psych","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"268","cat_name":"Sensation and Perception","short_name":"Sensation and Perception","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"269","cat_name":"Social Psychology","short_name":"Social Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"270","cat_name":"The Brain","short_name":"The Brain","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"271","cat_name":"Theories of Personality","short_name":"Theories of Personality","childNodes":"0","parentPath":"00218-00081-00001"}]},{"cat_id":"272","cat_name":"Religion and Bible","short_name":"Religion and Bible","childNodes":"19","parentPath":"00081-00001","sub_categories":[{"cat_id":"273","cat_name":"Aramaic","short_name":"Aramaic","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"274","cat_name":"Bible","short_name":"Bible","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"275","cat_name":"Bible Verses","short_name":"Bible Verses","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"276","cat_name":"Biblical Greek","short_name":"Biblical Greek","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"277","cat_name":"Buddhism","short_name":"Buddhism","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"278","cat_name":"Catholicism","short_name":"Catholicism","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"279","cat_name":"Christianity","short_name":"Christianity","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"280","cat_name":"Hebrew","short_name":"Hebrew","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"281","cat_name":"Hinduism","short_name":"Hinduism","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"282","cat_name":"Islam","short_name":"Islam","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"283","cat_name":"Judaism","short_name":"Judaism","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"284","cat_name":"New Testament","short_name":"New Testament","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"285","cat_name":"Old Testament","short_name":"Old Testament","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"286","cat_name":"Quran","short_name":"Quran","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"287","cat_name":"Religion","short_name":"Religion","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"288","cat_name":"Religious Studies","short_name":"Religious Studies","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"289","cat_name":"Sanskrit","short_name":"Sanskrit","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"290","cat_name":"Theology","short_name":"Theology","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"291","cat_name":"Torah","short_name":"Torah","childNodes":"0","parentPath":"00272-00081-00001"}]},{"cat_id":"309","cat_name":"Social Studies","short_name":"Social Studies","childNodes":"0","parentPath":"00081-00001"},{"cat_id":"310","cat_name":"Social Work","short_name":"Social Work","childNodes":"0","parentPath":"00081-00001"},{"cat_id":"292","cat_name":"Sociology","short_name":"Sociology","childNodes":"14","parentPath":"00081-00001","sub_categories":[{"cat_id":"293","cat_name":"Civil Rights","short_name":"Civil Rights","childNodes":"0","parentPath":"00292-00081-00001"},{"cat_id":"294","cat_name":"Cultural Diversity","short_name":"Cultural Diversity","childNodes":"0","parentPath":"00292-00081-00001"},{"cat_id":"295","cat_name":"Gender Studies","short_name":"Gender Studies","childNodes":"0","parentPath":"00292-00081-00001"},{"cat_id":"296","cat_name":"Group Dynamcis","short_name":"Group Dynamcis","childNodes":"0","parentPath":"00292-00081-00001"},{"cat_id":"297","cat_name":"Intro Sociology","short_name":"Intro Sociology","childNodes":"0","parentPath":"00292-00081-00001"},{"cat_id":"298","cat_name":"Juvenile Delinquency","short_name":"Juvenile Delinquency","childNodes":"0","parentPath":"00292-00081-00001"},{"cat_id":"299","cat_name":"Marriage & Family","short_name":"Marriage & Family","childNodes":"0","parentPath":"00292-00081-00001"},{"cat_id":"300","cat_name":"Mass Media Sociology","short_name":"Mass Media Sociology","childNodes":"0","parentPath":"00292-00081-00001"},{"cat_id":"301","cat_name":"Medical Sociology","short_name":"Medical Sociology","childNodes":"0","parentPath":"00292-00081-00001"},{"cat_id":"302","cat_name":"Social Control","short_name":"Social Control","childNodes":"0","parentPath":"00292-00081-00001"},{"cat_id":"303","cat_name":"Social Institutions","short_name":"Social Institutions","childNodes":"0","parentPath":"00292-00081-00001"},{"cat_id":"304","cat_name":"Sociology","short_name":"Sociology","childNodes":"0","parentPath":"00292-00081-00001"},{"cat_id":"305","cat_name":"Subcultures","short_name":"Subcultures","childNodes":"0","parentPath":"00292-00081-00001"},{"cat_id":"306","cat_name":"Youth Subcultures","short_name":"Youth Subcultures","childNodes":"0","parentPath":"00292-00081-00001"}]}]},{"cat_id":"623","cat_name":"Languages","short_name":"Languages","childNodes":"3","parentPath":"00001","sub_categories":[{"cat_id":"626","cat_name":"Africans","short_name":"Africans","childNodes":"0","parentPath":"00623-00001"},{"cat_id":"624","cat_name":"Xkhosa","short_name":"Xkhosa","childNodes":"0","parentPath":"00623-00001"},{"cat_id":"625","cat_name":"Zulu","short_name":"Zulu","childNodes":"0","parentPath":"00623-00001"}]},{"cat_id":"366","cat_name":"Law","short_name":"Law","childNodes":"29","parentPath":"00001","sub_categories":[{"cat_id":"368","cat_name":"Bankruptcy","short_name":"Bankruptcy","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"369","cat_name":"Bar Exam","short_name":"Bar Exam","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"370","cat_name":"Business Law","short_name":"Business Law","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"371","cat_name":"California Bar Exam","short_name":"California Bar Exam","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"372","cat_name":"CIPP Exam","short_name":"CIPP Exam","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"373","cat_name":"Civil Procedure","short_name":"Civil Procedure","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"374","cat_name":"Constitutional Law","short_name":"Constitutional Law","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"375","cat_name":"Contract Law","short_name":"Contract Law","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"376","cat_name":"Corporate Law","short_name":"Corporate Law","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"377","cat_name":"Criminal Law","short_name":"Criminal Law","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"378","cat_name":"Evidence","short_name":"Evidence","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"379","cat_name":"Family Law","short_name":"Family Law","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"380","cat_name":"Florida Bar Exam","short_name":"Florida Bar Exam","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"381","cat_name":"Insurance Law","short_name":"Insurance Law","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"382","cat_name":"Intellectual Property","short_name":"Intellectual Property","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"383","cat_name":"International Law","short_name":"International Law","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"384","cat_name":"Law","short_name":"Law","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"385","cat_name":"Law & Ethics","short_name":"Law & Ethics","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"386","cat_name":"Legal Studies","short_name":"Legal Studies","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"367","cat_name":"Legislation Acts Policies","short_name":"Legislation Acts Policies","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"387","cat_name":"Litigation","short_name":"Litigation","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"388","cat_name":"MBE","short_name":"MBE","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"389","cat_name":"MPRE","short_name":"MPRE","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"390","cat_name":"Pharmacy Law","short_name":"Pharmacy Law","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"391","cat_name":"Property Law","short_name":"Property Law","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"392","cat_name":"Real Estate Law","short_name":"Real Estate Law","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"393","cat_name":"Texas Bar Exam","short_name":"Texas Bar Exam","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"394","cat_name":"Torts","short_name":"Torts","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"395","cat_name":"Trusts & Estates","short_name":"Trusts & Estates","childNodes":"0","parentPath":"00366-00001"}]},{"cat_id":"311","cat_name":"Mathematics","short_name":"Mathematics","childNodes":"13","parentPath":"00001","sub_categories":[{"cat_id":"312","cat_name":"Algebra","short_name":"Algebra","childNodes":"0","parentPath":"00311-00001"},{"cat_id":"313","cat_name":"Algebra II","short_name":"Algebra II","childNodes":"0","parentPath":"00311-00001"},{"cat_id":"314","cat_name":"Arithmetic","short_name":"Arithmetic","childNodes":"0","parentPath":"00311-00001"},{"cat_id":"315","cat_name":"Calculus","short_name":"Calculus","childNodes":"0","parentPath":"00311-00001"},{"cat_id":"316","cat_name":"Geometry","short_name":"Geometry","childNodes":"0","parentPath":"00311-00001"},{"cat_id":"317","cat_name":"Linear Algebra","short_name":"Linear Algebra","childNodes":"0","parentPath":"00311-00001"},{"cat_id":"318","cat_name":"Math","short_name":"Math","childNodes":"0","parentPath":"00311-00001"},{"cat_id":"319","cat_name":"Multiplication Tables","short_name":"Multiplication Tables","childNodes":"0","parentPath":"00311-00001"},{"cat_id":"320","cat_name":"Precalculus","short_name":"Precalculus","childNodes":"0","parentPath":"00311-00001"},{"cat_id":"321","cat_name":"Probability","short_name":"Probability","childNodes":"0","parentPath":"00311-00001"},{"cat_id":"322","cat_name":"Statistical Methods","short_name":"Statistical Methods","childNodes":"0","parentPath":"00311-00001"},{"cat_id":"323","cat_name":"Statistics","short_name":"Statistics","childNodes":"0","parentPath":"00311-00001"},{"cat_id":"324","cat_name":"Trigonometry","short_name":"Trigonometry","childNodes":"0","parentPath":"00311-00001"}]},{"cat_id":"325","cat_name":"Medical & Nursing","short_name":"Medical & Nursing","childNodes":"15","parentPath":"00001","sub_categories":[{"cat_id":"326","cat_name":"Anatomy","short_name":"Anatomy","childNodes":"0","parentPath":"00325-00001"},{"cat_id":"327","cat_name":"Body Systems","short_name":"Body Systems","childNodes":"0","parentPath":"00325-00001"},{"cat_id":"328","cat_name":"Dentistry","short_name":"Dentistry","childNodes":"0","parentPath":"00325-00001"},{"cat_id":"329","cat_name":"Medical Courses & Subject Areas","short_name":"Medical Courses & Subject Areas","childNodes":"0","parentPath":"00325-00001"},{"cat_id":"330","cat_name":"Medical Exams","short_name":"Medical Exams","childNodes":"0","parentPath":"00325-00001"},{"cat_id":"331","cat_name":"Medical Subspecialties","short_name":"Medical Subspecialties","childNodes":"0","parentPath":"00325-00001"},{"cat_id":"332","cat_name":"Medical Terminology","short_name":"Medical Terminology","childNodes":"0","parentPath":"00325-00001"},{"cat_id":"333","cat_name":"Misc Healthcare Topics","short_name":"Misc Healthcare Topics","childNodes":"0","parentPath":"00325-00001"},{"cat_id":"334","cat_name":"Nursing Courses & Subject Areas","short_name":"Nursing Courses & Subject Areas","childNodes":"0","parentPath":"00325-00001"},{"cat_id":"335","cat_name":"Nursing Subspecialties","short_name":"Nursing Subspecialties","childNodes":"0","parentPath":"00325-00001"},{"cat_id":"336","cat_name":"Other Healthcare Fields","short_name":"Other Healthcare Fields","childNodes":"0","parentPath":"00325-00001"},{"cat_id":"337","cat_name":"Pharmacology","short_name":"Pharmacology","childNodes":"0","parentPath":"00325-00001"},{"cat_id":"338","cat_name":"Physiology","short_name":"Physiology","childNodes":"0","parentPath":"00325-00001"},{"cat_id":"339","cat_name":"Radiology & Diagnostic Imaging","short_name":"Radiology & Diagnostic Imaging","childNodes":"0","parentPath":"00325-00001"},{"cat_id":"340","cat_name":"Veterinary","short_name":"Veterinary","childNodes":"0","parentPath":"00325-00001"}]},{"cat_id":"11","cat_name":"Professional Certifications","short_name":"Professional Certifications","childNodes":"11","parentPath":"00001","sub_categories":[{"cat_id":"12","cat_name":"Bar Exam","short_name":"Bar Exam","childNodes":"0","parentPath":"00011-00001"},{"cat_id":"13","cat_name":"Drivers Ed","short_name":"Drivers Ed","childNodes":"0","parentPath":"00011-00001"},{"cat_id":"14","cat_name":"Financial Exams","short_name":"Financial Exams","childNodes":"0","parentPath":"00011-00001"},{"cat_id":"15","cat_name":"Management Certifications","short_name":"Management Certifications","childNodes":"0","parentPath":"00011-00001"},{"cat_id":"16","cat_name":"Medical & Nursing Certifications","short_name":"Medical & Nursing Certifications","childNodes":"0","parentPath":"00011-00001"},{"cat_id":"17","cat_name":"Military Exams","short_name":"Military Exams","childNodes":"0","parentPath":"00011-00001"},{"cat_id":"18","cat_name":"MPRE","short_name":"MPRE","childNodes":"0","parentPath":"00011-00001"},{"cat_id":"19","cat_name":"Other Certifications","short_name":"Other Certifications","childNodes":"0","parentPath":"00011-00001"},{"cat_id":"20","cat_name":"Technology Certifications","short_name":"Technology Certifications","childNodes":"0","parentPath":"00011-00001"},{"cat_id":"21","cat_name":"TOEFL","short_name":"TOEFL","childNodes":"0","parentPath":"00011-00001"},{"cat_id":"22","cat_name":"Wine & Spirits","short_name":"Wine & Spirits","childNodes":"0","parentPath":"00011-00001"}]},{"cat_id":"611","cat_name":"Random Knowledge","short_name":"Random Knowledge","childNodes":"11","parentPath":"00001","sub_categories":[{"cat_id":"612","cat_name":"Astrology","short_name":"Astrology","childNodes":"0","parentPath":"00611-00001"},{"cat_id":"613","cat_name":"Blackjack","short_name":"Blackjack","childNodes":"0","parentPath":"00611-00001"},{"cat_id":"614","cat_name":"Cultural Literacy","short_name":"Cultural Literacy","childNodes":"0","parentPath":"00611-00001"},{"cat_id":"615","cat_name":"Knowledge Rehab","short_name":"Knowledge Rehab","childNodes":"0","parentPath":"00611-00001"},{"cat_id":"616","cat_name":"Mythology","short_name":"Mythology","childNodes":"0","parentPath":"00611-00001"},{"cat_id":"617","cat_name":"National Capitals","short_name":"National Capitals","childNodes":"0","parentPath":"00611-00001"},{"cat_id":"618","cat_name":"People You Should Know","short_name":"People You Should Know","childNodes":"0","parentPath":"00611-00001"},{"cat_id":"619","cat_name":"Poker","short_name":"Poker","childNodes":"0","parentPath":"00611-00001"},{"cat_id":"620","cat_name":"Quiz Bowl","short_name":"Quiz Bowl","childNodes":"0","parentPath":"00611-00001"},{"cat_id":"621","cat_name":"Sports Trivia","short_name":"Sports Trivia","childNodes":"0","parentPath":"00611-00001"},{"cat_id":"622","cat_name":"Tarot Cards","short_name":"Tarot Cards","childNodes":"0","parentPath":"00611-00001"}]},{"cat_id":"38","cat_name":"Science","short_name":"Science","childNodes":"25","parentPath":"00001","sub_categories":[{"cat_id":"39","cat_name":"Anatomy","short_name":"Anatomy","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"40","cat_name":"Astronomy","short_name":"Astronomy","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"41","cat_name":"Biochemistry","short_name":"Biochemistry","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"42","cat_name":"Biology","short_name":"Biology","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"43","cat_name":"Cellular Biology","short_name":"Cellular Biology","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"44","cat_name":"Chemistry","short_name":"Chemistry","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"45","cat_name":"Earth Science","short_name":"Earth Science","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"46","cat_name":"Environmental Science","short_name":"Environmental Science","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"47","cat_name":"Genetics","short_name":"Genetics","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"48","cat_name":"Geology","short_name":"Geology","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"49","cat_name":"Life Science","short_name":"Life Science","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"50","cat_name":"Marine Biology","short_name":"Marine Biology","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"51","cat_name":"Meteorology","short_name":"Meteorology","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"52","cat_name":"Microbiology","short_name":"Microbiology","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"53","cat_name":"Molecular Biology","short_name":"Molecular Biology","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"54","cat_name":"Natural Science","short_name":"Natural Science","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"55","cat_name":"Oceanography","short_name":"Oceanography","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"56","cat_name":"Organic Chemistry","short_name":"Organic Chemistry","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"57","cat_name":"Periodic Table","short_name":"Periodic Table","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"58","cat_name":"Physical Science","short_name":"Physical Science","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"59","cat_name":"Physics","short_name":"Physics","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"60","cat_name":"Physiology","short_name":"Physiology","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"61","cat_name":"Plant Science","short_name":"Plant Science","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"62","cat_name":"Science Class","short_name":"Science Class","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"63","cat_name":"Zoology","short_name":"Zoology","childNodes":"0","parentPath":"00038-00001"}]},{"cat_id":"525","cat_name":"Technology & Engineering","short_name":"Technology & Engineering","childNodes":"9","parentPath":"00001","sub_categories":[{"cat_id":"526","cat_name":"Architecture","short_name":"Architecture","childNodes":"0","parentPath":"00525-00001"},{"cat_id":"527","cat_name":"Biotechnology","short_name":"Biotechnology","childNodes":"0","parentPath":"00525-00001"},{"cat_id":"528","cat_name":"Computer Programming","short_name":"Computer Programming","childNodes":"22","parentPath":"00525-00001","sub_categories":[{"cat_id":"529","cat_name":"Agile","short_name":"Agile","childNodes":"1","parentPath":"00528-00525-00001","sub_categories":[{"cat_id":"628","cat_name":"test category","short_name":"test category","childNodes":"0","parentPath":"00529-00528-00525-00001"}]},{"cat_id":"530","cat_name":"AWS","short_name":"AWS","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"550","cat_name":"Brainscape Certified (\u00c2\u00a0See All\u00c2\u00a0)","short_name":"Brainscape Certified (\u00c2\u00a0See All\u00c2\u00a0)","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"531","cat_name":"Computer Programming","short_name":"Computer Programming","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"532","cat_name":"Cryptography","short_name":"Cryptography","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"533","cat_name":"Git Commands","short_name":"Git Commands","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"534","cat_name":"HTML","short_name":"HTML","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"535","cat_name":"Java","short_name":"Java","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"536","cat_name":"Javascript","short_name":"Javascript","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"537","cat_name":"Keyboard Shortcuts","short_name":"Keyboard Shortcuts","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"538","cat_name":"Kubernetes","short_name":"Kubernetes","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"539","cat_name":"Linux","short_name":"Linux","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"540","cat_name":"Mac OS","short_name":"Mac OS","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"541","cat_name":"Objective-C","short_name":"Objective-C","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"542","cat_name":"PHP","short_name":"PHP","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"543","cat_name":"Python","short_name":"Python","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"544","cat_name":"React","short_name":"React","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"545","cat_name":"Ruby","short_name":"Ruby","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"546","cat_name":"Ruby on Rails","short_name":"Ruby on Rails","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"547","cat_name":"Swift","short_name":"Swift","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"548","cat_name":"Tech Startup Genius","short_name":"Tech Startup Genius","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"549","cat_name":"Wordpress","short_name":"Wordpress","childNodes":"0","parentPath":"00528-00525-00001"}]},{"cat_id":"551","cat_name":"Computer Science","short_name":"Computer Science","childNodes":"28","parentPath":"00525-00001","sub_categories":[{"cat_id":"552","cat_name":"Algorithms","short_name":"Algorithms","childNodes":"1","parentPath":"00551-00525-00001","sub_categories":[{"cat_id":"630","cat_name":"               ","short_name":"               ","childNodes":"0","parentPath":"00552-00551-00525-00001"}]},{"cat_id":"553","cat_name":"Artificial Intelligence","short_name":"Artificial Intelligence","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"554","cat_name":"Computer Architecture","short_name":"Computer Architecture","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"555","cat_name":"Computer Concepts","short_name":"Computer Concepts","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"556","cat_name":"Computer Literacy","short_name":"Computer Literacy","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"557","cat_name":"Computer Science","short_name":"Computer Science","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"558","cat_name":"Computer Security","short_name":"Computer Security","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"559","cat_name":"Computer Systems","short_name":"Computer Systems","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"560","cat_name":"Computing","short_name":"Computing","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"561","cat_name":"Cybersecurity","short_name":"Cybersecurity","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"562","cat_name":"Data Mining","short_name":"Data Mining","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"563","cat_name":"Data Science","short_name":"Data Science","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"564","cat_name":"Data Structures","short_name":"Data Structures","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"565","cat_name":"Database","short_name":"Database","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"566","cat_name":"Database Management","short_name":"Database Management","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"567","cat_name":"Deep Learning","short_name":"Deep Learning","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"568","cat_name":"Discrete Structures","short_name":"Discrete Structures","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"569","cat_name":"Human Computer Interaction","short_name":"Human Computer Interaction","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"570","cat_name":"Informatics","short_name":"Informatics","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"571","cat_name":"Intro to Computers","short_name":"Intro to Computers","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"572","cat_name":"Machine Learning","short_name":"Machine Learning","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"573","cat_name":"Network Security","short_name":"Network Security","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"574","cat_name":"Networking","short_name":"Networking","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"575","cat_name":"Object Oriented Programming","short_name":"Object Oriented Programming","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"576","cat_name":"Operating Systems","short_name":"Operating Systems","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"577","cat_name":"Programming","short_name":"Programming","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"578","cat_name":"Robotics","short_name":"Robotics","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"579","cat_name":"Software Development","short_name":"Software Development","childNodes":"0","parentPath":"00551-00525-00001"}]},{"cat_id":"581","cat_name":"Engineering","short_name":"Engineering","childNodes":"12","parentPath":"00525-00001","sub_categories":[{"cat_id":"582","cat_name":"Amateur Radio","short_name":"Amateur Radio","childNodes":"0","parentPath":"00581-00525-00001"},{"cat_id":"583","cat_name":"Architecture","short_name":"Architecture","childNodes":"0","parentPath":"00581-00525-00001"},{"cat_id":"584","cat_name":"Circuits","short_name":"Circuits","childNodes":"0","parentPath":"00581-00525-00001"},{"cat_id":"585","cat_name":"Civil Engineering","short_name":"Civil Engineering","childNodes":"0","parentPath":"00581-00525-00001"},{"cat_id":"586","cat_name":"Construction","short_name":"Construction","childNodes":"0","parentPath":"00581-00525-00001"},{"cat_id":"587","cat_name":"Electrical Engineering","short_name":"Electrical Engineering","childNodes":"0","parentPath":"00581-00525-00001"},{"cat_id":"588","cat_name":"Engineering Science","short_name":"Engineering Science","childNodes":"0","parentPath":"00581-00525-00001"},{"cat_id":"589","cat_name":"Materials Science","short_name":"Materials Science","childNodes":"0","parentPath":"00581-00525-00001"},{"cat_id":"590","cat_name":"Mechanical Engineering","short_name":"Mechanical Engineering","childNodes":"0","parentPath":"00581-00525-00001"},{"cat_id":"591","cat_name":"Millwright","short_name":"Millwright","childNodes":"0","parentPath":"00581-00525-00001"},{"cat_id":"592","cat_name":"Morse Code","short_name":"Morse Code","childNodes":"0","parentPath":"00581-00525-00001"},{"cat_id":"593","cat_name":"Power Engineering","short_name":"Power Engineering","childNodes":"0","parentPath":"00581-00525-00001"}]},{"cat_id":"594","cat_name":"Graphic Design","short_name":"Graphic Design","childNodes":"0","parentPath":"00525-00001"},{"cat_id":"595","cat_name":"Information Security","short_name":"Information Security","childNodes":"0","parentPath":"00525-00001"},{"cat_id":"596","cat_name":"Information Technology","short_name":"Information Technology","childNodes":"0","parentPath":"00525-00001"},{"cat_id":"597","cat_name":"Management Information Systems","short_name":"Management Information Systems","childNodes":"0","parentPath":"00525-00001"}]},{"cat_id":"341","cat_name":"Vocations","short_name":"Vocations","childNodes":"24","parentPath":"00001","sub_categories":[{"cat_id":"342","cat_name":"ASVAB","short_name":"ASVAB","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"343","cat_name":"Automotive","short_name":"Automotive","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"344","cat_name":"Aviation","short_name":"Aviation","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"345","cat_name":"Barbering","short_name":"Barbering","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"346","cat_name":"Boating","short_name":"Boating","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"347","cat_name":"Cosmetology","short_name":"Cosmetology","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"348","cat_name":"Diamonds","short_name":"Diamonds","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"349","cat_name":"Electrical","short_name":"Electrical","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"350","cat_name":"Electrician","short_name":"Electrician","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"351","cat_name":"Firefighting","short_name":"Firefighting","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"352","cat_name":"Gardening","short_name":"Gardening","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"353","cat_name":"Home Economics","short_name":"Home Economics","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"354","cat_name":"Horticulture","short_name":"Horticulture","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"355","cat_name":"HVAC","short_name":"HVAC","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"356","cat_name":"Interior Design","short_name":"Interior Design","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"357","cat_name":"Landscape Architecture","short_name":"Landscape Architecture","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"358","cat_name":"Massage Therapy","short_name":"Massage Therapy","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"359","cat_name":"Metallurgy","short_name":"Metallurgy","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"360","cat_name":"Military","short_name":"Military","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"361","cat_name":"Pest Control","short_name":"Pest Control","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"362","cat_name":"Plumbing","short_name":"Plumbing","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"363","cat_name":"Policing","short_name":"Policing","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"364","cat_name":"Wastewater","short_name":"Wastewater","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"365","cat_name":"Welding","short_name":"Welding","childNodes":"0","parentPath":"00341-00001"}]}]}
[02/Feb/2026:01:07:06] (root_api-) token =  IP = 41.193.163.204
[02/Feb/2026:01:07:06] (root_api-) 
[02/Feb/2026:01:07:06] (root_api-) OP=  of page root_api.php
[02/Feb/2026:01:07:06] (root_api-) Final JSON =  { "status":"error",
					"message":"Invalid Session",
					"Errorcode":"err100",
					"data":{}}
[02/Feb/2026:01:07:06] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 41.193.163.204
[02/Feb/2026:01:07:06] (root_api-) op => getFrontCategoryMenu ,categoryId =>  ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => category_data ,
[02/Feb/2026:01:07:06] (root_api-) OP= getFrontCategoryMenu of page root_api.php
[02/Feb/2026:01:07:06] (root_api-) serviceName category_data
[02/Feb/2026:01:07:06] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:01:07:06] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='1' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 01:07:06:0206~2026-02-02 01:07:06~success
[02/Feb/2026:01:07:06] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:01:07:06] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='410' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 01:07:06:0206~2026-02-02 01:07:06~success
[02/Feb/2026:01:07:06] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:01:07:06] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='411' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 01:07:06:0206~2026-02-02 01:07:06~success
[02/Feb/2026:01:07:06] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:01:07:06] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='433' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 01:07:06:0206~2026-02-02 01:07:06~success
[02/Feb/2026:01:07:06] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:01:07:06] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='458' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 01:07:06:0206~2026-02-02 01:07:06~success
[02/Feb/2026:01:07:06] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:01:07:06] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='485' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 01:07:06:0206~2026-02-02 01:07:06~success
[02/Feb/2026:01:07:06] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:01:07:06] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='499' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 01:07:06:0206~2026-02-02 01:07:06~success
[02/Feb/2026:01:07:06] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:01:07:06] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='514' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 01:07:06:0206~2026-02-02 01:07:06~success
[02/Feb/2026:01:07:06] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:01:07:06] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='64' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 01:07:06:0206~2026-02-02 01:07:06~success
[02/Feb/2026:01:07:06] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:01:07:06] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='2' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 01:07:06:0206~2026-02-02 01:07:06~success
[02/Feb/2026:01:07:06] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:01:07:06] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='605' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 01:07:06:0206~2026-02-02 01:07:06~success
[02/Feb/2026:01:07:06] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:01:07:06] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='598' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 01:07:06:0206~2026-02-02 01:07:06~success
[02/Feb/2026:01:07:06] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:01:07:06] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='23' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 01:07:06:0206~2026-02-02 01:07:06~success
[02/Feb/2026:01:07:06] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:01:07:06] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='396' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 01:07:06:0206~2026-02-02 01:07:06~success
[02/Feb/2026:01:07:06] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:01:07:06] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='81' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 01:07:06:0206~2026-02-02 01:07:06~success
[02/Feb/2026:01:07:06] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:01:07:06] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='90' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 01:07:06:0206~2026-02-02 01:07:06~success
[02/Feb/2026:01:07:06] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:01:07:06] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='107' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 01:07:06:0206~2026-02-02 01:07:06~success
[02/Feb/2026:01:07:06] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:01:07:06] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='117' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 01:07:06:0206~2026-02-02 01:07:06~success
[02/Feb/2026:01:07:06] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:01:07:06] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='137' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 01:07:06:0206~2026-02-02 01:07:06~success
[02/Feb/2026:01:07:06] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:01:07:06] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='138' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 01:07:06:0206~2026-02-02 01:07:06~success
[02/Feb/2026:01:07:06] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:01:07:06] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='144' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 01:07:06:0206~2026-02-02 01:07:06~success
[02/Feb/2026:01:07:06] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:01:07:06] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='164' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 01:07:06:0206~2026-02-02 01:07:06~success
[02/Feb/2026:01:07:06] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:01:07:06] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='179' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 01:07:06:0206~2026-02-02 01:07:06~success
[02/Feb/2026:01:07:06] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:01:07:06] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='82' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 01:07:06:0206~2026-02-02 01:07:06~success
[02/Feb/2026:01:07:06] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:01:07:06] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='200' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 01:07:06:0206~2026-02-02 01:07:06~success
[02/Feb/2026:01:07:06] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:01:07:06] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='218' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 01:07:06:0206~2026-02-02 01:07:06~success
[02/Feb/2026:01:07:06] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:01:07:06] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='272' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 01:07:06:0206~2026-02-02 01:07:06~success
[02/Feb/2026:01:07:06] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:01:07:06] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='292' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 01:07:06:0206~2026-02-02 01:07:06~success
[02/Feb/2026:01:07:06] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:01:07:06] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='623' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 01:07:06:0206~2026-02-02 01:07:06~success
[02/Feb/2026:01:07:06] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:01:07:06] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='366' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 01:07:06:0206~2026-02-02 01:07:06~success
[02/Feb/2026:01:07:06] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:01:07:06] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='311' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 01:07:06:0206~2026-02-02 01:07:06~success
[02/Feb/2026:01:07:06] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:01:07:06] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='325' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 01:07:06:0206~2026-02-02 01:07:06~success
[02/Feb/2026:01:07:06] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:01:07:06] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='11' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 01:07:06:0206~2026-02-02 01:07:06~success
[02/Feb/2026:01:07:06] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:01:07:06] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='611' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 01:07:06:0206~2026-02-02 01:07:06~success
[02/Feb/2026:01:07:06] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:01:07:06] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='38' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 01:07:06:0206~2026-02-02 01:07:06~success
[02/Feb/2026:01:07:06] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:01:07:06] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='525' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 01:07:06:0206~2026-02-02 01:07:06~success
[02/Feb/2026:01:07:06] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:01:07:06] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='528' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 01:07:06:0206~2026-02-02 01:07:06~success
[02/Feb/2026:01:07:06] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:01:07:06] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='529' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 01:07:06:0206~2026-02-02 01:07:06~success
[02/Feb/2026:01:07:06] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:01:07:06] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='551' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 01:07:06:0206~2026-02-02 01:07:06~success
[02/Feb/2026:01:07:06] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:01:07:06] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='552' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 01:07:06:0206~2026-02-02 01:07:06~success
[02/Feb/2026:01:07:06] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:01:07:06] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='581' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 01:07:06:0206~2026-02-02 01:07:06~success
[02/Feb/2026:01:07:06] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:01:07:06] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='341' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 01:07:06:0206~2026-02-02 01:07:06~success
[02/Feb/2026:01:07:06] (root_api-) Final JSON =  {"status":"ok","message":"","Errorcode":"","data":[{"cat_id":"410","cat_name":"Business & Finance","short_name":"Business & Finance","childNodes":"7","parentPath":"00001","sub_categories":[{"cat_id":"411","cat_name":"Accounting","short_name":"Accounting","childNodes":"21","parentPath":"00410-00001","sub_categories":[{"cat_id":"431","cat_name":"                    Accounting","short_name":"Taxation Partnership","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"412","cat_name":"AAT","short_name":"AAT","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"413","cat_name":"Accounting","short_name":"Accounting","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"414","cat_name":"Accounting Information Systems","short_name":"Accounting Information Systems","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"415","cat_name":"Accounting Theory","short_name":"Accounting Theory","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"416","cat_name":"Appraisal","short_name":"Appraisal","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"417","cat_name":"Audit","short_name":"Audit","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"418","cat_name":"Audit & Assurance","short_name":"Audit & Assurance","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"419","cat_name":"Audit Sampling","short_name":"Audit Sampling","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"420","cat_name":"Bookkeeping","short_name":"Bookkeeping","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"421","cat_name":"Cost Accounting","short_name":"Cost Accounting","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"422","cat_name":"Enrolled Agent","short_name":"Enrolled Agent","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"423","cat_name":"Federal Income Tax","short_name":"Federal Income Tax","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"627","cat_name":"Finanace","short_name":"Finanace","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"424","cat_name":"Financial Accounting","short_name":"Financial Accounting","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"425","cat_name":"Fraud","short_name":"Fraud","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"426","cat_name":"Income Tax","short_name":"Income Tax","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"427","cat_name":"Intermediate Accounting","short_name":"Intermediate Accounting","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"428","cat_name":"Managerial Accounting","short_name":"Managerial Accounting","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"429","cat_name":"Public Finance","short_name":"Public Finance","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"430","cat_name":"Taxation","short_name":"Taxation","childNodes":"0","parentPath":"00411-00410-00001"}]},{"cat_id":"433","cat_name":"Business","short_name":"Business","childNodes":"23","parentPath":"00410-00001","sub_categories":[{"cat_id":"434","cat_name":"Accounting","short_name":"Accounting","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"435","cat_name":"Advertising","short_name":"Advertising","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"436","cat_name":"Business","short_name":"Business","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"437","cat_name":"Business Analysis","short_name":"Business Analysis","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"438","cat_name":"Business Analytics","short_name":"Business Analytics","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"439","cat_name":"Business Communication","short_name":"Business Communication","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"440","cat_name":"Business Ethics","short_name":"Business Ethics","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"441","cat_name":"Employee Training Demo","short_name":"Employee Training Demo","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"442","cat_name":"Entrepreneurship","short_name":"Entrepreneurship","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"443","cat_name":"Fashion","short_name":"Fashion","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"444","cat_name":"Finance","short_name":"Finance","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"445","cat_name":"Global Business","short_name":"Global Business","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"446","cat_name":"Human Resources","short_name":"Human Resources","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"447","cat_name":"Insurance","short_name":"Insurance","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"448","cat_name":"International Business","short_name":"International Business","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"449","cat_name":"Life & Health Insurance","short_name":"Life & Health Insurance","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"450","cat_name":"Logistics","short_name":"Logistics","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"451","cat_name":"Procurement","short_name":"Procurement","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"452","cat_name":"Project Management","short_name":"Project Management","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"453","cat_name":"Risk Management","short_name":"Risk Management","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"454","cat_name":"Salesforce","short_name":"Salesforce","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"455","cat_name":"Supply Chain","short_name":"Supply Chain","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"456","cat_name":"Tourism","short_name":"Tourism","childNodes":"0","parentPath":"00433-00410-00001"}]},{"cat_id":"458","cat_name":"Economics","short_name":"Economics","childNodes":"24","parentPath":"00410-00001","sub_categories":[{"cat_id":"459","cat_name":"Behavioral Economics","short_name":"Behavioral Economics","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"471","cat_name":"Capital Markets","short_name":"Capital Markets","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"472","cat_name":"Corporate Finance","short_name":"Corporate Finance","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"460","cat_name":"Econometrics","short_name":"Econometrics","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"461","cat_name":"Economic Development","short_name":"Economic Development","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"462","cat_name":"Economics","short_name":"Economics","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"463","cat_name":"Environmental Economics","short_name":"Environmental Economics","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"473","cat_name":"Finance","short_name":"Finance","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"474","cat_name":"Financial Exams","short_name":"Financial Exams","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"475","cat_name":"Financial Literacy","short_name":"Financial Literacy","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"476","cat_name":"Financial Markets","short_name":"Financial Markets","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"477","cat_name":"Fixed Income","short_name":"Fixed Income","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"464","cat_name":"Game Theory","short_name":"Game Theory","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"465","cat_name":"Globalization","short_name":"Globalization","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"478","cat_name":"International Finance","short_name":"International Finance","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"479","cat_name":"Investment Analysis","short_name":"Investment Analysis","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"480","cat_name":"Investment Banking","short_name":"Investment Banking","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"466","cat_name":"Macroeconomics","short_name":"Macroeconomics","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"467","cat_name":"Managerial Economics","short_name":"Managerial Economics","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"468","cat_name":"Microeconomics","short_name":"Microeconomics","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"481","cat_name":"Personal Finance","short_name":"Personal Finance","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"469","cat_name":"Principles of Economics","short_name":"Principles of Economics","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"482","cat_name":"Private Equity","short_name":"Private Equity","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"483","cat_name":"Real Estate Finance","short_name":"Real Estate Finance","childNodes":"0","parentPath":"00458-00410-00001"}]},{"cat_id":"470","cat_name":"Finance","short_name":"Finance","childNodes":"0","parentPath":"00410-00001"},{"cat_id":"485","cat_name":"Management","short_name":"Management","childNodes":"12","parentPath":"00410-00001","sub_categories":[{"cat_id":"486","cat_name":"Business Administration","short_name":"Business Administration","childNodes":"0","parentPath":"00485-00410-00001"},{"cat_id":"487","cat_name":"Business Management","short_name":"Business Management","childNodes":"0","parentPath":"00485-00410-00001"},{"cat_id":"488","cat_name":"Effective Supervisory Practices","short_name":"Effective Supervisory Practices","childNodes":"0","parentPath":"00485-00410-00001"},{"cat_id":"489","cat_name":"Facilities Management","short_name":"Facilities Management","childNodes":"0","parentPath":"00485-00410-00001"},{"cat_id":"490","cat_name":"Healthcare Management","short_name":"Healthcare Management","childNodes":"0","parentPath":"00485-00410-00001"},{"cat_id":"491","cat_name":"Higher Business Management","short_name":"Higher Business Management","childNodes":"0","parentPath":"00485-00410-00001"},{"cat_id":"492","cat_name":"Human Resource Management","short_name":"Human Resource Management","childNodes":"0","parentPath":"00485-00410-00001"},{"cat_id":"493","cat_name":"Management 101","short_name":"Management 101","childNodes":"0","parentPath":"00485-00410-00001"},{"cat_id":"494","cat_name":"Operations Management","short_name":"Operations Management","childNodes":"0","parentPath":"00485-00410-00001"},{"cat_id":"495","cat_name":"Organizational Behavior","short_name":"Organizational Behavior","childNodes":"0","parentPath":"00485-00410-00001"},{"cat_id":"496","cat_name":"Principles of Management","short_name":"Principles of Management","childNodes":"0","parentPath":"00485-00410-00001"},{"cat_id":"497","cat_name":"Strategic Management","short_name":"Strategic Management","childNodes":"0","parentPath":"00485-00410-00001"}]},{"cat_id":"499","cat_name":"Marketing","short_name":"Marketing","childNodes":"13","parentPath":"00410-00001","sub_categories":[{"cat_id":"500","cat_name":"B2B Marketing","short_name":"B2B Marketing","childNodes":"0","parentPath":"00499-00410-00001"},{"cat_id":"501","cat_name":"Consumer Behavior","short_name":"Consumer Behavior","childNodes":"0","parentPath":"00499-00410-00001"},{"cat_id":"502","cat_name":"Digital Marketing","short_name":"Digital Marketing","childNodes":"0","parentPath":"00499-00410-00001"},{"cat_id":"503","cat_name":"Global Marketing","short_name":"Global Marketing","childNodes":"0","parentPath":"00499-00410-00001"},{"cat_id":"504","cat_name":"International Marketing","short_name":"International Marketing","childNodes":"0","parentPath":"00499-00410-00001"},{"cat_id":"505","cat_name":"Marketing 101","short_name":"Marketing 101","childNodes":"0","parentPath":"00499-00410-00001"},{"cat_id":"506","cat_name":"Marketing Research","short_name":"Marketing Research","childNodes":"0","parentPath":"00499-00410-00001"},{"cat_id":"507","cat_name":"Neuromarketing","short_name":"Neuromarketing","childNodes":"0","parentPath":"00499-00410-00001"},{"cat_id":"508","cat_name":"Principles of Marketing","short_name":"Principles of Marketing","childNodes":"0","parentPath":"00499-00410-00001"},{"cat_id":"509","cat_name":"Sales & Marketing","short_name":"Sales & Marketing","childNodes":"0","parentPath":"00499-00410-00001"},{"cat_id":"510","cat_name":"Service Marketing","short_name":"Service Marketing","childNodes":"0","parentPath":"00499-00410-00001"},{"cat_id":"511","cat_name":"Social Marketing","short_name":"Social Marketing","childNodes":"0","parentPath":"00499-00410-00001"},{"cat_id":"512","cat_name":"Strategic Marketing","short_name":"Strategic Marketing","childNodes":"0","parentPath":"00499-00410-00001"}]},{"cat_id":"514","cat_name":"Real Estate","short_name":"Real Estate","childNodes":"10","parentPath":"00410-00001","sub_categories":[{"cat_id":"515","cat_name":"Real Estate - General","short_name":"Real Estate - General","childNodes":"0","parentPath":"00514-00410-00001"},{"cat_id":"516","cat_name":"Real Estate Agent","short_name":"Real Estate Agent","childNodes":"0","parentPath":"00514-00410-00001"},{"cat_id":"517","cat_name":"Real Estate Appraisal","short_name":"Real Estate Appraisal","childNodes":"0","parentPath":"00514-00410-00001"},{"cat_id":"518","cat_name":"Real Estate Exam","short_name":"Real Estate Exam","childNodes":"0","parentPath":"00514-00410-00001"},{"cat_id":"519","cat_name":"Real Estate Finance","short_name":"Real Estate Finance","childNodes":"0","parentPath":"00514-00410-00001"},{"cat_id":"520","cat_name":"Real Estate Law","short_name":"Real Estate Law","childNodes":"0","parentPath":"00514-00410-00001"},{"cat_id":"521","cat_name":"Real Estate Math","short_name":"Real Estate Math","childNodes":"0","parentPath":"00514-00410-00001"},{"cat_id":"522","cat_name":"Real Estate Post-Licensing","short_name":"Real Estate Post-Licensing","childNodes":"0","parentPath":"00514-00410-00001"},{"cat_id":"523","cat_name":"Real Estate Practice","short_name":"Real Estate Practice","childNodes":"0","parentPath":"00514-00410-00001"},{"cat_id":"524","cat_name":"Real Estate Principles","short_name":"Real Estate Principles","childNodes":"0","parentPath":"00514-00410-00001"}]}]},{"cat_id":"64","cat_name":"English","short_name":"English","childNodes":"16","parentPath":"00001","sub_categories":[{"cat_id":"65","cat_name":"American Literature","short_name":"American Literature","childNodes":"0","parentPath":"00064-00001"},{"cat_id":"66","cat_name":"British Literature","short_name":"British Literature","childNodes":"0","parentPath":"00064-00001"},{"cat_id":"67","cat_name":"Classic Novels","short_name":"Classic Novels","childNodes":"0","parentPath":"00064-00001"},{"cat_id":"68","cat_name":"Creative Writing","short_name":"Creative Writing","childNodes":"0","parentPath":"00064-00001"},{"cat_id":"69","cat_name":"English","short_name":"English","childNodes":"0","parentPath":"00064-00001"},{"cat_id":"70","cat_name":"English Grammar","short_name":"English Grammar","childNodes":"0","parentPath":"00064-00001"},{"cat_id":"71","cat_name":"Fiction","short_name":"Fiction","childNodes":"0","parentPath":"00064-00001"},{"cat_id":"72","cat_name":"Higher English","short_name":"Higher English","childNodes":"0","parentPath":"00064-00001"},{"cat_id":"73","cat_name":"Literature","short_name":"Literature","childNodes":"0","parentPath":"00064-00001"},{"cat_id":"74","cat_name":"Medieval literature","short_name":"Medieval literature","childNodes":"0","parentPath":"00064-00001"},{"cat_id":"75","cat_name":"Phonics","short_name":"Phonics","childNodes":"0","parentPath":"00064-00001"},{"cat_id":"76","cat_name":"Poetry","short_name":"Poetry","childNodes":"0","parentPath":"00064-00001"},{"cat_id":"77","cat_name":"Proverbs and Idioms","short_name":"Proverbs and Idioms","childNodes":"0","parentPath":"00064-00001"},{"cat_id":"78","cat_name":"Shakespeare","short_name":"Shakespeare","childNodes":"0","parentPath":"00064-00001"},{"cat_id":"79","cat_name":"Spelling","short_name":"Spelling","childNodes":"0","parentPath":"00064-00001"},{"cat_id":"80","cat_name":"Vocab Builder","short_name":"Vocab Builder","childNodes":"0","parentPath":"00064-00001"}]},{"cat_id":"2","cat_name":"Entrance Exams","short_name":"Entrance Exams","childNodes":"8","parentPath":"00001","sub_categories":[{"cat_id":"3","cat_name":"A Level Exams","short_name":"A Level Exams","childNodes":"0","parentPath":"00002-00001"},{"cat_id":"4","cat_name":"AP Exams","short_name":"AP Exams","childNodes":"0","parentPath":"00002-00001"},{"cat_id":"5","cat_name":"GCSE Exams","short_name":"GCSE Exams","childNodes":"0","parentPath":"00002-00001"},{"cat_id":"6","cat_name":"Graduate Entrance Exams","short_name":"Graduate Entrance Exams","childNodes":"0","parentPath":"00002-00001"},{"cat_id":"7","cat_name":"IGCSE Exams","short_name":"IGCSE Exams","childNodes":"0","parentPath":"00002-00001"},{"cat_id":"8","cat_name":"International Baccalaureate","short_name":"International Baccalaureate","childNodes":"0","parentPath":"00002-00001"},{"cat_id":"9","cat_name":"National 5 Exams","short_name":"National 5 Exams","childNodes":"0","parentPath":"00002-00001"},{"cat_id":"10","cat_name":"University Entrance Exams","short_name":"University Entrance Exams","childNodes":"0","parentPath":"00002-00001"}]},{"cat_id":"605","cat_name":"Fine Arts","short_name":"Fine Arts","childNodes":"5","parentPath":"00001","sub_categories":[{"cat_id":"606","cat_name":"Art","short_name":"Art","childNodes":"0","parentPath":"00605-00001"},{"cat_id":"607","cat_name":"Art History","short_name":"Art History","childNodes":"0","parentPath":"00605-00001"},{"cat_id":"608","cat_name":"Dance","short_name":"Dance","childNodes":"0","parentPath":"00605-00001"},{"cat_id":"609","cat_name":"Music","short_name":"Music","childNodes":"0","parentPath":"00605-00001"},{"cat_id":"610","cat_name":"Other Fine Arts","short_name":"Other Fine Arts","childNodes":"0","parentPath":"00605-00001"}]},{"cat_id":"598","cat_name":"Food & Beverage","short_name":"Food & Beverage","childNodes":"6","parentPath":"00001","sub_categories":[{"cat_id":"599","cat_name":"Bartending","short_name":"Bartending","childNodes":"0","parentPath":"00598-00001"},{"cat_id":"600","cat_name":"Cooking","short_name":"Cooking","childNodes":"0","parentPath":"00598-00001"},{"cat_id":"601","cat_name":"Culinary Arts","short_name":"Culinary Arts","childNodes":"0","parentPath":"00598-00001"},{"cat_id":"602","cat_name":"Hospitality","short_name":"Hospitality","childNodes":"0","parentPath":"00598-00001"},{"cat_id":"603","cat_name":"Nutrition","short_name":"Nutrition","childNodes":"0","parentPath":"00598-00001"},{"cat_id":"604","cat_name":"Wine & Spirits","short_name":"Wine & Spirits","childNodes":"0","parentPath":"00598-00001"}]},{"cat_id":"23","cat_name":"Foreign Languages","short_name":"Foreign Languages","childNodes":"14","parentPath":"00001","sub_categories":[{"cat_id":"24","cat_name":"Arabic","short_name":"Arabic","childNodes":"0","parentPath":"00023-00001"},{"cat_id":"25","cat_name":"Chinese","short_name":"Chinese","childNodes":"0","parentPath":"00023-00001"},{"cat_id":"26","cat_name":"French","short_name":"French","childNodes":"0","parentPath":"00023-00001"},{"cat_id":"27","cat_name":"German","short_name":"German","childNodes":"0","parentPath":"00023-00001"},{"cat_id":"28","cat_name":"Hebrew","short_name":"Hebrew","childNodes":"0","parentPath":"00023-00001"},{"cat_id":"29","cat_name":"Italian","short_name":"Italian","childNodes":"0","parentPath":"00023-00001"},{"cat_id":"30","cat_name":"Japanese","short_name":"Japanese","childNodes":"0","parentPath":"00023-00001"},{"cat_id":"31","cat_name":"Korean","short_name":"Korean","childNodes":"0","parentPath":"00023-00001"},{"cat_id":"32","cat_name":"Linguistics","short_name":"Linguistics","childNodes":"0","parentPath":"00023-00001"},{"cat_id":"33","cat_name":"Other Foreign Languages","short_name":"Other Foreign Languages","childNodes":"0","parentPath":"00023-00001"},{"cat_id":"34","cat_name":"Portuguese","short_name":"Portuguese","childNodes":"0","parentPath":"00023-00001"},{"cat_id":"35","cat_name":"Russian","short_name":"Russian","childNodes":"0","parentPath":"00023-00001"},{"cat_id":"36","cat_name":"Spanish","short_name":"Spanish","childNodes":"0","parentPath":"00023-00001"},{"cat_id":"37","cat_name":"TOEFL","short_name":"TOEFL","childNodes":"0","parentPath":"00023-00001"}]},{"cat_id":"396","cat_name":"Health & Fitness","short_name":"Health & Fitness","childNodes":"13","parentPath":"00001","sub_categories":[{"cat_id":"409","cat_name":"ACE Health Coach","short_name":"ACE Health Coach","childNodes":"0","parentPath":"00396-00001"},{"cat_id":"397","cat_name":"Alternative Medicine","short_name":"Alternative Medicine","childNodes":"0","parentPath":"00396-00001"},{"cat_id":"398","cat_name":"Health & Fitness Class","short_name":"Health & Fitness Class","childNodes":"0","parentPath":"00396-00001"},{"cat_id":"399","cat_name":"Health & Human Development","short_name":"Health & Human Development","childNodes":"0","parentPath":"00396-00001"},{"cat_id":"400","cat_name":"Health Class","short_name":"Health Class","childNodes":"0","parentPath":"00396-00001"},{"cat_id":"401","cat_name":"Health Science","short_name":"Health Science","childNodes":"0","parentPath":"00396-00001"},{"cat_id":"402","cat_name":"Human Development","short_name":"Human Development","childNodes":"0","parentPath":"00396-00001"},{"cat_id":"403","cat_name":"Human Growth & Development","short_name":"Human Growth & Development","childNodes":"0","parentPath":"00396-00001"},{"cat_id":"404","cat_name":"Mental Health","short_name":"Mental Health","childNodes":"0","parentPath":"00396-00001"},{"cat_id":"406","cat_name":"NASM CPT","short_name":"NASM CPT","childNodes":"0","parentPath":"00396-00001"},{"cat_id":"405","cat_name":"Public Health","short_name":"Public Health","childNodes":"0","parentPath":"00396-00001"},{"cat_id":"407","cat_name":"Sports & Kinesiology","short_name":"Sports & Kinesiology","childNodes":"0","parentPath":"00396-00001"},{"cat_id":"408","cat_name":"Yoga","short_name":"Yoga","childNodes":"0","parentPath":"00396-00001"}]},{"cat_id":"81","cat_name":"Humanities & Social Studies","short_name":"Humanities & Social Studies","childNodes":"16","parentPath":"00001","sub_categories":[{"cat_id":"90","cat_name":"Anthropology","short_name":"Anthropology","childNodes":"16","parentPath":"00081-00001","sub_categories":[{"cat_id":"91","cat_name":"Anthropology","short_name":"Anthropology","childNodes":"0","parentPath":"00090-00081-00001"},{"cat_id":"92","cat_name":"Archaeology","short_name":"Archaeology","childNodes":"0","parentPath":"00090-00081-00001"},{"cat_id":"93","cat_name":"Biological Anthropology","short_name":"Biological Anthropology","childNodes":"0","parentPath":"00090-00081-00001"},{"cat_id":"94","cat_name":"Cultural Anthropology","short_name":"Cultural Anthropology","childNodes":"0","parentPath":"00090-00081-00001"},{"cat_id":"95","cat_name":"Ethnobotany","short_name":"Ethnobotany","childNodes":"0","parentPath":"00090-00081-00001"},{"cat_id":"96","cat_name":"Evolutionary Genetics","short_name":"Evolutionary Genetics","childNodes":"0","parentPath":"00090-00081-00001"},{"cat_id":"97","cat_name":"Forensic Anthropology","short_name":"Forensic Anthropology","childNodes":"0","parentPath":"00090-00081-00001"},{"cat_id":"98","cat_name":"Fossils","short_name":"Fossils","childNodes":"0","parentPath":"00090-00081-00001"},{"cat_id":"99","cat_name":"Gender Studies","short_name":"Gender Studies","childNodes":"0","parentPath":"00090-00081-00001"},{"cat_id":"100","cat_name":"Human Biology","short_name":"Human Biology","childNodes":"0","parentPath":"00090-00081-00001"},{"cat_id":"101","cat_name":"Human Evolution","short_name":"Human Evolution","childNodes":"0","parentPath":"00090-00081-00001"},{"cat_id":"102","cat_name":"Human Genetics","short_name":"Human Genetics","childNodes":"0","parentPath":"00090-00081-00001"},{"cat_id":"103","cat_name":"Human Reproduction","short_name":"Human Reproduction","childNodes":"0","parentPath":"00090-00081-00001"},{"cat_id":"104","cat_name":"Linguistics","short_name":"Linguistics","childNodes":"0","parentPath":"00090-00081-00001"},{"cat_id":"105","cat_name":"Physical Anthropology","short_name":"Physical Anthropology","childNodes":"0","parentPath":"00090-00081-00001"},{"cat_id":"106","cat_name":"Primate Behavior","short_name":"Primate Behavior","childNodes":"0","parentPath":"00090-00081-00001"}]},{"cat_id":"307","cat_name":"Citizenship","short_name":"Citizenship","childNodes":"0","parentPath":"00081-00001"},{"cat_id":"308","cat_name":"Civics","short_name":"Civics","childNodes":"0","parentPath":"00081-00001"},{"cat_id":"107","cat_name":"Classics","short_name":"Classics","childNodes":"9","parentPath":"00081-00001","sub_categories":[{"cat_id":"108","cat_name":"Ancient Greek","short_name":"Ancient Greek","childNodes":"0","parentPath":"00107-00081-00001"},{"cat_id":"109","cat_name":"Classical Architecture","short_name":"Classical Architecture","childNodes":"0","parentPath":"00107-00081-00001"},{"cat_id":"110","cat_name":"Classical Art","short_name":"Classical Art","childNodes":"0","parentPath":"00107-00081-00001"},{"cat_id":"111","cat_name":"Classical Mythology","short_name":"Classical Mythology","childNodes":"0","parentPath":"00107-00081-00001"},{"cat_id":"112","cat_name":"Greek Civilization","short_name":"Greek Civilization","childNodes":"0","parentPath":"00107-00081-00001"},{"cat_id":"113","cat_name":"Greek History","short_name":"Greek History","childNodes":"0","parentPath":"00107-00081-00001"},{"cat_id":"114","cat_name":"Latin","short_name":"Latin","childNodes":"0","parentPath":"00107-00081-00001"},{"cat_id":"115","cat_name":"Roman Civilization","short_name":"Roman Civilization","childNodes":"0","parentPath":"00107-00081-00001"},{"cat_id":"116","cat_name":"Roman History","short_name":"Roman History","childNodes":"0","parentPath":"00107-00081-00001"}]},{"cat_id":"117","cat_name":"Communications","short_name":"Communications","childNodes":"19","parentPath":"00081-00001","sub_categories":[{"cat_id":"118","cat_name":"Argumentation","short_name":"Argumentation","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"119","cat_name":"Business Communication","short_name":"Business Communication","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"120","cat_name":"Communication Theory","short_name":"Communication Theory","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"121","cat_name":"Communications","short_name":"Communications","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"122","cat_name":"Debate","short_name":"Debate","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"123","cat_name":"Human Relationships","short_name":"Human Relationships","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"124","cat_name":"Interpersonal Communication","short_name":"Interpersonal Communication","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"125","cat_name":"Mass Communication","short_name":"Mass Communication","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"126","cat_name":"Mass Media","short_name":"Mass Media","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"127","cat_name":"Media Studies","short_name":"Media Studies","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"128","cat_name":"Nonverbal Communication","short_name":"Nonverbal Communication","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"129","cat_name":"Organizational Communication","short_name":"Organizational Communication","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"130","cat_name":"Persuasion","short_name":"Persuasion","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"131","cat_name":"Professional Communication","short_name":"Professional Communication","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"132","cat_name":"Public Relations","short_name":"Public Relations","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"133","cat_name":"Public Speaking","short_name":"Public Speaking","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"134","cat_name":"Rhetoric","short_name":"Rhetoric","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"135","cat_name":"Small Group Communication","short_name":"Small Group Communication","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"136","cat_name":"Speech Communication","short_name":"Speech Communication","childNodes":"0","parentPath":"00117-00081-00001"}]},{"cat_id":"137","cat_name":"Counseling","short_name":"Counseling","childNodes":"6","parentPath":"00081-00001","sub_categories":[{"cat_id":"138","cat_name":"Counseling","short_name":"Counseling","childNodes":"1","parentPath":"00137-00081-00001","sub_categories":[{"cat_id":"629","cat_name":"Counseling","short_name":"Accounting","childNodes":"0","parentPath":"00138-00137-00081-00001"}]},{"cat_id":"139","cat_name":"Counseling Theory","short_name":"Counseling Theory","childNodes":"0","parentPath":"00137-00081-00001"},{"cat_id":"140","cat_name":"Family Therapy","short_name":"Family Therapy","childNodes":"0","parentPath":"00137-00081-00001"},{"cat_id":"141","cat_name":"LMSW Exam","short_name":"LMSW Exam","childNodes":"0","parentPath":"00137-00081-00001"},{"cat_id":"142","cat_name":"MFT Exam","short_name":"MFT Exam","childNodes":"0","parentPath":"00137-00081-00001"},{"cat_id":"143","cat_name":"NCMHCE","short_name":"NCMHCE","childNodes":"0","parentPath":"00137-00081-00001"}]},{"cat_id":"144","cat_name":"Criminal Justice","short_name":"Criminal Justice","childNodes":"19","parentPath":"00081-00001","sub_categories":[{"cat_id":"145","cat_name":"CIB","short_name":"CIB","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"146","cat_name":"Civil Rights","short_name":"Civil Rights","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"147","cat_name":"Corrections","short_name":"Corrections","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"148","cat_name":"Crime & Deviance","short_name":"Crime & Deviance","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"149","cat_name":"Crime & Punishment","short_name":"Crime & Punishment","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"150","cat_name":"Criminal Investigation","short_name":"Criminal Investigation","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"151","cat_name":"Criminal Justice","short_name":"Criminal Justice","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"152","cat_name":"Criminal Psychology","short_name":"Criminal Psychology","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"153","cat_name":"Criminology","short_name":"Criminology","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"154","cat_name":"Cybercrime","short_name":"Cybercrime","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"155","cat_name":"Forensic Pathology","short_name":"Forensic Pathology","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"156","cat_name":"Forensic Science","short_name":"Forensic Science","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"157","cat_name":"History of Crime","short_name":"History of Crime","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"158","cat_name":"Intro to Criminology","short_name":"Intro to Criminology","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"159","cat_name":"Law Enforcement","short_name":"Law Enforcement","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"160","cat_name":"Police Administration","short_name":"Police Administration","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"161","cat_name":"Police Studies","short_name":"Police Studies","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"162","cat_name":"Policing","short_name":"Policing","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"163","cat_name":"Prosecution","short_name":"Prosecution","childNodes":"0","parentPath":"00144-00081-00001"}]},{"cat_id":"164","cat_name":"Geography","short_name":"Geography","childNodes":"14","parentPath":"00081-00001","sub_categories":[{"cat_id":"165","cat_name":"Cartography","short_name":"Cartography","childNodes":"0","parentPath":"00164-00081-00001"},{"cat_id":"166","cat_name":"Climate Change","short_name":"Climate Change","childNodes":"0","parentPath":"00164-00081-00001"},{"cat_id":"167","cat_name":"Cultural Geography","short_name":"Cultural Geography","childNodes":"0","parentPath":"00164-00081-00001"},{"cat_id":"168","cat_name":"Environmental Science","short_name":"Environmental Science","childNodes":"0","parentPath":"00164-00081-00001"},{"cat_id":"169","cat_name":"Geography","short_name":"Geography","childNodes":"0","parentPath":"00164-00081-00001"},{"cat_id":"170","cat_name":"Human Geography","short_name":"Human Geography","childNodes":"0","parentPath":"00164-00081-00001"},{"cat_id":"171","cat_name":"Hydrology","short_name":"Hydrology","childNodes":"0","parentPath":"00164-00081-00001"},{"cat_id":"172","cat_name":"Landforms","short_name":"Landforms","childNodes":"0","parentPath":"00164-00081-00001"},{"cat_id":"173","cat_name":"Physical Geography","short_name":"Physical Geography","childNodes":"0","parentPath":"00164-00081-00001"},{"cat_id":"174","cat_name":"U.S. Geography","short_name":"U.S. Geography","childNodes":"0","parentPath":"00164-00081-00001"},{"cat_id":"175","cat_name":"Urban Geography","short_name":"Urban Geography","childNodes":"0","parentPath":"00164-00081-00001"},{"cat_id":"176","cat_name":"Weather and Climate","short_name":"Weather and Climate","childNodes":"0","parentPath":"00164-00081-00001"},{"cat_id":"177","cat_name":"World Capitals","short_name":"World Capitals","childNodes":"0","parentPath":"00164-00081-00001"},{"cat_id":"178","cat_name":"World Geography","short_name":"World Geography","childNodes":"0","parentPath":"00164-00081-00001"}]},{"cat_id":"179","cat_name":"History","short_name":"History","childNodes":"20","parentPath":"00081-00001","sub_categories":[{"cat_id":"180","cat_name":"African History","short_name":"African History","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"181","cat_name":"American West","short_name":"American West","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"182","cat_name":"Ancient Greece","short_name":"Ancient Greece","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"183","cat_name":"Ancient History","short_name":"Ancient History","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"184","cat_name":"Ancient Rome","short_name":"Ancient Rome","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"185","cat_name":"British History","short_name":"British History","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"186","cat_name":"Chinese History","short_name":"Chinese History","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"187","cat_name":"Christian History","short_name":"Christian History","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"188","cat_name":"Cold War","short_name":"Cold War","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"189","cat_name":"European History","short_name":"European History","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"190","cat_name":"Islamic History","short_name":"Islamic History","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"191","cat_name":"Jewish History","short_name":"Jewish History","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"192","cat_name":"Latin American History","short_name":"Latin American History","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"193","cat_name":"Medieval History","short_name":"Medieval History","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"194","cat_name":"Modern World History","short_name":"Modern World History","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"195","cat_name":"US History","short_name":"US History","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"196","cat_name":"Western Civilization","short_name":"Western Civilization","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"197","cat_name":"Womens History","short_name":"Womens History","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"198","cat_name":"World Civilizations","short_name":"World Civilizations","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"199","cat_name":"World History","short_name":"World History","childNodes":"0","parentPath":"00179-00081-00001"}]},{"cat_id":"82","cat_name":"Philosophy","short_name":"Philosophy","childNodes":"7","parentPath":"00081-00001","sub_categories":[{"cat_id":"83","cat_name":"Critical Thinking","short_name":"Critical Thinking","childNodes":"0","parentPath":"00082-00081-00001"},{"cat_id":"84","cat_name":"Ethics","short_name":"Ethics","childNodes":"0","parentPath":"00082-00081-00001"},{"cat_id":"85","cat_name":"Intro Philosophy","short_name":"Intro Philosophy","childNodes":"0","parentPath":"00082-00081-00001"},{"cat_id":"86","cat_name":"Logic","short_name":"Logic","childNodes":"0","parentPath":"00082-00081-00001"},{"cat_id":"87","cat_name":"Philosophy","short_name":"Philosophy","childNodes":"0","parentPath":"00082-00081-00001"},{"cat_id":"88","cat_name":"Plato","short_name":"Plato","childNodes":"0","parentPath":"00082-00081-00001"},{"cat_id":"89","cat_name":"Rhetoric","short_name":"Rhetoric","childNodes":"0","parentPath":"00082-00081-00001"}]},{"cat_id":"200","cat_name":"Political Science","short_name":"Political Science","childNodes":"17","parentPath":"00081-00001","sub_categories":[{"cat_id":"201","cat_name":"American Government","short_name":"American Government","childNodes":"0","parentPath":"00200-00081-00001"},{"cat_id":"202","cat_name":"Comparative Politics","short_name":"Comparative Politics","childNodes":"0","parentPath":"00200-00081-00001"},{"cat_id":"203","cat_name":"Foreign Policy","short_name":"Foreign Policy","childNodes":"0","parentPath":"00200-00081-00001"},{"cat_id":"204","cat_name":"Global Issues","short_name":"Global Issues","childNodes":"0","parentPath":"00200-00081-00001"},{"cat_id":"205","cat_name":"Human Rights","short_name":"Human Rights","childNodes":"0","parentPath":"00200-00081-00001"},{"cat_id":"206","cat_name":"International Political Economy","short_name":"International Political Economy","childNodes":"0","parentPath":"00200-00081-00001"},{"cat_id":"207","cat_name":"International Relations","short_name":"International Relations","childNodes":"0","parentPath":"00200-00081-00001"},{"cat_id":"208","cat_name":"Intro Political Science","short_name":"Intro Political Science","childNodes":"0","parentPath":"00200-00081-00001"},{"cat_id":"209","cat_name":"Policy Analysis","short_name":"Policy Analysis","childNodes":"0","parentPath":"00200-00081-00001"},{"cat_id":"210","cat_name":"Political Science","short_name":"Political Science","childNodes":"0","parentPath":"00200-00081-00001"},{"cat_id":"211","cat_name":"Presidency","short_name":"Presidency","childNodes":"0","parentPath":"00200-00081-00001"},{"cat_id":"212","cat_name":"Public Administration","short_name":"Public Administration","childNodes":"0","parentPath":"00200-00081-00001"},{"cat_id":"213","cat_name":"Public Policy","short_name":"Public Policy","childNodes":"0","parentPath":"00200-00081-00001"},{"cat_id":"214","cat_name":"Social Justice","short_name":"Social Justice","childNodes":"0","parentPath":"00200-00081-00001"},{"cat_id":"215","cat_name":"Terrorism","short_name":"Terrorism","childNodes":"0","parentPath":"00200-00081-00001"},{"cat_id":"216","cat_name":"UK Politics","short_name":"UK Politics","childNodes":"0","parentPath":"00200-00081-00001"},{"cat_id":"217","cat_name":"US Congress Leadership","short_name":"US Congress Leadership","childNodes":"0","parentPath":"00200-00081-00001"}]},{"cat_id":"218","cat_name":"Psychology","short_name":"Psychology","childNodes":"53","parentPath":"00081-00001","sub_categories":[{"cat_id":"219","cat_name":"Behavior Analysis","short_name":"Behavior Analysis","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"220","cat_name":"Behavioral Neuroscience","short_name":"Behavioral Neuroscience","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"221","cat_name":"Behavioral Statistics","short_name":"Behavioral Statistics","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"222","cat_name":"Biological Psychology","short_name":"Biological Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"223","cat_name":"Biopsychology","short_name":"Biopsychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"224","cat_name":"Brain and Behavior","short_name":"Brain and Behavior","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"225","cat_name":"Child Development","short_name":"Child Development","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"226","cat_name":"Child Psychology","short_name":"Child Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"227","cat_name":"Clinical Psychology","short_name":"Clinical Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"228","cat_name":"Cognitive Biases","short_name":"Cognitive Biases","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"229","cat_name":"Cognitive Neuroscience","short_name":"Cognitive Neuroscience","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"230","cat_name":"Cognitive Psychology","short_name":"Cognitive Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"231","cat_name":"Cognitive Science","short_name":"Cognitive Science","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"232","cat_name":"Community Psychology","short_name":"Community Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"233","cat_name":"Cultural Psychology","short_name":"Cultural Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"234","cat_name":"Developmental Psychology","short_name":"Developmental Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"235","cat_name":"Drugs and Behavior","short_name":"Drugs and Behavior","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"236","cat_name":"DSM","short_name":"DSM","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"237","cat_name":"DSM-5","short_name":"DSM-5","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"238","cat_name":"Educational Psychology","short_name":"Educational Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"239","cat_name":"Environmental Psychology","short_name":"Environmental Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"240","cat_name":"Evolutionary Psychology","short_name":"Evolutionary Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"241","cat_name":"Experimental Psychology","short_name":"Experimental Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"242","cat_name":"Forensic Pscyhology","short_name":"Forensic Pscyhology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"243","cat_name":"Gender Psychology","short_name":"Gender Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"244","cat_name":"General Psychology","short_name":"General Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"245","cat_name":"Health Psychology","short_name":"Health Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"246","cat_name":"Human Behavior","short_name":"Human Behavior","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"247","cat_name":"Human Sexuality","short_name":"Human Sexuality","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"248","cat_name":"Industrial Psychology","short_name":"Industrial Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"249","cat_name":"Intro Psychology","short_name":"Intro Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"250","cat_name":"Language Development","short_name":"Language Development","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"251","cat_name":"Learning and Memory","short_name":"Learning and Memory","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"252","cat_name":"Lifespan Psychology","short_name":"Lifespan Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"253","cat_name":"Neuropsychology","short_name":"Neuropsychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"254","cat_name":"Phonology","short_name":"Phonology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"255","cat_name":"Positive Psychology","short_name":"Positive Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"256","cat_name":"Psychobiology","short_name":"Psychobiology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"257","cat_name":"Psychological Assessment","short_name":"Psychological Assessment","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"258","cat_name":"Psychological Statistics","short_name":"Psychological Statistics","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"259","cat_name":"Psychological Testing","short_name":"Psychological Testing","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"260","cat_name":"Psychology","short_name":"Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"261","cat_name":"Psychology Ethics","short_name":"Psychology Ethics","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"262","cat_name":"Psychopathology","short_name":"Psychopathology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"263","cat_name":"Psychopharmacology","short_name":"Psychopharmacology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"264","cat_name":"Psychosocial","short_name":"Psychosocial","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"265","cat_name":"Psychotherapy","short_name":"Psychotherapy","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"266","cat_name":"Psychotropic Drugs","short_name":"Psychotropic Drugs","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"267","cat_name":"Research Methods in Psych","short_name":"Research Methods in Psych","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"268","cat_name":"Sensation and Perception","short_name":"Sensation and Perception","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"269","cat_name":"Social Psychology","short_name":"Social Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"270","cat_name":"The Brain","short_name":"The Brain","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"271","cat_name":"Theories of Personality","short_name":"Theories of Personality","childNodes":"0","parentPath":"00218-00081-00001"}]},{"cat_id":"272","cat_name":"Religion and Bible","short_name":"Religion and Bible","childNodes":"19","parentPath":"00081-00001","sub_categories":[{"cat_id":"273","cat_name":"Aramaic","short_name":"Aramaic","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"274","cat_name":"Bible","short_name":"Bible","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"275","cat_name":"Bible Verses","short_name":"Bible Verses","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"276","cat_name":"Biblical Greek","short_name":"Biblical Greek","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"277","cat_name":"Buddhism","short_name":"Buddhism","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"278","cat_name":"Catholicism","short_name":"Catholicism","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"279","cat_name":"Christianity","short_name":"Christianity","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"280","cat_name":"Hebrew","short_name":"Hebrew","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"281","cat_name":"Hinduism","short_name":"Hinduism","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"282","cat_name":"Islam","short_name":"Islam","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"283","cat_name":"Judaism","short_name":"Judaism","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"284","cat_name":"New Testament","short_name":"New Testament","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"285","cat_name":"Old Testament","short_name":"Old Testament","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"286","cat_name":"Quran","short_name":"Quran","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"287","cat_name":"Religion","short_name":"Religion","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"288","cat_name":"Religious Studies","short_name":"Religious Studies","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"289","cat_name":"Sanskrit","short_name":"Sanskrit","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"290","cat_name":"Theology","short_name":"Theology","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"291","cat_name":"Torah","short_name":"Torah","childNodes":"0","parentPath":"00272-00081-00001"}]},{"cat_id":"309","cat_name":"Social Studies","short_name":"Social Studies","childNodes":"0","parentPath":"00081-00001"},{"cat_id":"310","cat_name":"Social Work","short_name":"Social Work","childNodes":"0","parentPath":"00081-00001"},{"cat_id":"292","cat_name":"Sociology","short_name":"Sociology","childNodes":"14","parentPath":"00081-00001","sub_categories":[{"cat_id":"293","cat_name":"Civil Rights","short_name":"Civil Rights","childNodes":"0","parentPath":"00292-00081-00001"},{"cat_id":"294","cat_name":"Cultural Diversity","short_name":"Cultural Diversity","childNodes":"0","parentPath":"00292-00081-00001"},{"cat_id":"295","cat_name":"Gender Studies","short_name":"Gender Studies","childNodes":"0","parentPath":"00292-00081-00001"},{"cat_id":"296","cat_name":"Group Dynamcis","short_name":"Group Dynamcis","childNodes":"0","parentPath":"00292-00081-00001"},{"cat_id":"297","cat_name":"Intro Sociology","short_name":"Intro Sociology","childNodes":"0","parentPath":"00292-00081-00001"},{"cat_id":"298","cat_name":"Juvenile Delinquency","short_name":"Juvenile Delinquency","childNodes":"0","parentPath":"00292-00081-00001"},{"cat_id":"299","cat_name":"Marriage & Family","short_name":"Marriage & Family","childNodes":"0","parentPath":"00292-00081-00001"},{"cat_id":"300","cat_name":"Mass Media Sociology","short_name":"Mass Media Sociology","childNodes":"0","parentPath":"00292-00081-00001"},{"cat_id":"301","cat_name":"Medical Sociology","short_name":"Medical Sociology","childNodes":"0","parentPath":"00292-00081-00001"},{"cat_id":"302","cat_name":"Social Control","short_name":"Social Control","childNodes":"0","parentPath":"00292-00081-00001"},{"cat_id":"303","cat_name":"Social Institutions","short_name":"Social Institutions","childNodes":"0","parentPath":"00292-00081-00001"},{"cat_id":"304","cat_name":"Sociology","short_name":"Sociology","childNodes":"0","parentPath":"00292-00081-00001"},{"cat_id":"305","cat_name":"Subcultures","short_name":"Subcultures","childNodes":"0","parentPath":"00292-00081-00001"},{"cat_id":"306","cat_name":"Youth Subcultures","short_name":"Youth Subcultures","childNodes":"0","parentPath":"00292-00081-00001"}]}]},{"cat_id":"623","cat_name":"Languages","short_name":"Languages","childNodes":"3","parentPath":"00001","sub_categories":[{"cat_id":"626","cat_name":"Africans","short_name":"Africans","childNodes":"0","parentPath":"00623-00001"},{"cat_id":"624","cat_name":"Xkhosa","short_name":"Xkhosa","childNodes":"0","parentPath":"00623-00001"},{"cat_id":"625","cat_name":"Zulu","short_name":"Zulu","childNodes":"0","parentPath":"00623-00001"}]},{"cat_id":"366","cat_name":"Law","short_name":"Law","childNodes":"29","parentPath":"00001","sub_categories":[{"cat_id":"368","cat_name":"Bankruptcy","short_name":"Bankruptcy","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"369","cat_name":"Bar Exam","short_name":"Bar Exam","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"370","cat_name":"Business Law","short_name":"Business Law","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"371","cat_name":"California Bar Exam","short_name":"California Bar Exam","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"372","cat_name":"CIPP Exam","short_name":"CIPP Exam","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"373","cat_name":"Civil Procedure","short_name":"Civil Procedure","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"374","cat_name":"Constitutional Law","short_name":"Constitutional Law","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"375","cat_name":"Contract Law","short_name":"Contract Law","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"376","cat_name":"Corporate Law","short_name":"Corporate Law","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"377","cat_name":"Criminal Law","short_name":"Criminal Law","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"378","cat_name":"Evidence","short_name":"Evidence","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"379","cat_name":"Family Law","short_name":"Family Law","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"380","cat_name":"Florida Bar Exam","short_name":"Florida Bar Exam","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"381","cat_name":"Insurance Law","short_name":"Insurance Law","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"382","cat_name":"Intellectual Property","short_name":"Intellectual Property","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"383","cat_name":"International Law","short_name":"International Law","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"384","cat_name":"Law","short_name":"Law","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"385","cat_name":"Law & Ethics","short_name":"Law & Ethics","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"386","cat_name":"Legal Studies","short_name":"Legal Studies","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"367","cat_name":"Legislation Acts Policies","short_name":"Legislation Acts Policies","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"387","cat_name":"Litigation","short_name":"Litigation","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"388","cat_name":"MBE","short_name":"MBE","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"389","cat_name":"MPRE","short_name":"MPRE","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"390","cat_name":"Pharmacy Law","short_name":"Pharmacy Law","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"391","cat_name":"Property Law","short_name":"Property Law","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"392","cat_name":"Real Estate Law","short_name":"Real Estate Law","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"393","cat_name":"Texas Bar Exam","short_name":"Texas Bar Exam","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"394","cat_name":"Torts","short_name":"Torts","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"395","cat_name":"Trusts & Estates","short_name":"Trusts & Estates","childNodes":"0","parentPath":"00366-00001"}]},{"cat_id":"311","cat_name":"Mathematics","short_name":"Mathematics","childNodes":"13","parentPath":"00001","sub_categories":[{"cat_id":"312","cat_name":"Algebra","short_name":"Algebra","childNodes":"0","parentPath":"00311-00001"},{"cat_id":"313","cat_name":"Algebra II","short_name":"Algebra II","childNodes":"0","parentPath":"00311-00001"},{"cat_id":"314","cat_name":"Arithmetic","short_name":"Arithmetic","childNodes":"0","parentPath":"00311-00001"},{"cat_id":"315","cat_name":"Calculus","short_name":"Calculus","childNodes":"0","parentPath":"00311-00001"},{"cat_id":"316","cat_name":"Geometry","short_name":"Geometry","childNodes":"0","parentPath":"00311-00001"},{"cat_id":"317","cat_name":"Linear Algebra","short_name":"Linear Algebra","childNodes":"0","parentPath":"00311-00001"},{"cat_id":"318","cat_name":"Math","short_name":"Math","childNodes":"0","parentPath":"00311-00001"},{"cat_id":"319","cat_name":"Multiplication Tables","short_name":"Multiplication Tables","childNodes":"0","parentPath":"00311-00001"},{"cat_id":"320","cat_name":"Precalculus","short_name":"Precalculus","childNodes":"0","parentPath":"00311-00001"},{"cat_id":"321","cat_name":"Probability","short_name":"Probability","childNodes":"0","parentPath":"00311-00001"},{"cat_id":"322","cat_name":"Statistical Methods","short_name":"Statistical Methods","childNodes":"0","parentPath":"00311-00001"},{"cat_id":"323","cat_name":"Statistics","short_name":"Statistics","childNodes":"0","parentPath":"00311-00001"},{"cat_id":"324","cat_name":"Trigonometry","short_name":"Trigonometry","childNodes":"0","parentPath":"00311-00001"}]},{"cat_id":"325","cat_name":"Medical & Nursing","short_name":"Medical & Nursing","childNodes":"15","parentPath":"00001","sub_categories":[{"cat_id":"326","cat_name":"Anatomy","short_name":"Anatomy","childNodes":"0","parentPath":"00325-00001"},{"cat_id":"327","cat_name":"Body Systems","short_name":"Body Systems","childNodes":"0","parentPath":"00325-00001"},{"cat_id":"328","cat_name":"Dentistry","short_name":"Dentistry","childNodes":"0","parentPath":"00325-00001"},{"cat_id":"329","cat_name":"Medical Courses & Subject Areas","short_name":"Medical Courses & Subject Areas","childNodes":"0","parentPath":"00325-00001"},{"cat_id":"330","cat_name":"Medical Exams","short_name":"Medical Exams","childNodes":"0","parentPath":"00325-00001"},{"cat_id":"331","cat_name":"Medical Subspecialties","short_name":"Medical Subspecialties","childNodes":"0","parentPath":"00325-00001"},{"cat_id":"332","cat_name":"Medical Terminology","short_name":"Medical Terminology","childNodes":"0","parentPath":"00325-00001"},{"cat_id":"333","cat_name":"Misc Healthcare Topics","short_name":"Misc Healthcare Topics","childNodes":"0","parentPath":"00325-00001"},{"cat_id":"334","cat_name":"Nursing Courses & Subject Areas","short_name":"Nursing Courses & Subject Areas","childNodes":"0","parentPath":"00325-00001"},{"cat_id":"335","cat_name":"Nursing Subspecialties","short_name":"Nursing Subspecialties","childNodes":"0","parentPath":"00325-00001"},{"cat_id":"336","cat_name":"Other Healthcare Fields","short_name":"Other Healthcare Fields","childNodes":"0","parentPath":"00325-00001"},{"cat_id":"337","cat_name":"Pharmacology","short_name":"Pharmacology","childNodes":"0","parentPath":"00325-00001"},{"cat_id":"338","cat_name":"Physiology","short_name":"Physiology","childNodes":"0","parentPath":"00325-00001"},{"cat_id":"339","cat_name":"Radiology & Diagnostic Imaging","short_name":"Radiology & Diagnostic Imaging","childNodes":"0","parentPath":"00325-00001"},{"cat_id":"340","cat_name":"Veterinary","short_name":"Veterinary","childNodes":"0","parentPath":"00325-00001"}]},{"cat_id":"11","cat_name":"Professional Certifications","short_name":"Professional Certifications","childNodes":"11","parentPath":"00001","sub_categories":[{"cat_id":"12","cat_name":"Bar Exam","short_name":"Bar Exam","childNodes":"0","parentPath":"00011-00001"},{"cat_id":"13","cat_name":"Drivers Ed","short_name":"Drivers Ed","childNodes":"0","parentPath":"00011-00001"},{"cat_id":"14","cat_name":"Financial Exams","short_name":"Financial Exams","childNodes":"0","parentPath":"00011-00001"},{"cat_id":"15","cat_name":"Management Certifications","short_name":"Management Certifications","childNodes":"0","parentPath":"00011-00001"},{"cat_id":"16","cat_name":"Medical & Nursing Certifications","short_name":"Medical & Nursing Certifications","childNodes":"0","parentPath":"00011-00001"},{"cat_id":"17","cat_name":"Military Exams","short_name":"Military Exams","childNodes":"0","parentPath":"00011-00001"},{"cat_id":"18","cat_name":"MPRE","short_name":"MPRE","childNodes":"0","parentPath":"00011-00001"},{"cat_id":"19","cat_name":"Other Certifications","short_name":"Other Certifications","childNodes":"0","parentPath":"00011-00001"},{"cat_id":"20","cat_name":"Technology Certifications","short_name":"Technology Certifications","childNodes":"0","parentPath":"00011-00001"},{"cat_id":"21","cat_name":"TOEFL","short_name":"TOEFL","childNodes":"0","parentPath":"00011-00001"},{"cat_id":"22","cat_name":"Wine & Spirits","short_name":"Wine & Spirits","childNodes":"0","parentPath":"00011-00001"}]},{"cat_id":"611","cat_name":"Random Knowledge","short_name":"Random Knowledge","childNodes":"11","parentPath":"00001","sub_categories":[{"cat_id":"612","cat_name":"Astrology","short_name":"Astrology","childNodes":"0","parentPath":"00611-00001"},{"cat_id":"613","cat_name":"Blackjack","short_name":"Blackjack","childNodes":"0","parentPath":"00611-00001"},{"cat_id":"614","cat_name":"Cultural Literacy","short_name":"Cultural Literacy","childNodes":"0","parentPath":"00611-00001"},{"cat_id":"615","cat_name":"Knowledge Rehab","short_name":"Knowledge Rehab","childNodes":"0","parentPath":"00611-00001"},{"cat_id":"616","cat_name":"Mythology","short_name":"Mythology","childNodes":"0","parentPath":"00611-00001"},{"cat_id":"617","cat_name":"National Capitals","short_name":"National Capitals","childNodes":"0","parentPath":"00611-00001"},{"cat_id":"618","cat_name":"People You Should Know","short_name":"People You Should Know","childNodes":"0","parentPath":"00611-00001"},{"cat_id":"619","cat_name":"Poker","short_name":"Poker","childNodes":"0","parentPath":"00611-00001"},{"cat_id":"620","cat_name":"Quiz Bowl","short_name":"Quiz Bowl","childNodes":"0","parentPath":"00611-00001"},{"cat_id":"621","cat_name":"Sports Trivia","short_name":"Sports Trivia","childNodes":"0","parentPath":"00611-00001"},{"cat_id":"622","cat_name":"Tarot Cards","short_name":"Tarot Cards","childNodes":"0","parentPath":"00611-00001"}]},{"cat_id":"38","cat_name":"Science","short_name":"Science","childNodes":"25","parentPath":"00001","sub_categories":[{"cat_id":"39","cat_name":"Anatomy","short_name":"Anatomy","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"40","cat_name":"Astronomy","short_name":"Astronomy","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"41","cat_name":"Biochemistry","short_name":"Biochemistry","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"42","cat_name":"Biology","short_name":"Biology","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"43","cat_name":"Cellular Biology","short_name":"Cellular Biology","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"44","cat_name":"Chemistry","short_name":"Chemistry","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"45","cat_name":"Earth Science","short_name":"Earth Science","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"46","cat_name":"Environmental Science","short_name":"Environmental Science","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"47","cat_name":"Genetics","short_name":"Genetics","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"48","cat_name":"Geology","short_name":"Geology","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"49","cat_name":"Life Science","short_name":"Life Science","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"50","cat_name":"Marine Biology","short_name":"Marine Biology","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"51","cat_name":"Meteorology","short_name":"Meteorology","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"52","cat_name":"Microbiology","short_name":"Microbiology","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"53","cat_name":"Molecular Biology","short_name":"Molecular Biology","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"54","cat_name":"Natural Science","short_name":"Natural Science","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"55","cat_name":"Oceanography","short_name":"Oceanography","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"56","cat_name":"Organic Chemistry","short_name":"Organic Chemistry","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"57","cat_name":"Periodic Table","short_name":"Periodic Table","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"58","cat_name":"Physical Science","short_name":"Physical Science","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"59","cat_name":"Physics","short_name":"Physics","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"60","cat_name":"Physiology","short_name":"Physiology","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"61","cat_name":"Plant Science","short_name":"Plant Science","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"62","cat_name":"Science Class","short_name":"Science Class","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"63","cat_name":"Zoology","short_name":"Zoology","childNodes":"0","parentPath":"00038-00001"}]},{"cat_id":"525","cat_name":"Technology & Engineering","short_name":"Technology & Engineering","childNodes":"9","parentPath":"00001","sub_categories":[{"cat_id":"526","cat_name":"Architecture","short_name":"Architecture","childNodes":"0","parentPath":"00525-00001"},{"cat_id":"527","cat_name":"Biotechnology","short_name":"Biotechnology","childNodes":"0","parentPath":"00525-00001"},{"cat_id":"528","cat_name":"Computer Programming","short_name":"Computer Programming","childNodes":"22","parentPath":"00525-00001","sub_categories":[{"cat_id":"529","cat_name":"Agile","short_name":"Agile","childNodes":"1","parentPath":"00528-00525-00001","sub_categories":[{"cat_id":"628","cat_name":"test category","short_name":"test category","childNodes":"0","parentPath":"00529-00528-00525-00001"}]},{"cat_id":"530","cat_name":"AWS","short_name":"AWS","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"550","cat_name":"Brainscape Certified (\u00c2\u00a0See All\u00c2\u00a0)","short_name":"Brainscape Certified (\u00c2\u00a0See All\u00c2\u00a0)","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"531","cat_name":"Computer Programming","short_name":"Computer Programming","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"532","cat_name":"Cryptography","short_name":"Cryptography","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"533","cat_name":"Git Commands","short_name":"Git Commands","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"534","cat_name":"HTML","short_name":"HTML","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"535","cat_name":"Java","short_name":"Java","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"536","cat_name":"Javascript","short_name":"Javascript","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"537","cat_name":"Keyboard Shortcuts","short_name":"Keyboard Shortcuts","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"538","cat_name":"Kubernetes","short_name":"Kubernetes","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"539","cat_name":"Linux","short_name":"Linux","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"540","cat_name":"Mac OS","short_name":"Mac OS","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"541","cat_name":"Objective-C","short_name":"Objective-C","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"542","cat_name":"PHP","short_name":"PHP","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"543","cat_name":"Python","short_name":"Python","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"544","cat_name":"React","short_name":"React","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"545","cat_name":"Ruby","short_name":"Ruby","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"546","cat_name":"Ruby on Rails","short_name":"Ruby on Rails","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"547","cat_name":"Swift","short_name":"Swift","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"548","cat_name":"Tech Startup Genius","short_name":"Tech Startup Genius","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"549","cat_name":"Wordpress","short_name":"Wordpress","childNodes":"0","parentPath":"00528-00525-00001"}]},{"cat_id":"551","cat_name":"Computer Science","short_name":"Computer Science","childNodes":"28","parentPath":"00525-00001","sub_categories":[{"cat_id":"552","cat_name":"Algorithms","short_name":"Algorithms","childNodes":"1","parentPath":"00551-00525-00001","sub_categories":[{"cat_id":"630","cat_name":"               ","short_name":"               ","childNodes":"0","parentPath":"00552-00551-00525-00001"}]},{"cat_id":"553","cat_name":"Artificial Intelligence","short_name":"Artificial Intelligence","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"554","cat_name":"Computer Architecture","short_name":"Computer Architecture","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"555","cat_name":"Computer Concepts","short_name":"Computer Concepts","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"556","cat_name":"Computer Literacy","short_name":"Computer Literacy","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"557","cat_name":"Computer Science","short_name":"Computer Science","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"558","cat_name":"Computer Security","short_name":"Computer Security","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"559","cat_name":"Computer Systems","short_name":"Computer Systems","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"560","cat_name":"Computing","short_name":"Computing","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"561","cat_name":"Cybersecurity","short_name":"Cybersecurity","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"562","cat_name":"Data Mining","short_name":"Data Mining","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"563","cat_name":"Data Science","short_name":"Data Science","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"564","cat_name":"Data Structures","short_name":"Data Structures","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"565","cat_name":"Database","short_name":"Database","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"566","cat_name":"Database Management","short_name":"Database Management","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"567","cat_name":"Deep Learning","short_name":"Deep Learning","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"568","cat_name":"Discrete Structures","short_name":"Discrete Structures","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"569","cat_name":"Human Computer Interaction","short_name":"Human Computer Interaction","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"570","cat_name":"Informatics","short_name":"Informatics","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"571","cat_name":"Intro to Computers","short_name":"Intro to Computers","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"572","cat_name":"Machine Learning","short_name":"Machine Learning","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"573","cat_name":"Network Security","short_name":"Network Security","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"574","cat_name":"Networking","short_name":"Networking","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"575","cat_name":"Object Oriented Programming","short_name":"Object Oriented Programming","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"576","cat_name":"Operating Systems","short_name":"Operating Systems","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"577","cat_name":"Programming","short_name":"Programming","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"578","cat_name":"Robotics","short_name":"Robotics","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"579","cat_name":"Software Development","short_name":"Software Development","childNodes":"0","parentPath":"00551-00525-00001"}]},{"cat_id":"581","cat_name":"Engineering","short_name":"Engineering","childNodes":"12","parentPath":"00525-00001","sub_categories":[{"cat_id":"582","cat_name":"Amateur Radio","short_name":"Amateur Radio","childNodes":"0","parentPath":"00581-00525-00001"},{"cat_id":"583","cat_name":"Architecture","short_name":"Architecture","childNodes":"0","parentPath":"00581-00525-00001"},{"cat_id":"584","cat_name":"Circuits","short_name":"Circuits","childNodes":"0","parentPath":"00581-00525-00001"},{"cat_id":"585","cat_name":"Civil Engineering","short_name":"Civil Engineering","childNodes":"0","parentPath":"00581-00525-00001"},{"cat_id":"586","cat_name":"Construction","short_name":"Construction","childNodes":"0","parentPath":"00581-00525-00001"},{"cat_id":"587","cat_name":"Electrical Engineering","short_name":"Electrical Engineering","childNodes":"0","parentPath":"00581-00525-00001"},{"cat_id":"588","cat_name":"Engineering Science","short_name":"Engineering Science","childNodes":"0","parentPath":"00581-00525-00001"},{"cat_id":"589","cat_name":"Materials Science","short_name":"Materials Science","childNodes":"0","parentPath":"00581-00525-00001"},{"cat_id":"590","cat_name":"Mechanical Engineering","short_name":"Mechanical Engineering","childNodes":"0","parentPath":"00581-00525-00001"},{"cat_id":"591","cat_name":"Millwright","short_name":"Millwright","childNodes":"0","parentPath":"00581-00525-00001"},{"cat_id":"592","cat_name":"Morse Code","short_name":"Morse Code","childNodes":"0","parentPath":"00581-00525-00001"},{"cat_id":"593","cat_name":"Power Engineering","short_name":"Power Engineering","childNodes":"0","parentPath":"00581-00525-00001"}]},{"cat_id":"594","cat_name":"Graphic Design","short_name":"Graphic Design","childNodes":"0","parentPath":"00525-00001"},{"cat_id":"595","cat_name":"Information Security","short_name":"Information Security","childNodes":"0","parentPath":"00525-00001"},{"cat_id":"596","cat_name":"Information Technology","short_name":"Information Technology","childNodes":"0","parentPath":"00525-00001"},{"cat_id":"597","cat_name":"Management Information Systems","short_name":"Management Information Systems","childNodes":"0","parentPath":"00525-00001"}]},{"cat_id":"341","cat_name":"Vocations","short_name":"Vocations","childNodes":"24","parentPath":"00001","sub_categories":[{"cat_id":"342","cat_name":"ASVAB","short_name":"ASVAB","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"343","cat_name":"Automotive","short_name":"Automotive","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"344","cat_name":"Aviation","short_name":"Aviation","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"345","cat_name":"Barbering","short_name":"Barbering","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"346","cat_name":"Boating","short_name":"Boating","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"347","cat_name":"Cosmetology","short_name":"Cosmetology","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"348","cat_name":"Diamonds","short_name":"Diamonds","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"349","cat_name":"Electrical","short_name":"Electrical","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"350","cat_name":"Electrician","short_name":"Electrician","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"351","cat_name":"Firefighting","short_name":"Firefighting","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"352","cat_name":"Gardening","short_name":"Gardening","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"353","cat_name":"Home Economics","short_name":"Home Economics","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"354","cat_name":"Horticulture","short_name":"Horticulture","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"355","cat_name":"HVAC","short_name":"HVAC","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"356","cat_name":"Interior Design","short_name":"Interior Design","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"357","cat_name":"Landscape Architecture","short_name":"Landscape Architecture","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"358","cat_name":"Massage Therapy","short_name":"Massage Therapy","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"359","cat_name":"Metallurgy","short_name":"Metallurgy","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"360","cat_name":"Military","short_name":"Military","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"361","cat_name":"Pest Control","short_name":"Pest Control","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"362","cat_name":"Plumbing","short_name":"Plumbing","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"363","cat_name":"Policing","short_name":"Policing","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"364","cat_name":"Wastewater","short_name":"Wastewater","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"365","cat_name":"Welding","short_name":"Welding","childNodes":"0","parentPath":"00341-00001"}]}]}
[02/Feb/2026:01:18:34] (root_api-) token =  IP = 41.193.163.204
[02/Feb/2026:01:18:34] (root_api-) 
[02/Feb/2026:01:18:34] (root_api-) OP=  of page root_api.php
[02/Feb/2026:01:18:34] (root_api-) Final JSON =  { "status":"error",
					"message":"Invalid Session",
					"Errorcode":"err100",
					"data":{}}
[02/Feb/2026:01:18:34] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 41.193.163.204
[02/Feb/2026:01:18:34] (root_api-) op => getFrontCategoryMenu ,categoryId =>  ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => category_data ,
[02/Feb/2026:01:18:34] (root_api-) OP= getFrontCategoryMenu of page root_api.php
[02/Feb/2026:01:18:34] (root_api-) serviceName category_data
[02/Feb/2026:01:18:34] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:01:18:34] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='1' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 01:18:34:0234~2026-02-02 01:18:34~success
[02/Feb/2026:01:18:34] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:01:18:34] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='410' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 01:18:34:0234~2026-02-02 01:18:34~success
[02/Feb/2026:01:18:34] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:01:18:34] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='411' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 01:18:34:0234~2026-02-02 01:18:34~success
[02/Feb/2026:01:18:34] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:01:18:34] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='433' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 01:18:34:0234~2026-02-02 01:18:34~success
[02/Feb/2026:01:18:34] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:01:18:34] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='458' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 01:18:34:0234~2026-02-02 01:18:34~success
[02/Feb/2026:01:18:34] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:01:18:34] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='485' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 01:18:34:0234~2026-02-02 01:18:34~success
[02/Feb/2026:01:18:34] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:01:18:34] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='499' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 01:18:34:0234~2026-02-02 01:18:34~success
[02/Feb/2026:01:18:34] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:01:18:34] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='514' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 01:18:34:0234~2026-02-02 01:18:34~success
[02/Feb/2026:01:18:34] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:01:18:34] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='64' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 01:18:34:0234~2026-02-02 01:18:34~success
[02/Feb/2026:01:18:34] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:01:18:34] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='2' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 01:18:34:0234~2026-02-02 01:18:34~success
[02/Feb/2026:01:18:34] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:01:18:34] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='605' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 01:18:34:0234~2026-02-02 01:18:34~success
[02/Feb/2026:01:18:34] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:01:18:34] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='598' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 01:18:34:0234~2026-02-02 01:18:34~success
[02/Feb/2026:01:18:34] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:01:18:34] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='23' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 01:18:34:0234~2026-02-02 01:18:34~success
[02/Feb/2026:01:18:34] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:01:18:34] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='396' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 01:18:34:0234~2026-02-02 01:18:34~success
[02/Feb/2026:01:18:34] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:01:18:34] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='81' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 01:18:34:0234~2026-02-02 01:18:34~success
[02/Feb/2026:01:18:34] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:01:18:34] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='90' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 01:18:34:0234~2026-02-02 01:18:34~success
[02/Feb/2026:01:18:34] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:01:18:34] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='107' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 01:18:34:0234~2026-02-02 01:18:34~success
[02/Feb/2026:01:18:34] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:01:18:34] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='117' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 01:18:34:0234~2026-02-02 01:18:34~success
[02/Feb/2026:01:18:34] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:01:18:34] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='137' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 01:18:34:0234~2026-02-02 01:18:34~success
[02/Feb/2026:01:18:34] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:01:18:35] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='138' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 01:18:34:0234~2026-02-02 01:18:35~success
[02/Feb/2026:01:18:35] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:01:18:35] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='144' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 01:18:35:0235~2026-02-02 01:18:35~success
[02/Feb/2026:01:18:35] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:01:18:35] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='164' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 01:18:35:0235~2026-02-02 01:18:35~success
[02/Feb/2026:01:18:35] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:01:18:35] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='179' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 01:18:35:0235~2026-02-02 01:18:35~success
[02/Feb/2026:01:18:35] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:01:18:35] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='82' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 01:18:35:0235~2026-02-02 01:18:35~success
[02/Feb/2026:01:18:35] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:01:18:35] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='200' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 01:18:35:0235~2026-02-02 01:18:35~success
[02/Feb/2026:01:18:35] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:01:18:35] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='218' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 01:18:35:0235~2026-02-02 01:18:35~success
[02/Feb/2026:01:18:35] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:01:18:35] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='272' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 01:18:35:0235~2026-02-02 01:18:35~success
[02/Feb/2026:01:18:35] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:01:18:35] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='292' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 01:18:35:0235~2026-02-02 01:18:35~success
[02/Feb/2026:01:18:35] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:01:18:35] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='623' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 01:18:35:0235~2026-02-02 01:18:35~success
[02/Feb/2026:01:18:35] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:01:18:35] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='366' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 01:18:35:0235~2026-02-02 01:18:35~success
[02/Feb/2026:01:18:35] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:01:18:35] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='311' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 01:18:35:0235~2026-02-02 01:18:35~success
[02/Feb/2026:01:18:35] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:01:18:35] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='325' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 01:18:35:0235~2026-02-02 01:18:35~success
[02/Feb/2026:01:18:35] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:01:18:35] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='11' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 01:18:35:0235~2026-02-02 01:18:35~success
[02/Feb/2026:01:18:35] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:01:18:35] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='611' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 01:18:35:0235~2026-02-02 01:18:35~success
[02/Feb/2026:01:18:35] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:01:18:35] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='38' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 01:18:35:0235~2026-02-02 01:18:35~success
[02/Feb/2026:01:18:35] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:01:18:35] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='525' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 01:18:35:0235~2026-02-02 01:18:35~success
[02/Feb/2026:01:18:35] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:01:18:35] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='528' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 01:18:35:0235~2026-02-02 01:18:35~success
[02/Feb/2026:01:18:35] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:01:18:35] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='529' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 01:18:35:0235~2026-02-02 01:18:35~success
[02/Feb/2026:01:18:35] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:01:18:35] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='551' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 01:18:35:0235~2026-02-02 01:18:35~success
[02/Feb/2026:01:18:35] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:01:18:35] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='552' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 01:18:35:0235~2026-02-02 01:18:35~success
[02/Feb/2026:01:18:35] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:01:18:35] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='581' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 01:18:35:0235~2026-02-02 01:18:35~success
[02/Feb/2026:01:18:35] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:01:18:35] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='341' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 01:18:35:0235~2026-02-02 01:18:35~success
[02/Feb/2026:01:18:35] (root_api-) Final JSON =  {"status":"ok","message":"","Errorcode":"","data":[{"cat_id":"410","cat_name":"Business & Finance","short_name":"Business & Finance","childNodes":"7","parentPath":"00001","sub_categories":[{"cat_id":"411","cat_name":"Accounting","short_name":"Accounting","childNodes":"21","parentPath":"00410-00001","sub_categories":[{"cat_id":"431","cat_name":"                    Accounting","short_name":"Taxation Partnership","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"412","cat_name":"AAT","short_name":"AAT","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"413","cat_name":"Accounting","short_name":"Accounting","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"414","cat_name":"Accounting Information Systems","short_name":"Accounting Information Systems","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"415","cat_name":"Accounting Theory","short_name":"Accounting Theory","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"416","cat_name":"Appraisal","short_name":"Appraisal","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"417","cat_name":"Audit","short_name":"Audit","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"418","cat_name":"Audit & Assurance","short_name":"Audit & Assurance","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"419","cat_name":"Audit Sampling","short_name":"Audit Sampling","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"420","cat_name":"Bookkeeping","short_name":"Bookkeeping","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"421","cat_name":"Cost Accounting","short_name":"Cost Accounting","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"422","cat_name":"Enrolled Agent","short_name":"Enrolled Agent","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"423","cat_name":"Federal Income Tax","short_name":"Federal Income Tax","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"627","cat_name":"Finanace","short_name":"Finanace","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"424","cat_name":"Financial Accounting","short_name":"Financial Accounting","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"425","cat_name":"Fraud","short_name":"Fraud","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"426","cat_name":"Income Tax","short_name":"Income Tax","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"427","cat_name":"Intermediate Accounting","short_name":"Intermediate Accounting","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"428","cat_name":"Managerial Accounting","short_name":"Managerial Accounting","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"429","cat_name":"Public Finance","short_name":"Public Finance","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"430","cat_name":"Taxation","short_name":"Taxation","childNodes":"0","parentPath":"00411-00410-00001"}]},{"cat_id":"433","cat_name":"Business","short_name":"Business","childNodes":"23","parentPath":"00410-00001","sub_categories":[{"cat_id":"434","cat_name":"Accounting","short_name":"Accounting","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"435","cat_name":"Advertising","short_name":"Advertising","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"436","cat_name":"Business","short_name":"Business","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"437","cat_name":"Business Analysis","short_name":"Business Analysis","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"438","cat_name":"Business Analytics","short_name":"Business Analytics","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"439","cat_name":"Business Communication","short_name":"Business Communication","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"440","cat_name":"Business Ethics","short_name":"Business Ethics","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"441","cat_name":"Employee Training Demo","short_name":"Employee Training Demo","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"442","cat_name":"Entrepreneurship","short_name":"Entrepreneurship","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"443","cat_name":"Fashion","short_name":"Fashion","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"444","cat_name":"Finance","short_name":"Finance","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"445","cat_name":"Global Business","short_name":"Global Business","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"446","cat_name":"Human Resources","short_name":"Human Resources","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"447","cat_name":"Insurance","short_name":"Insurance","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"448","cat_name":"International Business","short_name":"International Business","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"449","cat_name":"Life & Health Insurance","short_name":"Life & Health Insurance","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"450","cat_name":"Logistics","short_name":"Logistics","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"451","cat_name":"Procurement","short_name":"Procurement","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"452","cat_name":"Project Management","short_name":"Project Management","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"453","cat_name":"Risk Management","short_name":"Risk Management","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"454","cat_name":"Salesforce","short_name":"Salesforce","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"455","cat_name":"Supply Chain","short_name":"Supply Chain","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"456","cat_name":"Tourism","short_name":"Tourism","childNodes":"0","parentPath":"00433-00410-00001"}]},{"cat_id":"458","cat_name":"Economics","short_name":"Economics","childNodes":"24","parentPath":"00410-00001","sub_categories":[{"cat_id":"459","cat_name":"Behavioral Economics","short_name":"Behavioral Economics","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"471","cat_name":"Capital Markets","short_name":"Capital Markets","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"472","cat_name":"Corporate Finance","short_name":"Corporate Finance","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"460","cat_name":"Econometrics","short_name":"Econometrics","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"461","cat_name":"Economic Development","short_name":"Economic Development","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"462","cat_name":"Economics","short_name":"Economics","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"463","cat_name":"Environmental Economics","short_name":"Environmental Economics","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"473","cat_name":"Finance","short_name":"Finance","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"474","cat_name":"Financial Exams","short_name":"Financial Exams","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"475","cat_name":"Financial Literacy","short_name":"Financial Literacy","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"476","cat_name":"Financial Markets","short_name":"Financial Markets","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"477","cat_name":"Fixed Income","short_name":"Fixed Income","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"464","cat_name":"Game Theory","short_name":"Game Theory","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"465","cat_name":"Globalization","short_name":"Globalization","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"478","cat_name":"International Finance","short_name":"International Finance","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"479","cat_name":"Investment Analysis","short_name":"Investment Analysis","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"480","cat_name":"Investment Banking","short_name":"Investment Banking","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"466","cat_name":"Macroeconomics","short_name":"Macroeconomics","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"467","cat_name":"Managerial Economics","short_name":"Managerial Economics","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"468","cat_name":"Microeconomics","short_name":"Microeconomics","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"481","cat_name":"Personal Finance","short_name":"Personal Finance","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"469","cat_name":"Principles of Economics","short_name":"Principles of Economics","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"482","cat_name":"Private Equity","short_name":"Private Equity","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"483","cat_name":"Real Estate Finance","short_name":"Real Estate Finance","childNodes":"0","parentPath":"00458-00410-00001"}]},{"cat_id":"470","cat_name":"Finance","short_name":"Finance","childNodes":"0","parentPath":"00410-00001"},{"cat_id":"485","cat_name":"Management","short_name":"Management","childNodes":"12","parentPath":"00410-00001","sub_categories":[{"cat_id":"486","cat_name":"Business Administration","short_name":"Business Administration","childNodes":"0","parentPath":"00485-00410-00001"},{"cat_id":"487","cat_name":"Business Management","short_name":"Business Management","childNodes":"0","parentPath":"00485-00410-00001"},{"cat_id":"488","cat_name":"Effective Supervisory Practices","short_name":"Effective Supervisory Practices","childNodes":"0","parentPath":"00485-00410-00001"},{"cat_id":"489","cat_name":"Facilities Management","short_name":"Facilities Management","childNodes":"0","parentPath":"00485-00410-00001"},{"cat_id":"490","cat_name":"Healthcare Management","short_name":"Healthcare Management","childNodes":"0","parentPath":"00485-00410-00001"},{"cat_id":"491","cat_name":"Higher Business Management","short_name":"Higher Business Management","childNodes":"0","parentPath":"00485-00410-00001"},{"cat_id":"492","cat_name":"Human Resource Management","short_name":"Human Resource Management","childNodes":"0","parentPath":"00485-00410-00001"},{"cat_id":"493","cat_name":"Management 101","short_name":"Management 101","childNodes":"0","parentPath":"00485-00410-00001"},{"cat_id":"494","cat_name":"Operations Management","short_name":"Operations Management","childNodes":"0","parentPath":"00485-00410-00001"},{"cat_id":"495","cat_name":"Organizational Behavior","short_name":"Organizational Behavior","childNodes":"0","parentPath":"00485-00410-00001"},{"cat_id":"496","cat_name":"Principles of Management","short_name":"Principles of Management","childNodes":"0","parentPath":"00485-00410-00001"},{"cat_id":"497","cat_name":"Strategic Management","short_name":"Strategic Management","childNodes":"0","parentPath":"00485-00410-00001"}]},{"cat_id":"499","cat_name":"Marketing","short_name":"Marketing","childNodes":"13","parentPath":"00410-00001","sub_categories":[{"cat_id":"500","cat_name":"B2B Marketing","short_name":"B2B Marketing","childNodes":"0","parentPath":"00499-00410-00001"},{"cat_id":"501","cat_name":"Consumer Behavior","short_name":"Consumer Behavior","childNodes":"0","parentPath":"00499-00410-00001"},{"cat_id":"502","cat_name":"Digital Marketing","short_name":"Digital Marketing","childNodes":"0","parentPath":"00499-00410-00001"},{"cat_id":"503","cat_name":"Global Marketing","short_name":"Global Marketing","childNodes":"0","parentPath":"00499-00410-00001"},{"cat_id":"504","cat_name":"International Marketing","short_name":"International Marketing","childNodes":"0","parentPath":"00499-00410-00001"},{"cat_id":"505","cat_name":"Marketing 101","short_name":"Marketing 101","childNodes":"0","parentPath":"00499-00410-00001"},{"cat_id":"506","cat_name":"Marketing Research","short_name":"Marketing Research","childNodes":"0","parentPath":"00499-00410-00001"},{"cat_id":"507","cat_name":"Neuromarketing","short_name":"Neuromarketing","childNodes":"0","parentPath":"00499-00410-00001"},{"cat_id":"508","cat_name":"Principles of Marketing","short_name":"Principles of Marketing","childNodes":"0","parentPath":"00499-00410-00001"},{"cat_id":"509","cat_name":"Sales & Marketing","short_name":"Sales & Marketing","childNodes":"0","parentPath":"00499-00410-00001"},{"cat_id":"510","cat_name":"Service Marketing","short_name":"Service Marketing","childNodes":"0","parentPath":"00499-00410-00001"},{"cat_id":"511","cat_name":"Social Marketing","short_name":"Social Marketing","childNodes":"0","parentPath":"00499-00410-00001"},{"cat_id":"512","cat_name":"Strategic Marketing","short_name":"Strategic Marketing","childNodes":"0","parentPath":"00499-00410-00001"}]},{"cat_id":"514","cat_name":"Real Estate","short_name":"Real Estate","childNodes":"10","parentPath":"00410-00001","sub_categories":[{"cat_id":"515","cat_name":"Real Estate - General","short_name":"Real Estate - General","childNodes":"0","parentPath":"00514-00410-00001"},{"cat_id":"516","cat_name":"Real Estate Agent","short_name":"Real Estate Agent","childNodes":"0","parentPath":"00514-00410-00001"},{"cat_id":"517","cat_name":"Real Estate Appraisal","short_name":"Real Estate Appraisal","childNodes":"0","parentPath":"00514-00410-00001"},{"cat_id":"518","cat_name":"Real Estate Exam","short_name":"Real Estate Exam","childNodes":"0","parentPath":"00514-00410-00001"},{"cat_id":"519","cat_name":"Real Estate Finance","short_name":"Real Estate Finance","childNodes":"0","parentPath":"00514-00410-00001"},{"cat_id":"520","cat_name":"Real Estate Law","short_name":"Real Estate Law","childNodes":"0","parentPath":"00514-00410-00001"},{"cat_id":"521","cat_name":"Real Estate Math","short_name":"Real Estate Math","childNodes":"0","parentPath":"00514-00410-00001"},{"cat_id":"522","cat_name":"Real Estate Post-Licensing","short_name":"Real Estate Post-Licensing","childNodes":"0","parentPath":"00514-00410-00001"},{"cat_id":"523","cat_name":"Real Estate Practice","short_name":"Real Estate Practice","childNodes":"0","parentPath":"00514-00410-00001"},{"cat_id":"524","cat_name":"Real Estate Principles","short_name":"Real Estate Principles","childNodes":"0","parentPath":"00514-00410-00001"}]}]},{"cat_id":"64","cat_name":"English","short_name":"English","childNodes":"16","parentPath":"00001","sub_categories":[{"cat_id":"65","cat_name":"American Literature","short_name":"American Literature","childNodes":"0","parentPath":"00064-00001"},{"cat_id":"66","cat_name":"British Literature","short_name":"British Literature","childNodes":"0","parentPath":"00064-00001"},{"cat_id":"67","cat_name":"Classic Novels","short_name":"Classic Novels","childNodes":"0","parentPath":"00064-00001"},{"cat_id":"68","cat_name":"Creative Writing","short_name":"Creative Writing","childNodes":"0","parentPath":"00064-00001"},{"cat_id":"69","cat_name":"English","short_name":"English","childNodes":"0","parentPath":"00064-00001"},{"cat_id":"70","cat_name":"English Grammar","short_name":"English Grammar","childNodes":"0","parentPath":"00064-00001"},{"cat_id":"71","cat_name":"Fiction","short_name":"Fiction","childNodes":"0","parentPath":"00064-00001"},{"cat_id":"72","cat_name":"Higher English","short_name":"Higher English","childNodes":"0","parentPath":"00064-00001"},{"cat_id":"73","cat_name":"Literature","short_name":"Literature","childNodes":"0","parentPath":"00064-00001"},{"cat_id":"74","cat_name":"Medieval literature","short_name":"Medieval literature","childNodes":"0","parentPath":"00064-00001"},{"cat_id":"75","cat_name":"Phonics","short_name":"Phonics","childNodes":"0","parentPath":"00064-00001"},{"cat_id":"76","cat_name":"Poetry","short_name":"Poetry","childNodes":"0","parentPath":"00064-00001"},{"cat_id":"77","cat_name":"Proverbs and Idioms","short_name":"Proverbs and Idioms","childNodes":"0","parentPath":"00064-00001"},{"cat_id":"78","cat_name":"Shakespeare","short_name":"Shakespeare","childNodes":"0","parentPath":"00064-00001"},{"cat_id":"79","cat_name":"Spelling","short_name":"Spelling","childNodes":"0","parentPath":"00064-00001"},{"cat_id":"80","cat_name":"Vocab Builder","short_name":"Vocab Builder","childNodes":"0","parentPath":"00064-00001"}]},{"cat_id":"2","cat_name":"Entrance Exams","short_name":"Entrance Exams","childNodes":"8","parentPath":"00001","sub_categories":[{"cat_id":"3","cat_name":"A Level Exams","short_name":"A Level Exams","childNodes":"0","parentPath":"00002-00001"},{"cat_id":"4","cat_name":"AP Exams","short_name":"AP Exams","childNodes":"0","parentPath":"00002-00001"},{"cat_id":"5","cat_name":"GCSE Exams","short_name":"GCSE Exams","childNodes":"0","parentPath":"00002-00001"},{"cat_id":"6","cat_name":"Graduate Entrance Exams","short_name":"Graduate Entrance Exams","childNodes":"0","parentPath":"00002-00001"},{"cat_id":"7","cat_name":"IGCSE Exams","short_name":"IGCSE Exams","childNodes":"0","parentPath":"00002-00001"},{"cat_id":"8","cat_name":"International Baccalaureate","short_name":"International Baccalaureate","childNodes":"0","parentPath":"00002-00001"},{"cat_id":"9","cat_name":"National 5 Exams","short_name":"National 5 Exams","childNodes":"0","parentPath":"00002-00001"},{"cat_id":"10","cat_name":"University Entrance Exams","short_name":"University Entrance Exams","childNodes":"0","parentPath":"00002-00001"}]},{"cat_id":"605","cat_name":"Fine Arts","short_name":"Fine Arts","childNodes":"5","parentPath":"00001","sub_categories":[{"cat_id":"606","cat_name":"Art","short_name":"Art","childNodes":"0","parentPath":"00605-00001"},{"cat_id":"607","cat_name":"Art History","short_name":"Art History","childNodes":"0","parentPath":"00605-00001"},{"cat_id":"608","cat_name":"Dance","short_name":"Dance","childNodes":"0","parentPath":"00605-00001"},{"cat_id":"609","cat_name":"Music","short_name":"Music","childNodes":"0","parentPath":"00605-00001"},{"cat_id":"610","cat_name":"Other Fine Arts","short_name":"Other Fine Arts","childNodes":"0","parentPath":"00605-00001"}]},{"cat_id":"598","cat_name":"Food & Beverage","short_name":"Food & Beverage","childNodes":"6","parentPath":"00001","sub_categories":[{"cat_id":"599","cat_name":"Bartending","short_name":"Bartending","childNodes":"0","parentPath":"00598-00001"},{"cat_id":"600","cat_name":"Cooking","short_name":"Cooking","childNodes":"0","parentPath":"00598-00001"},{"cat_id":"601","cat_name":"Culinary Arts","short_name":"Culinary Arts","childNodes":"0","parentPath":"00598-00001"},{"cat_id":"602","cat_name":"Hospitality","short_name":"Hospitality","childNodes":"0","parentPath":"00598-00001"},{"cat_id":"603","cat_name":"Nutrition","short_name":"Nutrition","childNodes":"0","parentPath":"00598-00001"},{"cat_id":"604","cat_name":"Wine & Spirits","short_name":"Wine & Spirits","childNodes":"0","parentPath":"00598-00001"}]},{"cat_id":"23","cat_name":"Foreign Languages","short_name":"Foreign Languages","childNodes":"14","parentPath":"00001","sub_categories":[{"cat_id":"24","cat_name":"Arabic","short_name":"Arabic","childNodes":"0","parentPath":"00023-00001"},{"cat_id":"25","cat_name":"Chinese","short_name":"Chinese","childNodes":"0","parentPath":"00023-00001"},{"cat_id":"26","cat_name":"French","short_name":"French","childNodes":"0","parentPath":"00023-00001"},{"cat_id":"27","cat_name":"German","short_name":"German","childNodes":"0","parentPath":"00023-00001"},{"cat_id":"28","cat_name":"Hebrew","short_name":"Hebrew","childNodes":"0","parentPath":"00023-00001"},{"cat_id":"29","cat_name":"Italian","short_name":"Italian","childNodes":"0","parentPath":"00023-00001"},{"cat_id":"30","cat_name":"Japanese","short_name":"Japanese","childNodes":"0","parentPath":"00023-00001"},{"cat_id":"31","cat_name":"Korean","short_name":"Korean","childNodes":"0","parentPath":"00023-00001"},{"cat_id":"32","cat_name":"Linguistics","short_name":"Linguistics","childNodes":"0","parentPath":"00023-00001"},{"cat_id":"33","cat_name":"Other Foreign Languages","short_name":"Other Foreign Languages","childNodes":"0","parentPath":"00023-00001"},{"cat_id":"34","cat_name":"Portuguese","short_name":"Portuguese","childNodes":"0","parentPath":"00023-00001"},{"cat_id":"35","cat_name":"Russian","short_name":"Russian","childNodes":"0","parentPath":"00023-00001"},{"cat_id":"36","cat_name":"Spanish","short_name":"Spanish","childNodes":"0","parentPath":"00023-00001"},{"cat_id":"37","cat_name":"TOEFL","short_name":"TOEFL","childNodes":"0","parentPath":"00023-00001"}]},{"cat_id":"396","cat_name":"Health & Fitness","short_name":"Health & Fitness","childNodes":"13","parentPath":"00001","sub_categories":[{"cat_id":"409","cat_name":"ACE Health Coach","short_name":"ACE Health Coach","childNodes":"0","parentPath":"00396-00001"},{"cat_id":"397","cat_name":"Alternative Medicine","short_name":"Alternative Medicine","childNodes":"0","parentPath":"00396-00001"},{"cat_id":"398","cat_name":"Health & Fitness Class","short_name":"Health & Fitness Class","childNodes":"0","parentPath":"00396-00001"},{"cat_id":"399","cat_name":"Health & Human Development","short_name":"Health & Human Development","childNodes":"0","parentPath":"00396-00001"},{"cat_id":"400","cat_name":"Health Class","short_name":"Health Class","childNodes":"0","parentPath":"00396-00001"},{"cat_id":"401","cat_name":"Health Science","short_name":"Health Science","childNodes":"0","parentPath":"00396-00001"},{"cat_id":"402","cat_name":"Human Development","short_name":"Human Development","childNodes":"0","parentPath":"00396-00001"},{"cat_id":"403","cat_name":"Human Growth & Development","short_name":"Human Growth & Development","childNodes":"0","parentPath":"00396-00001"},{"cat_id":"404","cat_name":"Mental Health","short_name":"Mental Health","childNodes":"0","parentPath":"00396-00001"},{"cat_id":"406","cat_name":"NASM CPT","short_name":"NASM CPT","childNodes":"0","parentPath":"00396-00001"},{"cat_id":"405","cat_name":"Public Health","short_name":"Public Health","childNodes":"0","parentPath":"00396-00001"},{"cat_id":"407","cat_name":"Sports & Kinesiology","short_name":"Sports & Kinesiology","childNodes":"0","parentPath":"00396-00001"},{"cat_id":"408","cat_name":"Yoga","short_name":"Yoga","childNodes":"0","parentPath":"00396-00001"}]},{"cat_id":"81","cat_name":"Humanities & Social Studies","short_name":"Humanities & Social Studies","childNodes":"16","parentPath":"00001","sub_categories":[{"cat_id":"90","cat_name":"Anthropology","short_name":"Anthropology","childNodes":"16","parentPath":"00081-00001","sub_categories":[{"cat_id":"91","cat_name":"Anthropology","short_name":"Anthropology","childNodes":"0","parentPath":"00090-00081-00001"},{"cat_id":"92","cat_name":"Archaeology","short_name":"Archaeology","childNodes":"0","parentPath":"00090-00081-00001"},{"cat_id":"93","cat_name":"Biological Anthropology","short_name":"Biological Anthropology","childNodes":"0","parentPath":"00090-00081-00001"},{"cat_id":"94","cat_name":"Cultural Anthropology","short_name":"Cultural Anthropology","childNodes":"0","parentPath":"00090-00081-00001"},{"cat_id":"95","cat_name":"Ethnobotany","short_name":"Ethnobotany","childNodes":"0","parentPath":"00090-00081-00001"},{"cat_id":"96","cat_name":"Evolutionary Genetics","short_name":"Evolutionary Genetics","childNodes":"0","parentPath":"00090-00081-00001"},{"cat_id":"97","cat_name":"Forensic Anthropology","short_name":"Forensic Anthropology","childNodes":"0","parentPath":"00090-00081-00001"},{"cat_id":"98","cat_name":"Fossils","short_name":"Fossils","childNodes":"0","parentPath":"00090-00081-00001"},{"cat_id":"99","cat_name":"Gender Studies","short_name":"Gender Studies","childNodes":"0","parentPath":"00090-00081-00001"},{"cat_id":"100","cat_name":"Human Biology","short_name":"Human Biology","childNodes":"0","parentPath":"00090-00081-00001"},{"cat_id":"101","cat_name":"Human Evolution","short_name":"Human Evolution","childNodes":"0","parentPath":"00090-00081-00001"},{"cat_id":"102","cat_name":"Human Genetics","short_name":"Human Genetics","childNodes":"0","parentPath":"00090-00081-00001"},{"cat_id":"103","cat_name":"Human Reproduction","short_name":"Human Reproduction","childNodes":"0","parentPath":"00090-00081-00001"},{"cat_id":"104","cat_name":"Linguistics","short_name":"Linguistics","childNodes":"0","parentPath":"00090-00081-00001"},{"cat_id":"105","cat_name":"Physical Anthropology","short_name":"Physical Anthropology","childNodes":"0","parentPath":"00090-00081-00001"},{"cat_id":"106","cat_name":"Primate Behavior","short_name":"Primate Behavior","childNodes":"0","parentPath":"00090-00081-00001"}]},{"cat_id":"307","cat_name":"Citizenship","short_name":"Citizenship","childNodes":"0","parentPath":"00081-00001"},{"cat_id":"308","cat_name":"Civics","short_name":"Civics","childNodes":"0","parentPath":"00081-00001"},{"cat_id":"107","cat_name":"Classics","short_name":"Classics","childNodes":"9","parentPath":"00081-00001","sub_categories":[{"cat_id":"108","cat_name":"Ancient Greek","short_name":"Ancient Greek","childNodes":"0","parentPath":"00107-00081-00001"},{"cat_id":"109","cat_name":"Classical Architecture","short_name":"Classical Architecture","childNodes":"0","parentPath":"00107-00081-00001"},{"cat_id":"110","cat_name":"Classical Art","short_name":"Classical Art","childNodes":"0","parentPath":"00107-00081-00001"},{"cat_id":"111","cat_name":"Classical Mythology","short_name":"Classical Mythology","childNodes":"0","parentPath":"00107-00081-00001"},{"cat_id":"112","cat_name":"Greek Civilization","short_name":"Greek Civilization","childNodes":"0","parentPath":"00107-00081-00001"},{"cat_id":"113","cat_name":"Greek History","short_name":"Greek History","childNodes":"0","parentPath":"00107-00081-00001"},{"cat_id":"114","cat_name":"Latin","short_name":"Latin","childNodes":"0","parentPath":"00107-00081-00001"},{"cat_id":"115","cat_name":"Roman Civilization","short_name":"Roman Civilization","childNodes":"0","parentPath":"00107-00081-00001"},{"cat_id":"116","cat_name":"Roman History","short_name":"Roman History","childNodes":"0","parentPath":"00107-00081-00001"}]},{"cat_id":"117","cat_name":"Communications","short_name":"Communications","childNodes":"19","parentPath":"00081-00001","sub_categories":[{"cat_id":"118","cat_name":"Argumentation","short_name":"Argumentation","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"119","cat_name":"Business Communication","short_name":"Business Communication","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"120","cat_name":"Communication Theory","short_name":"Communication Theory","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"121","cat_name":"Communications","short_name":"Communications","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"122","cat_name":"Debate","short_name":"Debate","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"123","cat_name":"Human Relationships","short_name":"Human Relationships","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"124","cat_name":"Interpersonal Communication","short_name":"Interpersonal Communication","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"125","cat_name":"Mass Communication","short_name":"Mass Communication","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"126","cat_name":"Mass Media","short_name":"Mass Media","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"127","cat_name":"Media Studies","short_name":"Media Studies","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"128","cat_name":"Nonverbal Communication","short_name":"Nonverbal Communication","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"129","cat_name":"Organizational Communication","short_name":"Organizational Communication","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"130","cat_name":"Persuasion","short_name":"Persuasion","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"131","cat_name":"Professional Communication","short_name":"Professional Communication","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"132","cat_name":"Public Relations","short_name":"Public Relations","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"133","cat_name":"Public Speaking","short_name":"Public Speaking","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"134","cat_name":"Rhetoric","short_name":"Rhetoric","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"135","cat_name":"Small Group Communication","short_name":"Small Group Communication","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"136","cat_name":"Speech Communication","short_name":"Speech Communication","childNodes":"0","parentPath":"00117-00081-00001"}]},{"cat_id":"137","cat_name":"Counseling","short_name":"Counseling","childNodes":"6","parentPath":"00081-00001","sub_categories":[{"cat_id":"138","cat_name":"Counseling","short_name":"Counseling","childNodes":"1","parentPath":"00137-00081-00001","sub_categories":[{"cat_id":"629","cat_name":"Counseling","short_name":"Accounting","childNodes":"0","parentPath":"00138-00137-00081-00001"}]},{"cat_id":"139","cat_name":"Counseling Theory","short_name":"Counseling Theory","childNodes":"0","parentPath":"00137-00081-00001"},{"cat_id":"140","cat_name":"Family Therapy","short_name":"Family Therapy","childNodes":"0","parentPath":"00137-00081-00001"},{"cat_id":"141","cat_name":"LMSW Exam","short_name":"LMSW Exam","childNodes":"0","parentPath":"00137-00081-00001"},{"cat_id":"142","cat_name":"MFT Exam","short_name":"MFT Exam","childNodes":"0","parentPath":"00137-00081-00001"},{"cat_id":"143","cat_name":"NCMHCE","short_name":"NCMHCE","childNodes":"0","parentPath":"00137-00081-00001"}]},{"cat_id":"144","cat_name":"Criminal Justice","short_name":"Criminal Justice","childNodes":"19","parentPath":"00081-00001","sub_categories":[{"cat_id":"145","cat_name":"CIB","short_name":"CIB","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"146","cat_name":"Civil Rights","short_name":"Civil Rights","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"147","cat_name":"Corrections","short_name":"Corrections","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"148","cat_name":"Crime & Deviance","short_name":"Crime & Deviance","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"149","cat_name":"Crime & Punishment","short_name":"Crime & Punishment","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"150","cat_name":"Criminal Investigation","short_name":"Criminal Investigation","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"151","cat_name":"Criminal Justice","short_name":"Criminal Justice","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"152","cat_name":"Criminal Psychology","short_name":"Criminal Psychology","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"153","cat_name":"Criminology","short_name":"Criminology","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"154","cat_name":"Cybercrime","short_name":"Cybercrime","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"155","cat_name":"Forensic Pathology","short_name":"Forensic Pathology","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"156","cat_name":"Forensic Science","short_name":"Forensic Science","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"157","cat_name":"History of Crime","short_name":"History of Crime","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"158","cat_name":"Intro to Criminology","short_name":"Intro to Criminology","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"159","cat_name":"Law Enforcement","short_name":"Law Enforcement","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"160","cat_name":"Police Administration","short_name":"Police Administration","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"161","cat_name":"Police Studies","short_name":"Police Studies","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"162","cat_name":"Policing","short_name":"Policing","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"163","cat_name":"Prosecution","short_name":"Prosecution","childNodes":"0","parentPath":"00144-00081-00001"}]},{"cat_id":"164","cat_name":"Geography","short_name":"Geography","childNodes":"14","parentPath":"00081-00001","sub_categories":[{"cat_id":"165","cat_name":"Cartography","short_name":"Cartography","childNodes":"0","parentPath":"00164-00081-00001"},{"cat_id":"166","cat_name":"Climate Change","short_name":"Climate Change","childNodes":"0","parentPath":"00164-00081-00001"},{"cat_id":"167","cat_name":"Cultural Geography","short_name":"Cultural Geography","childNodes":"0","parentPath":"00164-00081-00001"},{"cat_id":"168","cat_name":"Environmental Science","short_name":"Environmental Science","childNodes":"0","parentPath":"00164-00081-00001"},{"cat_id":"169","cat_name":"Geography","short_name":"Geography","childNodes":"0","parentPath":"00164-00081-00001"},{"cat_id":"170","cat_name":"Human Geography","short_name":"Human Geography","childNodes":"0","parentPath":"00164-00081-00001"},{"cat_id":"171","cat_name":"Hydrology","short_name":"Hydrology","childNodes":"0","parentPath":"00164-00081-00001"},{"cat_id":"172","cat_name":"Landforms","short_name":"Landforms","childNodes":"0","parentPath":"00164-00081-00001"},{"cat_id":"173","cat_name":"Physical Geography","short_name":"Physical Geography","childNodes":"0","parentPath":"00164-00081-00001"},{"cat_id":"174","cat_name":"U.S. Geography","short_name":"U.S. Geography","childNodes":"0","parentPath":"00164-00081-00001"},{"cat_id":"175","cat_name":"Urban Geography","short_name":"Urban Geography","childNodes":"0","parentPath":"00164-00081-00001"},{"cat_id":"176","cat_name":"Weather and Climate","short_name":"Weather and Climate","childNodes":"0","parentPath":"00164-00081-00001"},{"cat_id":"177","cat_name":"World Capitals","short_name":"World Capitals","childNodes":"0","parentPath":"00164-00081-00001"},{"cat_id":"178","cat_name":"World Geography","short_name":"World Geography","childNodes":"0","parentPath":"00164-00081-00001"}]},{"cat_id":"179","cat_name":"History","short_name":"History","childNodes":"20","parentPath":"00081-00001","sub_categories":[{"cat_id":"180","cat_name":"African History","short_name":"African History","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"181","cat_name":"American West","short_name":"American West","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"182","cat_name":"Ancient Greece","short_name":"Ancient Greece","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"183","cat_name":"Ancient History","short_name":"Ancient History","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"184","cat_name":"Ancient Rome","short_name":"Ancient Rome","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"185","cat_name":"British History","short_name":"British History","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"186","cat_name":"Chinese History","short_name":"Chinese History","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"187","cat_name":"Christian History","short_name":"Christian History","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"188","cat_name":"Cold War","short_name":"Cold War","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"189","cat_name":"European History","short_name":"European History","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"190","cat_name":"Islamic History","short_name":"Islamic History","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"191","cat_name":"Jewish History","short_name":"Jewish History","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"192","cat_name":"Latin American History","short_name":"Latin American History","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"193","cat_name":"Medieval History","short_name":"Medieval History","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"194","cat_name":"Modern World History","short_name":"Modern World History","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"195","cat_name":"US History","short_name":"US History","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"196","cat_name":"Western Civilization","short_name":"Western Civilization","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"197","cat_name":"Womens History","short_name":"Womens History","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"198","cat_name":"World Civilizations","short_name":"World Civilizations","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"199","cat_name":"World History","short_name":"World History","childNodes":"0","parentPath":"00179-00081-00001"}]},{"cat_id":"82","cat_name":"Philosophy","short_name":"Philosophy","childNodes":"7","parentPath":"00081-00001","sub_categories":[{"cat_id":"83","cat_name":"Critical Thinking","short_name":"Critical Thinking","childNodes":"0","parentPath":"00082-00081-00001"},{"cat_id":"84","cat_name":"Ethics","short_name":"Ethics","childNodes":"0","parentPath":"00082-00081-00001"},{"cat_id":"85","cat_name":"Intro Philosophy","short_name":"Intro Philosophy","childNodes":"0","parentPath":"00082-00081-00001"},{"cat_id":"86","cat_name":"Logic","short_name":"Logic","childNodes":"0","parentPath":"00082-00081-00001"},{"cat_id":"87","cat_name":"Philosophy","short_name":"Philosophy","childNodes":"0","parentPath":"00082-00081-00001"},{"cat_id":"88","cat_name":"Plato","short_name":"Plato","childNodes":"0","parentPath":"00082-00081-00001"},{"cat_id":"89","cat_name":"Rhetoric","short_name":"Rhetoric","childNodes":"0","parentPath":"00082-00081-00001"}]},{"cat_id":"200","cat_name":"Political Science","short_name":"Political Science","childNodes":"17","parentPath":"00081-00001","sub_categories":[{"cat_id":"201","cat_name":"American Government","short_name":"American Government","childNodes":"0","parentPath":"00200-00081-00001"},{"cat_id":"202","cat_name":"Comparative Politics","short_name":"Comparative Politics","childNodes":"0","parentPath":"00200-00081-00001"},{"cat_id":"203","cat_name":"Foreign Policy","short_name":"Foreign Policy","childNodes":"0","parentPath":"00200-00081-00001"},{"cat_id":"204","cat_name":"Global Issues","short_name":"Global Issues","childNodes":"0","parentPath":"00200-00081-00001"},{"cat_id":"205","cat_name":"Human Rights","short_name":"Human Rights","childNodes":"0","parentPath":"00200-00081-00001"},{"cat_id":"206","cat_name":"International Political Economy","short_name":"International Political Economy","childNodes":"0","parentPath":"00200-00081-00001"},{"cat_id":"207","cat_name":"International Relations","short_name":"International Relations","childNodes":"0","parentPath":"00200-00081-00001"},{"cat_id":"208","cat_name":"Intro Political Science","short_name":"Intro Political Science","childNodes":"0","parentPath":"00200-00081-00001"},{"cat_id":"209","cat_name":"Policy Analysis","short_name":"Policy Analysis","childNodes":"0","parentPath":"00200-00081-00001"},{"cat_id":"210","cat_name":"Political Science","short_name":"Political Science","childNodes":"0","parentPath":"00200-00081-00001"},{"cat_id":"211","cat_name":"Presidency","short_name":"Presidency","childNodes":"0","parentPath":"00200-00081-00001"},{"cat_id":"212","cat_name":"Public Administration","short_name":"Public Administration","childNodes":"0","parentPath":"00200-00081-00001"},{"cat_id":"213","cat_name":"Public Policy","short_name":"Public Policy","childNodes":"0","parentPath":"00200-00081-00001"},{"cat_id":"214","cat_name":"Social Justice","short_name":"Social Justice","childNodes":"0","parentPath":"00200-00081-00001"},{"cat_id":"215","cat_name":"Terrorism","short_name":"Terrorism","childNodes":"0","parentPath":"00200-00081-00001"},{"cat_id":"216","cat_name":"UK Politics","short_name":"UK Politics","childNodes":"0","parentPath":"00200-00081-00001"},{"cat_id":"217","cat_name":"US Congress Leadership","short_name":"US Congress Leadership","childNodes":"0","parentPath":"00200-00081-00001"}]},{"cat_id":"218","cat_name":"Psychology","short_name":"Psychology","childNodes":"53","parentPath":"00081-00001","sub_categories":[{"cat_id":"219","cat_name":"Behavior Analysis","short_name":"Behavior Analysis","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"220","cat_name":"Behavioral Neuroscience","short_name":"Behavioral Neuroscience","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"221","cat_name":"Behavioral Statistics","short_name":"Behavioral Statistics","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"222","cat_name":"Biological Psychology","short_name":"Biological Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"223","cat_name":"Biopsychology","short_name":"Biopsychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"224","cat_name":"Brain and Behavior","short_name":"Brain and Behavior","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"225","cat_name":"Child Development","short_name":"Child Development","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"226","cat_name":"Child Psychology","short_name":"Child Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"227","cat_name":"Clinical Psychology","short_name":"Clinical Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"228","cat_name":"Cognitive Biases","short_name":"Cognitive Biases","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"229","cat_name":"Cognitive Neuroscience","short_name":"Cognitive Neuroscience","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"230","cat_name":"Cognitive Psychology","short_name":"Cognitive Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"231","cat_name":"Cognitive Science","short_name":"Cognitive Science","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"232","cat_name":"Community Psychology","short_name":"Community Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"233","cat_name":"Cultural Psychology","short_name":"Cultural Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"234","cat_name":"Developmental Psychology","short_name":"Developmental Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"235","cat_name":"Drugs and Behavior","short_name":"Drugs and Behavior","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"236","cat_name":"DSM","short_name":"DSM","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"237","cat_name":"DSM-5","short_name":"DSM-5","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"238","cat_name":"Educational Psychology","short_name":"Educational Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"239","cat_name":"Environmental Psychology","short_name":"Environmental Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"240","cat_name":"Evolutionary Psychology","short_name":"Evolutionary Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"241","cat_name":"Experimental Psychology","short_name":"Experimental Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"242","cat_name":"Forensic Pscyhology","short_name":"Forensic Pscyhology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"243","cat_name":"Gender Psychology","short_name":"Gender Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"244","cat_name":"General Psychology","short_name":"General Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"245","cat_name":"Health Psychology","short_name":"Health Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"246","cat_name":"Human Behavior","short_name":"Human Behavior","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"247","cat_name":"Human Sexuality","short_name":"Human Sexuality","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"248","cat_name":"Industrial Psychology","short_name":"Industrial Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"249","cat_name":"Intro Psychology","short_name":"Intro Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"250","cat_name":"Language Development","short_name":"Language Development","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"251","cat_name":"Learning and Memory","short_name":"Learning and Memory","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"252","cat_name":"Lifespan Psychology","short_name":"Lifespan Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"253","cat_name":"Neuropsychology","short_name":"Neuropsychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"254","cat_name":"Phonology","short_name":"Phonology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"255","cat_name":"Positive Psychology","short_name":"Positive Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"256","cat_name":"Psychobiology","short_name":"Psychobiology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"257","cat_name":"Psychological Assessment","short_name":"Psychological Assessment","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"258","cat_name":"Psychological Statistics","short_name":"Psychological Statistics","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"259","cat_name":"Psychological Testing","short_name":"Psychological Testing","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"260","cat_name":"Psychology","short_name":"Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"261","cat_name":"Psychology Ethics","short_name":"Psychology Ethics","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"262","cat_name":"Psychopathology","short_name":"Psychopathology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"263","cat_name":"Psychopharmacology","short_name":"Psychopharmacology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"264","cat_name":"Psychosocial","short_name":"Psychosocial","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"265","cat_name":"Psychotherapy","short_name":"Psychotherapy","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"266","cat_name":"Psychotropic Drugs","short_name":"Psychotropic Drugs","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"267","cat_name":"Research Methods in Psych","short_name":"Research Methods in Psych","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"268","cat_name":"Sensation and Perception","short_name":"Sensation and Perception","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"269","cat_name":"Social Psychology","short_name":"Social Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"270","cat_name":"The Brain","short_name":"The Brain","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"271","cat_name":"Theories of Personality","short_name":"Theories of Personality","childNodes":"0","parentPath":"00218-00081-00001"}]},{"cat_id":"272","cat_name":"Religion and Bible","short_name":"Religion and Bible","childNodes":"19","parentPath":"00081-00001","sub_categories":[{"cat_id":"273","cat_name":"Aramaic","short_name":"Aramaic","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"274","cat_name":"Bible","short_name":"Bible","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"275","cat_name":"Bible Verses","short_name":"Bible Verses","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"276","cat_name":"Biblical Greek","short_name":"Biblical Greek","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"277","cat_name":"Buddhism","short_name":"Buddhism","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"278","cat_name":"Catholicism","short_name":"Catholicism","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"279","cat_name":"Christianity","short_name":"Christianity","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"280","cat_name":"Hebrew","short_name":"Hebrew","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"281","cat_name":"Hinduism","short_name":"Hinduism","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"282","cat_name":"Islam","short_name":"Islam","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"283","cat_name":"Judaism","short_name":"Judaism","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"284","cat_name":"New Testament","short_name":"New Testament","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"285","cat_name":"Old Testament","short_name":"Old Testament","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"286","cat_name":"Quran","short_name":"Quran","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"287","cat_name":"Religion","short_name":"Religion","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"288","cat_name":"Religious Studies","short_name":"Religious Studies","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"289","cat_name":"Sanskrit","short_name":"Sanskrit","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"290","cat_name":"Theology","short_name":"Theology","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"291","cat_name":"Torah","short_name":"Torah","childNodes":"0","parentPath":"00272-00081-00001"}]},{"cat_id":"309","cat_name":"Social Studies","short_name":"Social Studies","childNodes":"0","parentPath":"00081-00001"},{"cat_id":"310","cat_name":"Social Work","short_name":"Social Work","childNodes":"0","parentPath":"00081-00001"},{"cat_id":"292","cat_name":"Sociology","short_name":"Sociology","childNodes":"14","parentPath":"00081-00001","sub_categories":[{"cat_id":"293","cat_name":"Civil Rights","short_name":"Civil Rights","childNodes":"0","parentPath":"00292-00081-00001"},{"cat_id":"294","cat_name":"Cultural Diversity","short_name":"Cultural Diversity","childNodes":"0","parentPath":"00292-00081-00001"},{"cat_id":"295","cat_name":"Gender Studies","short_name":"Gender Studies","childNodes":"0","parentPath":"00292-00081-00001"},{"cat_id":"296","cat_name":"Group Dynamcis","short_name":"Group Dynamcis","childNodes":"0","parentPath":"00292-00081-00001"},{"cat_id":"297","cat_name":"Intro Sociology","short_name":"Intro Sociology","childNodes":"0","parentPath":"00292-00081-00001"},{"cat_id":"298","cat_name":"Juvenile Delinquency","short_name":"Juvenile Delinquency","childNodes":"0","parentPath":"00292-00081-00001"},{"cat_id":"299","cat_name":"Marriage & Family","short_name":"Marriage & Family","childNodes":"0","parentPath":"00292-00081-00001"},{"cat_id":"300","cat_name":"Mass Media Sociology","short_name":"Mass Media Sociology","childNodes":"0","parentPath":"00292-00081-00001"},{"cat_id":"301","cat_name":"Medical Sociology","short_name":"Medical Sociology","childNodes":"0","parentPath":"00292-00081-00001"},{"cat_id":"302","cat_name":"Social Control","short_name":"Social Control","childNodes":"0","parentPath":"00292-00081-00001"},{"cat_id":"303","cat_name":"Social Institutions","short_name":"Social Institutions","childNodes":"0","parentPath":"00292-00081-00001"},{"cat_id":"304","cat_name":"Sociology","short_name":"Sociology","childNodes":"0","parentPath":"00292-00081-00001"},{"cat_id":"305","cat_name":"Subcultures","short_name":"Subcultures","childNodes":"0","parentPath":"00292-00081-00001"},{"cat_id":"306","cat_name":"Youth Subcultures","short_name":"Youth Subcultures","childNodes":"0","parentPath":"00292-00081-00001"}]}]},{"cat_id":"623","cat_name":"Languages","short_name":"Languages","childNodes":"3","parentPath":"00001","sub_categories":[{"cat_id":"626","cat_name":"Africans","short_name":"Africans","childNodes":"0","parentPath":"00623-00001"},{"cat_id":"624","cat_name":"Xkhosa","short_name":"Xkhosa","childNodes":"0","parentPath":"00623-00001"},{"cat_id":"625","cat_name":"Zulu","short_name":"Zulu","childNodes":"0","parentPath":"00623-00001"}]},{"cat_id":"366","cat_name":"Law","short_name":"Law","childNodes":"29","parentPath":"00001","sub_categories":[{"cat_id":"368","cat_name":"Bankruptcy","short_name":"Bankruptcy","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"369","cat_name":"Bar Exam","short_name":"Bar Exam","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"370","cat_name":"Business Law","short_name":"Business Law","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"371","cat_name":"California Bar Exam","short_name":"California Bar Exam","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"372","cat_name":"CIPP Exam","short_name":"CIPP Exam","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"373","cat_name":"Civil Procedure","short_name":"Civil Procedure","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"374","cat_name":"Constitutional Law","short_name":"Constitutional Law","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"375","cat_name":"Contract Law","short_name":"Contract Law","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"376","cat_name":"Corporate Law","short_name":"Corporate Law","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"377","cat_name":"Criminal Law","short_name":"Criminal Law","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"378","cat_name":"Evidence","short_name":"Evidence","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"379","cat_name":"Family Law","short_name":"Family Law","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"380","cat_name":"Florida Bar Exam","short_name":"Florida Bar Exam","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"381","cat_name":"Insurance Law","short_name":"Insurance Law","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"382","cat_name":"Intellectual Property","short_name":"Intellectual Property","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"383","cat_name":"International Law","short_name":"International Law","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"384","cat_name":"Law","short_name":"Law","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"385","cat_name":"Law & Ethics","short_name":"Law & Ethics","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"386","cat_name":"Legal Studies","short_name":"Legal Studies","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"367","cat_name":"Legislation Acts Policies","short_name":"Legislation Acts Policies","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"387","cat_name":"Litigation","short_name":"Litigation","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"388","cat_name":"MBE","short_name":"MBE","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"389","cat_name":"MPRE","short_name":"MPRE","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"390","cat_name":"Pharmacy Law","short_name":"Pharmacy Law","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"391","cat_name":"Property Law","short_name":"Property Law","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"392","cat_name":"Real Estate Law","short_name":"Real Estate Law","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"393","cat_name":"Texas Bar Exam","short_name":"Texas Bar Exam","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"394","cat_name":"Torts","short_name":"Torts","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"395","cat_name":"Trusts & Estates","short_name":"Trusts & Estates","childNodes":"0","parentPath":"00366-00001"}]},{"cat_id":"311","cat_name":"Mathematics","short_name":"Mathematics","childNodes":"13","parentPath":"00001","sub_categories":[{"cat_id":"312","cat_name":"Algebra","short_name":"Algebra","childNodes":"0","parentPath":"00311-00001"},{"cat_id":"313","cat_name":"Algebra II","short_name":"Algebra II","childNodes":"0","parentPath":"00311-00001"},{"cat_id":"314","cat_name":"Arithmetic","short_name":"Arithmetic","childNodes":"0","parentPath":"00311-00001"},{"cat_id":"315","cat_name":"Calculus","short_name":"Calculus","childNodes":"0","parentPath":"00311-00001"},{"cat_id":"316","cat_name":"Geometry","short_name":"Geometry","childNodes":"0","parentPath":"00311-00001"},{"cat_id":"317","cat_name":"Linear Algebra","short_name":"Linear Algebra","childNodes":"0","parentPath":"00311-00001"},{"cat_id":"318","cat_name":"Math","short_name":"Math","childNodes":"0","parentPath":"00311-00001"},{"cat_id":"319","cat_name":"Multiplication Tables","short_name":"Multiplication Tables","childNodes":"0","parentPath":"00311-00001"},{"cat_id":"320","cat_name":"Precalculus","short_name":"Precalculus","childNodes":"0","parentPath":"00311-00001"},{"cat_id":"321","cat_name":"Probability","short_name":"Probability","childNodes":"0","parentPath":"00311-00001"},{"cat_id":"322","cat_name":"Statistical Methods","short_name":"Statistical Methods","childNodes":"0","parentPath":"00311-00001"},{"cat_id":"323","cat_name":"Statistics","short_name":"Statistics","childNodes":"0","parentPath":"00311-00001"},{"cat_id":"324","cat_name":"Trigonometry","short_name":"Trigonometry","childNodes":"0","parentPath":"00311-00001"}]},{"cat_id":"325","cat_name":"Medical & Nursing","short_name":"Medical & Nursing","childNodes":"15","parentPath":"00001","sub_categories":[{"cat_id":"326","cat_name":"Anatomy","short_name":"Anatomy","childNodes":"0","parentPath":"00325-00001"},{"cat_id":"327","cat_name":"Body Systems","short_name":"Body Systems","childNodes":"0","parentPath":"00325-00001"},{"cat_id":"328","cat_name":"Dentistry","short_name":"Dentistry","childNodes":"0","parentPath":"00325-00001"},{"cat_id":"329","cat_name":"Medical Courses & Subject Areas","short_name":"Medical Courses & Subject Areas","childNodes":"0","parentPath":"00325-00001"},{"cat_id":"330","cat_name":"Medical Exams","short_name":"Medical Exams","childNodes":"0","parentPath":"00325-00001"},{"cat_id":"331","cat_name":"Medical Subspecialties","short_name":"Medical Subspecialties","childNodes":"0","parentPath":"00325-00001"},{"cat_id":"332","cat_name":"Medical Terminology","short_name":"Medical Terminology","childNodes":"0","parentPath":"00325-00001"},{"cat_id":"333","cat_name":"Misc Healthcare Topics","short_name":"Misc Healthcare Topics","childNodes":"0","parentPath":"00325-00001"},{"cat_id":"334","cat_name":"Nursing Courses & Subject Areas","short_name":"Nursing Courses & Subject Areas","childNodes":"0","parentPath":"00325-00001"},{"cat_id":"335","cat_name":"Nursing Subspecialties","short_name":"Nursing Subspecialties","childNodes":"0","parentPath":"00325-00001"},{"cat_id":"336","cat_name":"Other Healthcare Fields","short_name":"Other Healthcare Fields","childNodes":"0","parentPath":"00325-00001"},{"cat_id":"337","cat_name":"Pharmacology","short_name":"Pharmacology","childNodes":"0","parentPath":"00325-00001"},{"cat_id":"338","cat_name":"Physiology","short_name":"Physiology","childNodes":"0","parentPath":"00325-00001"},{"cat_id":"339","cat_name":"Radiology & Diagnostic Imaging","short_name":"Radiology & Diagnostic Imaging","childNodes":"0","parentPath":"00325-00001"},{"cat_id":"340","cat_name":"Veterinary","short_name":"Veterinary","childNodes":"0","parentPath":"00325-00001"}]},{"cat_id":"11","cat_name":"Professional Certifications","short_name":"Professional Certifications","childNodes":"11","parentPath":"00001","sub_categories":[{"cat_id":"12","cat_name":"Bar Exam","short_name":"Bar Exam","childNodes":"0","parentPath":"00011-00001"},{"cat_id":"13","cat_name":"Drivers Ed","short_name":"Drivers Ed","childNodes":"0","parentPath":"00011-00001"},{"cat_id":"14","cat_name":"Financial Exams","short_name":"Financial Exams","childNodes":"0","parentPath":"00011-00001"},{"cat_id":"15","cat_name":"Management Certifications","short_name":"Management Certifications","childNodes":"0","parentPath":"00011-00001"},{"cat_id":"16","cat_name":"Medical & Nursing Certifications","short_name":"Medical & Nursing Certifications","childNodes":"0","parentPath":"00011-00001"},{"cat_id":"17","cat_name":"Military Exams","short_name":"Military Exams","childNodes":"0","parentPath":"00011-00001"},{"cat_id":"18","cat_name":"MPRE","short_name":"MPRE","childNodes":"0","parentPath":"00011-00001"},{"cat_id":"19","cat_name":"Other Certifications","short_name":"Other Certifications","childNodes":"0","parentPath":"00011-00001"},{"cat_id":"20","cat_name":"Technology Certifications","short_name":"Technology Certifications","childNodes":"0","parentPath":"00011-00001"},{"cat_id":"21","cat_name":"TOEFL","short_name":"TOEFL","childNodes":"0","parentPath":"00011-00001"},{"cat_id":"22","cat_name":"Wine & Spirits","short_name":"Wine & Spirits","childNodes":"0","parentPath":"00011-00001"}]},{"cat_id":"611","cat_name":"Random Knowledge","short_name":"Random Knowledge","childNodes":"11","parentPath":"00001","sub_categories":[{"cat_id":"612","cat_name":"Astrology","short_name":"Astrology","childNodes":"0","parentPath":"00611-00001"},{"cat_id":"613","cat_name":"Blackjack","short_name":"Blackjack","childNodes":"0","parentPath":"00611-00001"},{"cat_id":"614","cat_name":"Cultural Literacy","short_name":"Cultural Literacy","childNodes":"0","parentPath":"00611-00001"},{"cat_id":"615","cat_name":"Knowledge Rehab","short_name":"Knowledge Rehab","childNodes":"0","parentPath":"00611-00001"},{"cat_id":"616","cat_name":"Mythology","short_name":"Mythology","childNodes":"0","parentPath":"00611-00001"},{"cat_id":"617","cat_name":"National Capitals","short_name":"National Capitals","childNodes":"0","parentPath":"00611-00001"},{"cat_id":"618","cat_name":"People You Should Know","short_name":"People You Should Know","childNodes":"0","parentPath":"00611-00001"},{"cat_id":"619","cat_name":"Poker","short_name":"Poker","childNodes":"0","parentPath":"00611-00001"},{"cat_id":"620","cat_name":"Quiz Bowl","short_name":"Quiz Bowl","childNodes":"0","parentPath":"00611-00001"},{"cat_id":"621","cat_name":"Sports Trivia","short_name":"Sports Trivia","childNodes":"0","parentPath":"00611-00001"},{"cat_id":"622","cat_name":"Tarot Cards","short_name":"Tarot Cards","childNodes":"0","parentPath":"00611-00001"}]},{"cat_id":"38","cat_name":"Science","short_name":"Science","childNodes":"25","parentPath":"00001","sub_categories":[{"cat_id":"39","cat_name":"Anatomy","short_name":"Anatomy","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"40","cat_name":"Astronomy","short_name":"Astronomy","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"41","cat_name":"Biochemistry","short_name":"Biochemistry","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"42","cat_name":"Biology","short_name":"Biology","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"43","cat_name":"Cellular Biology","short_name":"Cellular Biology","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"44","cat_name":"Chemistry","short_name":"Chemistry","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"45","cat_name":"Earth Science","short_name":"Earth Science","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"46","cat_name":"Environmental Science","short_name":"Environmental Science","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"47","cat_name":"Genetics","short_name":"Genetics","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"48","cat_name":"Geology","short_name":"Geology","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"49","cat_name":"Life Science","short_name":"Life Science","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"50","cat_name":"Marine Biology","short_name":"Marine Biology","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"51","cat_name":"Meteorology","short_name":"Meteorology","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"52","cat_name":"Microbiology","short_name":"Microbiology","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"53","cat_name":"Molecular Biology","short_name":"Molecular Biology","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"54","cat_name":"Natural Science","short_name":"Natural Science","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"55","cat_name":"Oceanography","short_name":"Oceanography","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"56","cat_name":"Organic Chemistry","short_name":"Organic Chemistry","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"57","cat_name":"Periodic Table","short_name":"Periodic Table","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"58","cat_name":"Physical Science","short_name":"Physical Science","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"59","cat_name":"Physics","short_name":"Physics","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"60","cat_name":"Physiology","short_name":"Physiology","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"61","cat_name":"Plant Science","short_name":"Plant Science","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"62","cat_name":"Science Class","short_name":"Science Class","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"63","cat_name":"Zoology","short_name":"Zoology","childNodes":"0","parentPath":"00038-00001"}]},{"cat_id":"525","cat_name":"Technology & Engineering","short_name":"Technology & Engineering","childNodes":"9","parentPath":"00001","sub_categories":[{"cat_id":"526","cat_name":"Architecture","short_name":"Architecture","childNodes":"0","parentPath":"00525-00001"},{"cat_id":"527","cat_name":"Biotechnology","short_name":"Biotechnology","childNodes":"0","parentPath":"00525-00001"},{"cat_id":"528","cat_name":"Computer Programming","short_name":"Computer Programming","childNodes":"22","parentPath":"00525-00001","sub_categories":[{"cat_id":"529","cat_name":"Agile","short_name":"Agile","childNodes":"1","parentPath":"00528-00525-00001","sub_categories":[{"cat_id":"628","cat_name":"test category","short_name":"test category","childNodes":"0","parentPath":"00529-00528-00525-00001"}]},{"cat_id":"530","cat_name":"AWS","short_name":"AWS","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"550","cat_name":"Brainscape Certified (\u00c2\u00a0See All\u00c2\u00a0)","short_name":"Brainscape Certified (\u00c2\u00a0See All\u00c2\u00a0)","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"531","cat_name":"Computer Programming","short_name":"Computer Programming","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"532","cat_name":"Cryptography","short_name":"Cryptography","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"533","cat_name":"Git Commands","short_name":"Git Commands","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"534","cat_name":"HTML","short_name":"HTML","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"535","cat_name":"Java","short_name":"Java","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"536","cat_name":"Javascript","short_name":"Javascript","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"537","cat_name":"Keyboard Shortcuts","short_name":"Keyboard Shortcuts","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"538","cat_name":"Kubernetes","short_name":"Kubernetes","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"539","cat_name":"Linux","short_name":"Linux","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"540","cat_name":"Mac OS","short_name":"Mac OS","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"541","cat_name":"Objective-C","short_name":"Objective-C","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"542","cat_name":"PHP","short_name":"PHP","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"543","cat_name":"Python","short_name":"Python","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"544","cat_name":"React","short_name":"React","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"545","cat_name":"Ruby","short_name":"Ruby","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"546","cat_name":"Ruby on Rails","short_name":"Ruby on Rails","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"547","cat_name":"Swift","short_name":"Swift","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"548","cat_name":"Tech Startup Genius","short_name":"Tech Startup Genius","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"549","cat_name":"Wordpress","short_name":"Wordpress","childNodes":"0","parentPath":"00528-00525-00001"}]},{"cat_id":"551","cat_name":"Computer Science","short_name":"Computer Science","childNodes":"28","parentPath":"00525-00001","sub_categories":[{"cat_id":"552","cat_name":"Algorithms","short_name":"Algorithms","childNodes":"1","parentPath":"00551-00525-00001","sub_categories":[{"cat_id":"630","cat_name":"               ","short_name":"               ","childNodes":"0","parentPath":"00552-00551-00525-00001"}]},{"cat_id":"553","cat_name":"Artificial Intelligence","short_name":"Artificial Intelligence","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"554","cat_name":"Computer Architecture","short_name":"Computer Architecture","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"555","cat_name":"Computer Concepts","short_name":"Computer Concepts","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"556","cat_name":"Computer Literacy","short_name":"Computer Literacy","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"557","cat_name":"Computer Science","short_name":"Computer Science","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"558","cat_name":"Computer Security","short_name":"Computer Security","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"559","cat_name":"Computer Systems","short_name":"Computer Systems","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"560","cat_name":"Computing","short_name":"Computing","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"561","cat_name":"Cybersecurity","short_name":"Cybersecurity","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"562","cat_name":"Data Mining","short_name":"Data Mining","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"563","cat_name":"Data Science","short_name":"Data Science","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"564","cat_name":"Data Structures","short_name":"Data Structures","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"565","cat_name":"Database","short_name":"Database","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"566","cat_name":"Database Management","short_name":"Database Management","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"567","cat_name":"Deep Learning","short_name":"Deep Learning","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"568","cat_name":"Discrete Structures","short_name":"Discrete Structures","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"569","cat_name":"Human Computer Interaction","short_name":"Human Computer Interaction","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"570","cat_name":"Informatics","short_name":"Informatics","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"571","cat_name":"Intro to Computers","short_name":"Intro to Computers","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"572","cat_name":"Machine Learning","short_name":"Machine Learning","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"573","cat_name":"Network Security","short_name":"Network Security","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"574","cat_name":"Networking","short_name":"Networking","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"575","cat_name":"Object Oriented Programming","short_name":"Object Oriented Programming","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"576","cat_name":"Operating Systems","short_name":"Operating Systems","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"577","cat_name":"Programming","short_name":"Programming","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"578","cat_name":"Robotics","short_name":"Robotics","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"579","cat_name":"Software Development","short_name":"Software Development","childNodes":"0","parentPath":"00551-00525-00001"}]},{"cat_id":"581","cat_name":"Engineering","short_name":"Engineering","childNodes":"12","parentPath":"00525-00001","sub_categories":[{"cat_id":"582","cat_name":"Amateur Radio","short_name":"Amateur Radio","childNodes":"0","parentPath":"00581-00525-00001"},{"cat_id":"583","cat_name":"Architecture","short_name":"Architecture","childNodes":"0","parentPath":"00581-00525-00001"},{"cat_id":"584","cat_name":"Circuits","short_name":"Circuits","childNodes":"0","parentPath":"00581-00525-00001"},{"cat_id":"585","cat_name":"Civil Engineering","short_name":"Civil Engineering","childNodes":"0","parentPath":"00581-00525-00001"},{"cat_id":"586","cat_name":"Construction","short_name":"Construction","childNodes":"0","parentPath":"00581-00525-00001"},{"cat_id":"587","cat_name":"Electrical Engineering","short_name":"Electrical Engineering","childNodes":"0","parentPath":"00581-00525-00001"},{"cat_id":"588","cat_name":"Engineering Science","short_name":"Engineering Science","childNodes":"0","parentPath":"00581-00525-00001"},{"cat_id":"589","cat_name":"Materials Science","short_name":"Materials Science","childNodes":"0","parentPath":"00581-00525-00001"},{"cat_id":"590","cat_name":"Mechanical Engineering","short_name":"Mechanical Engineering","childNodes":"0","parentPath":"00581-00525-00001"},{"cat_id":"591","cat_name":"Millwright","short_name":"Millwright","childNodes":"0","parentPath":"00581-00525-00001"},{"cat_id":"592","cat_name":"Morse Code","short_name":"Morse Code","childNodes":"0","parentPath":"00581-00525-00001"},{"cat_id":"593","cat_name":"Power Engineering","short_name":"Power Engineering","childNodes":"0","parentPath":"00581-00525-00001"}]},{"cat_id":"594","cat_name":"Graphic Design","short_name":"Graphic Design","childNodes":"0","parentPath":"00525-00001"},{"cat_id":"595","cat_name":"Information Security","short_name":"Information Security","childNodes":"0","parentPath":"00525-00001"},{"cat_id":"596","cat_name":"Information Technology","short_name":"Information Technology","childNodes":"0","parentPath":"00525-00001"},{"cat_id":"597","cat_name":"Management Information Systems","short_name":"Management Information Systems","childNodes":"0","parentPath":"00525-00001"}]},{"cat_id":"341","cat_name":"Vocations","short_name":"Vocations","childNodes":"24","parentPath":"00001","sub_categories":[{"cat_id":"342","cat_name":"ASVAB","short_name":"ASVAB","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"343","cat_name":"Automotive","short_name":"Automotive","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"344","cat_name":"Aviation","short_name":"Aviation","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"345","cat_name":"Barbering","short_name":"Barbering","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"346","cat_name":"Boating","short_name":"Boating","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"347","cat_name":"Cosmetology","short_name":"Cosmetology","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"348","cat_name":"Diamonds","short_name":"Diamonds","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"349","cat_name":"Electrical","short_name":"Electrical","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"350","cat_name":"Electrician","short_name":"Electrician","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"351","cat_name":"Firefighting","short_name":"Firefighting","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"352","cat_name":"Gardening","short_name":"Gardening","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"353","cat_name":"Home Economics","short_name":"Home Economics","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"354","cat_name":"Horticulture","short_name":"Horticulture","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"355","cat_name":"HVAC","short_name":"HVAC","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"356","cat_name":"Interior Design","short_name":"Interior Design","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"357","cat_name":"Landscape Architecture","short_name":"Landscape Architecture","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"358","cat_name":"Massage Therapy","short_name":"Massage Therapy","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"359","cat_name":"Metallurgy","short_name":"Metallurgy","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"360","cat_name":"Military","short_name":"Military","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"361","cat_name":"Pest Control","short_name":"Pest Control","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"362","cat_name":"Plumbing","short_name":"Plumbing","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"363","cat_name":"Policing","short_name":"Policing","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"364","cat_name":"Wastewater","short_name":"Wastewater","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"365","cat_name":"Welding","short_name":"Welding","childNodes":"0","parentPath":"00341-00001"}]}]}
[02/Feb/2026:07:21:12] (root_api-) token =  IP = 17.22.253.41
[02/Feb/2026:07:21:12] (root_api-) 
[02/Feb/2026:07:21:12] (root_api-) OP=  of page root_api.php
[02/Feb/2026:07:21:12] (root_api-) Final JSON =  { "status":"error",
					"message":"Invalid Session",
					"Errorcode":"err100",
					"data":{}}
[02/Feb/2026:07:21:14] (root_api-) token =  IP = 17.22.245.249
[02/Feb/2026:07:21:14] (root_api-) op => getFrontCategoryMenu ,categoryId =>  ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => category_data ,
[02/Feb/2026:07:21:14] (root_api-) OP= getFrontCategoryMenu of page root_api.php
[02/Feb/2026:07:21:14] (root_api-) serviceName category_data
[02/Feb/2026:07:21:14] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:07:21:14] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='1' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 07:21:14:0214~2026-02-02 07:21:14~success
[02/Feb/2026:07:21:14] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:07:21:14] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='410' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 07:21:14:0214~2026-02-02 07:21:14~success
[02/Feb/2026:07:21:14] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:07:21:14] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='411' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 07:21:14:0214~2026-02-02 07:21:14~success
[02/Feb/2026:07:21:14] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:07:21:14] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='433' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 07:21:14:0214~2026-02-02 07:21:14~success
[02/Feb/2026:07:21:14] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:07:21:14] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='458' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 07:21:14:0214~2026-02-02 07:21:14~success
[02/Feb/2026:07:21:14] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:07:21:14] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='485' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 07:21:14:0214~2026-02-02 07:21:14~success
[02/Feb/2026:07:21:14] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:07:21:14] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='499' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 07:21:14:0214~2026-02-02 07:21:14~success
[02/Feb/2026:07:21:14] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:07:21:14] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='514' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 07:21:14:0214~2026-02-02 07:21:14~success
[02/Feb/2026:07:21:14] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:07:21:14] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='64' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 07:21:14:0214~2026-02-02 07:21:14~success
[02/Feb/2026:07:21:14] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:07:21:14] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='2' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 07:21:14:0214~2026-02-02 07:21:14~success
[02/Feb/2026:07:21:14] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:07:21:14] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='605' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 07:21:14:0214~2026-02-02 07:21:14~success
[02/Feb/2026:07:21:14] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:07:21:14] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='598' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 07:21:14:0214~2026-02-02 07:21:14~success
[02/Feb/2026:07:21:14] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:07:21:14] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='23' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 07:21:14:0214~2026-02-02 07:21:14~success
[02/Feb/2026:07:21:14] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:07:21:14] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='396' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 07:21:14:0214~2026-02-02 07:21:14~success
[02/Feb/2026:07:21:14] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:07:21:14] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='81' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 07:21:14:0214~2026-02-02 07:21:14~success
[02/Feb/2026:07:21:14] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:07:21:14] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='90' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 07:21:14:0214~2026-02-02 07:21:14~success
[02/Feb/2026:07:21:14] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:07:21:14] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='107' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 07:21:14:0214~2026-02-02 07:21:14~success
[02/Feb/2026:07:21:14] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:07:21:14] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='117' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 07:21:14:0214~2026-02-02 07:21:14~success
[02/Feb/2026:07:21:14] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:07:21:14] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='137' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 07:21:14:0214~2026-02-02 07:21:14~success
[02/Feb/2026:07:21:14] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:07:21:14] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='138' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 07:21:14:0214~2026-02-02 07:21:14~success
[02/Feb/2026:07:21:14] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:07:21:14] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='144' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 07:21:14:0214~2026-02-02 07:21:14~success
[02/Feb/2026:07:21:14] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:07:21:14] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='164' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 07:21:14:0214~2026-02-02 07:21:14~success
[02/Feb/2026:07:21:14] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:07:21:14] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='179' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 07:21:14:0214~2026-02-02 07:21:14~success
[02/Feb/2026:07:21:14] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:07:21:14] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='82' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 07:21:14:0214~2026-02-02 07:21:14~success
[02/Feb/2026:07:21:14] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:07:21:14] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='200' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 07:21:14:0214~2026-02-02 07:21:14~success
[02/Feb/2026:07:21:14] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:07:21:14] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='218' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 07:21:14:0214~2026-02-02 07:21:14~success
[02/Feb/2026:07:21:14] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:07:21:14] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='272' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 07:21:14:0214~2026-02-02 07:21:14~success
[02/Feb/2026:07:21:14] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:07:21:14] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='292' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 07:21:14:0214~2026-02-02 07:21:14~success
[02/Feb/2026:07:21:14] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:07:21:14] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='623' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 07:21:14:0214~2026-02-02 07:21:14~success
[02/Feb/2026:07:21:14] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:07:21:14] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='366' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 07:21:14:0214~2026-02-02 07:21:14~success
[02/Feb/2026:07:21:14] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:07:21:14] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='311' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 07:21:14:0214~2026-02-02 07:21:14~success
[02/Feb/2026:07:21:14] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:07:21:14] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='325' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 07:21:14:0214~2026-02-02 07:21:14~success
[02/Feb/2026:07:21:14] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:07:21:14] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='11' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 07:21:14:0214~2026-02-02 07:21:14~success
[02/Feb/2026:07:21:14] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:07:21:14] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='611' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 07:21:14:0214~2026-02-02 07:21:14~success
[02/Feb/2026:07:21:14] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:07:21:14] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='38' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 07:21:14:0214~2026-02-02 07:21:14~success
[02/Feb/2026:07:21:14] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:07:21:14] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='525' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 07:21:14:0214~2026-02-02 07:21:14~success
[02/Feb/2026:07:21:14] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:07:21:14] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='528' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 07:21:14:0214~2026-02-02 07:21:14~success
[02/Feb/2026:07:21:14] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:07:21:14] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='529' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 07:21:14:0214~2026-02-02 07:21:14~success
[02/Feb/2026:07:21:14] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:07:21:14] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='551' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 07:21:14:0214~2026-02-02 07:21:14~success
[02/Feb/2026:07:21:14] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:07:21:14] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='552' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 07:21:14:0214~2026-02-02 07:21:14~success
[02/Feb/2026:07:21:14] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:07:21:14] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='581' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 07:21:14:0214~2026-02-02 07:21:14~success
[02/Feb/2026:07:21:14] (root_api-) getFrontCategoryMenu : [1] get category with category default root.
[02/Feb/2026:07:21:14] (root_api-) Query~select ct.cat_id,ct.cat_name,ct.short_name,ct.`status`,
	fn_getChildCount(ct.cat_id) as childNodes,fn_getParentPath(ct.cat_id) as parentPath
	from tbl_category ct
	left join tbl_category ctp on ct.cat_parent_id = ctp.cat_id
	 where ct.cat_parent_id='341' AND ct.status = 'active'
	order by fn_getParentPath(ct.cat_id), ct.cat_name~2026-02-02 07:21:14:0214~2026-02-02 07:21:14~success
[02/Feb/2026:07:21:14] (root_api-) Final JSON =  {"status":"ok","message":"","Errorcode":"","data":[{"cat_id":"410","cat_name":"Business & Finance","short_name":"Business & Finance","childNodes":"7","parentPath":"00001","sub_categories":[{"cat_id":"411","cat_name":"Accounting","short_name":"Accounting","childNodes":"21","parentPath":"00410-00001","sub_categories":[{"cat_id":"431","cat_name":"                    Accounting","short_name":"Taxation Partnership","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"412","cat_name":"AAT","short_name":"AAT","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"413","cat_name":"Accounting","short_name":"Accounting","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"414","cat_name":"Accounting Information Systems","short_name":"Accounting Information Systems","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"415","cat_name":"Accounting Theory","short_name":"Accounting Theory","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"416","cat_name":"Appraisal","short_name":"Appraisal","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"417","cat_name":"Audit","short_name":"Audit","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"418","cat_name":"Audit & Assurance","short_name":"Audit & Assurance","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"419","cat_name":"Audit Sampling","short_name":"Audit Sampling","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"420","cat_name":"Bookkeeping","short_name":"Bookkeeping","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"421","cat_name":"Cost Accounting","short_name":"Cost Accounting","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"422","cat_name":"Enrolled Agent","short_name":"Enrolled Agent","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"423","cat_name":"Federal Income Tax","short_name":"Federal Income Tax","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"627","cat_name":"Finanace","short_name":"Finanace","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"424","cat_name":"Financial Accounting","short_name":"Financial Accounting","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"425","cat_name":"Fraud","short_name":"Fraud","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"426","cat_name":"Income Tax","short_name":"Income Tax","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"427","cat_name":"Intermediate Accounting","short_name":"Intermediate Accounting","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"428","cat_name":"Managerial Accounting","short_name":"Managerial Accounting","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"429","cat_name":"Public Finance","short_name":"Public Finance","childNodes":"0","parentPath":"00411-00410-00001"},{"cat_id":"430","cat_name":"Taxation","short_name":"Taxation","childNodes":"0","parentPath":"00411-00410-00001"}]},{"cat_id":"433","cat_name":"Business","short_name":"Business","childNodes":"23","parentPath":"00410-00001","sub_categories":[{"cat_id":"434","cat_name":"Accounting","short_name":"Accounting","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"435","cat_name":"Advertising","short_name":"Advertising","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"436","cat_name":"Business","short_name":"Business","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"437","cat_name":"Business Analysis","short_name":"Business Analysis","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"438","cat_name":"Business Analytics","short_name":"Business Analytics","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"439","cat_name":"Business Communication","short_name":"Business Communication","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"440","cat_name":"Business Ethics","short_name":"Business Ethics","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"441","cat_name":"Employee Training Demo","short_name":"Employee Training Demo","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"442","cat_name":"Entrepreneurship","short_name":"Entrepreneurship","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"443","cat_name":"Fashion","short_name":"Fashion","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"444","cat_name":"Finance","short_name":"Finance","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"445","cat_name":"Global Business","short_name":"Global Business","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"446","cat_name":"Human Resources","short_name":"Human Resources","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"447","cat_name":"Insurance","short_name":"Insurance","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"448","cat_name":"International Business","short_name":"International Business","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"449","cat_name":"Life & Health Insurance","short_name":"Life & Health Insurance","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"450","cat_name":"Logistics","short_name":"Logistics","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"451","cat_name":"Procurement","short_name":"Procurement","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"452","cat_name":"Project Management","short_name":"Project Management","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"453","cat_name":"Risk Management","short_name":"Risk Management","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"454","cat_name":"Salesforce","short_name":"Salesforce","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"455","cat_name":"Supply Chain","short_name":"Supply Chain","childNodes":"0","parentPath":"00433-00410-00001"},{"cat_id":"456","cat_name":"Tourism","short_name":"Tourism","childNodes":"0","parentPath":"00433-00410-00001"}]},{"cat_id":"458","cat_name":"Economics","short_name":"Economics","childNodes":"24","parentPath":"00410-00001","sub_categories":[{"cat_id":"459","cat_name":"Behavioral Economics","short_name":"Behavioral Economics","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"471","cat_name":"Capital Markets","short_name":"Capital Markets","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"472","cat_name":"Corporate Finance","short_name":"Corporate Finance","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"460","cat_name":"Econometrics","short_name":"Econometrics","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"461","cat_name":"Economic Development","short_name":"Economic Development","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"462","cat_name":"Economics","short_name":"Economics","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"463","cat_name":"Environmental Economics","short_name":"Environmental Economics","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"473","cat_name":"Finance","short_name":"Finance","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"474","cat_name":"Financial Exams","short_name":"Financial Exams","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"475","cat_name":"Financial Literacy","short_name":"Financial Literacy","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"476","cat_name":"Financial Markets","short_name":"Financial Markets","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"477","cat_name":"Fixed Income","short_name":"Fixed Income","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"464","cat_name":"Game Theory","short_name":"Game Theory","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"465","cat_name":"Globalization","short_name":"Globalization","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"478","cat_name":"International Finance","short_name":"International Finance","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"479","cat_name":"Investment Analysis","short_name":"Investment Analysis","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"480","cat_name":"Investment Banking","short_name":"Investment Banking","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"466","cat_name":"Macroeconomics","short_name":"Macroeconomics","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"467","cat_name":"Managerial Economics","short_name":"Managerial Economics","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"468","cat_name":"Microeconomics","short_name":"Microeconomics","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"481","cat_name":"Personal Finance","short_name":"Personal Finance","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"469","cat_name":"Principles of Economics","short_name":"Principles of Economics","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"482","cat_name":"Private Equity","short_name":"Private Equity","childNodes":"0","parentPath":"00458-00410-00001"},{"cat_id":"483","cat_name":"Real Estate Finance","short_name":"Real Estate Finance","childNodes":"0","parentPath":"00458-00410-00001"}]},{"cat_id":"470","cat_name":"Finance","short_name":"Finance","childNodes":"0","parentPath":"00410-00001"},{"cat_id":"485","cat_name":"Management","short_name":"Management","childNodes":"12","parentPath":"00410-00001","sub_categories":[{"cat_id":"486","cat_name":"Business Administration","short_name":"Business Administration","childNodes":"0","parentPath":"00485-00410-00001"},{"cat_id":"487","cat_name":"Business Management","short_name":"Business Management","childNodes":"0","parentPath":"00485-00410-00001"},{"cat_id":"488","cat_name":"Effective Supervisory Practices","short_name":"Effective Supervisory Practices","childNodes":"0","parentPath":"00485-00410-00001"},{"cat_id":"489","cat_name":"Facilities Management","short_name":"Facilities Management","childNodes":"0","parentPath":"00485-00410-00001"},{"cat_id":"490","cat_name":"Healthcare Management","short_name":"Healthcare Management","childNodes":"0","parentPath":"00485-00410-00001"},{"cat_id":"491","cat_name":"Higher Business Management","short_name":"Higher Business Management","childNodes":"0","parentPath":"00485-00410-00001"},{"cat_id":"492","cat_name":"Human Resource Management","short_name":"Human Resource Management","childNodes":"0","parentPath":"00485-00410-00001"},{"cat_id":"493","cat_name":"Management 101","short_name":"Management 101","childNodes":"0","parentPath":"00485-00410-00001"},{"cat_id":"494","cat_name":"Operations Management","short_name":"Operations Management","childNodes":"0","parentPath":"00485-00410-00001"},{"cat_id":"495","cat_name":"Organizational Behavior","short_name":"Organizational Behavior","childNodes":"0","parentPath":"00485-00410-00001"},{"cat_id":"496","cat_name":"Principles of Management","short_name":"Principles of Management","childNodes":"0","parentPath":"00485-00410-00001"},{"cat_id":"497","cat_name":"Strategic Management","short_name":"Strategic Management","childNodes":"0","parentPath":"00485-00410-00001"}]},{"cat_id":"499","cat_name":"Marketing","short_name":"Marketing","childNodes":"13","parentPath":"00410-00001","sub_categories":[{"cat_id":"500","cat_name":"B2B Marketing","short_name":"B2B Marketing","childNodes":"0","parentPath":"00499-00410-00001"},{"cat_id":"501","cat_name":"Consumer Behavior","short_name":"Consumer Behavior","childNodes":"0","parentPath":"00499-00410-00001"},{"cat_id":"502","cat_name":"Digital Marketing","short_name":"Digital Marketing","childNodes":"0","parentPath":"00499-00410-00001"},{"cat_id":"503","cat_name":"Global Marketing","short_name":"Global Marketing","childNodes":"0","parentPath":"00499-00410-00001"},{"cat_id":"504","cat_name":"International Marketing","short_name":"International Marketing","childNodes":"0","parentPath":"00499-00410-00001"},{"cat_id":"505","cat_name":"Marketing 101","short_name":"Marketing 101","childNodes":"0","parentPath":"00499-00410-00001"},{"cat_id":"506","cat_name":"Marketing Research","short_name":"Marketing Research","childNodes":"0","parentPath":"00499-00410-00001"},{"cat_id":"507","cat_name":"Neuromarketing","short_name":"Neuromarketing","childNodes":"0","parentPath":"00499-00410-00001"},{"cat_id":"508","cat_name":"Principles of Marketing","short_name":"Principles of Marketing","childNodes":"0","parentPath":"00499-00410-00001"},{"cat_id":"509","cat_name":"Sales & Marketing","short_name":"Sales & Marketing","childNodes":"0","parentPath":"00499-00410-00001"},{"cat_id":"510","cat_name":"Service Marketing","short_name":"Service Marketing","childNodes":"0","parentPath":"00499-00410-00001"},{"cat_id":"511","cat_name":"Social Marketing","short_name":"Social Marketing","childNodes":"0","parentPath":"00499-00410-00001"},{"cat_id":"512","cat_name":"Strategic Marketing","short_name":"Strategic Marketing","childNodes":"0","parentPath":"00499-00410-00001"}]},{"cat_id":"514","cat_name":"Real Estate","short_name":"Real Estate","childNodes":"10","parentPath":"00410-00001","sub_categories":[{"cat_id":"515","cat_name":"Real Estate - General","short_name":"Real Estate - General","childNodes":"0","parentPath":"00514-00410-00001"},{"cat_id":"516","cat_name":"Real Estate Agent","short_name":"Real Estate Agent","childNodes":"0","parentPath":"00514-00410-00001"},{"cat_id":"517","cat_name":"Real Estate Appraisal","short_name":"Real Estate Appraisal","childNodes":"0","parentPath":"00514-00410-00001"},{"cat_id":"518","cat_name":"Real Estate Exam","short_name":"Real Estate Exam","childNodes":"0","parentPath":"00514-00410-00001"},{"cat_id":"519","cat_name":"Real Estate Finance","short_name":"Real Estate Finance","childNodes":"0","parentPath":"00514-00410-00001"},{"cat_id":"520","cat_name":"Real Estate Law","short_name":"Real Estate Law","childNodes":"0","parentPath":"00514-00410-00001"},{"cat_id":"521","cat_name":"Real Estate Math","short_name":"Real Estate Math","childNodes":"0","parentPath":"00514-00410-00001"},{"cat_id":"522","cat_name":"Real Estate Post-Licensing","short_name":"Real Estate Post-Licensing","childNodes":"0","parentPath":"00514-00410-00001"},{"cat_id":"523","cat_name":"Real Estate Practice","short_name":"Real Estate Practice","childNodes":"0","parentPath":"00514-00410-00001"},{"cat_id":"524","cat_name":"Real Estate Principles","short_name":"Real Estate Principles","childNodes":"0","parentPath":"00514-00410-00001"}]}]},{"cat_id":"64","cat_name":"English","short_name":"English","childNodes":"16","parentPath":"00001","sub_categories":[{"cat_id":"65","cat_name":"American Literature","short_name":"American Literature","childNodes":"0","parentPath":"00064-00001"},{"cat_id":"66","cat_name":"British Literature","short_name":"British Literature","childNodes":"0","parentPath":"00064-00001"},{"cat_id":"67","cat_name":"Classic Novels","short_name":"Classic Novels","childNodes":"0","parentPath":"00064-00001"},{"cat_id":"68","cat_name":"Creative Writing","short_name":"Creative Writing","childNodes":"0","parentPath":"00064-00001"},{"cat_id":"69","cat_name":"English","short_name":"English","childNodes":"0","parentPath":"00064-00001"},{"cat_id":"70","cat_name":"English Grammar","short_name":"English Grammar","childNodes":"0","parentPath":"00064-00001"},{"cat_id":"71","cat_name":"Fiction","short_name":"Fiction","childNodes":"0","parentPath":"00064-00001"},{"cat_id":"72","cat_name":"Higher English","short_name":"Higher English","childNodes":"0","parentPath":"00064-00001"},{"cat_id":"73","cat_name":"Literature","short_name":"Literature","childNodes":"0","parentPath":"00064-00001"},{"cat_id":"74","cat_name":"Medieval literature","short_name":"Medieval literature","childNodes":"0","parentPath":"00064-00001"},{"cat_id":"75","cat_name":"Phonics","short_name":"Phonics","childNodes":"0","parentPath":"00064-00001"},{"cat_id":"76","cat_name":"Poetry","short_name":"Poetry","childNodes":"0","parentPath":"00064-00001"},{"cat_id":"77","cat_name":"Proverbs and Idioms","short_name":"Proverbs and Idioms","childNodes":"0","parentPath":"00064-00001"},{"cat_id":"78","cat_name":"Shakespeare","short_name":"Shakespeare","childNodes":"0","parentPath":"00064-00001"},{"cat_id":"79","cat_name":"Spelling","short_name":"Spelling","childNodes":"0","parentPath":"00064-00001"},{"cat_id":"80","cat_name":"Vocab Builder","short_name":"Vocab Builder","childNodes":"0","parentPath":"00064-00001"}]},{"cat_id":"2","cat_name":"Entrance Exams","short_name":"Entrance Exams","childNodes":"8","parentPath":"00001","sub_categories":[{"cat_id":"3","cat_name":"A Level Exams","short_name":"A Level Exams","childNodes":"0","parentPath":"00002-00001"},{"cat_id":"4","cat_name":"AP Exams","short_name":"AP Exams","childNodes":"0","parentPath":"00002-00001"},{"cat_id":"5","cat_name":"GCSE Exams","short_name":"GCSE Exams","childNodes":"0","parentPath":"00002-00001"},{"cat_id":"6","cat_name":"Graduate Entrance Exams","short_name":"Graduate Entrance Exams","childNodes":"0","parentPath":"00002-00001"},{"cat_id":"7","cat_name":"IGCSE Exams","short_name":"IGCSE Exams","childNodes":"0","parentPath":"00002-00001"},{"cat_id":"8","cat_name":"International Baccalaureate","short_name":"International Baccalaureate","childNodes":"0","parentPath":"00002-00001"},{"cat_id":"9","cat_name":"National 5 Exams","short_name":"National 5 Exams","childNodes":"0","parentPath":"00002-00001"},{"cat_id":"10","cat_name":"University Entrance Exams","short_name":"University Entrance Exams","childNodes":"0","parentPath":"00002-00001"}]},{"cat_id":"605","cat_name":"Fine Arts","short_name":"Fine Arts","childNodes":"5","parentPath":"00001","sub_categories":[{"cat_id":"606","cat_name":"Art","short_name":"Art","childNodes":"0","parentPath":"00605-00001"},{"cat_id":"607","cat_name":"Art History","short_name":"Art History","childNodes":"0","parentPath":"00605-00001"},{"cat_id":"608","cat_name":"Dance","short_name":"Dance","childNodes":"0","parentPath":"00605-00001"},{"cat_id":"609","cat_name":"Music","short_name":"Music","childNodes":"0","parentPath":"00605-00001"},{"cat_id":"610","cat_name":"Other Fine Arts","short_name":"Other Fine Arts","childNodes":"0","parentPath":"00605-00001"}]},{"cat_id":"598","cat_name":"Food & Beverage","short_name":"Food & Beverage","childNodes":"6","parentPath":"00001","sub_categories":[{"cat_id":"599","cat_name":"Bartending","short_name":"Bartending","childNodes":"0","parentPath":"00598-00001"},{"cat_id":"600","cat_name":"Cooking","short_name":"Cooking","childNodes":"0","parentPath":"00598-00001"},{"cat_id":"601","cat_name":"Culinary Arts","short_name":"Culinary Arts","childNodes":"0","parentPath":"00598-00001"},{"cat_id":"602","cat_name":"Hospitality","short_name":"Hospitality","childNodes":"0","parentPath":"00598-00001"},{"cat_id":"603","cat_name":"Nutrition","short_name":"Nutrition","childNodes":"0","parentPath":"00598-00001"},{"cat_id":"604","cat_name":"Wine & Spirits","short_name":"Wine & Spirits","childNodes":"0","parentPath":"00598-00001"}]},{"cat_id":"23","cat_name":"Foreign Languages","short_name":"Foreign Languages","childNodes":"14","parentPath":"00001","sub_categories":[{"cat_id":"24","cat_name":"Arabic","short_name":"Arabic","childNodes":"0","parentPath":"00023-00001"},{"cat_id":"25","cat_name":"Chinese","short_name":"Chinese","childNodes":"0","parentPath":"00023-00001"},{"cat_id":"26","cat_name":"French","short_name":"French","childNodes":"0","parentPath":"00023-00001"},{"cat_id":"27","cat_name":"German","short_name":"German","childNodes":"0","parentPath":"00023-00001"},{"cat_id":"28","cat_name":"Hebrew","short_name":"Hebrew","childNodes":"0","parentPath":"00023-00001"},{"cat_id":"29","cat_name":"Italian","short_name":"Italian","childNodes":"0","parentPath":"00023-00001"},{"cat_id":"30","cat_name":"Japanese","short_name":"Japanese","childNodes":"0","parentPath":"00023-00001"},{"cat_id":"31","cat_name":"Korean","short_name":"Korean","childNodes":"0","parentPath":"00023-00001"},{"cat_id":"32","cat_name":"Linguistics","short_name":"Linguistics","childNodes":"0","parentPath":"00023-00001"},{"cat_id":"33","cat_name":"Other Foreign Languages","short_name":"Other Foreign Languages","childNodes":"0","parentPath":"00023-00001"},{"cat_id":"34","cat_name":"Portuguese","short_name":"Portuguese","childNodes":"0","parentPath":"00023-00001"},{"cat_id":"35","cat_name":"Russian","short_name":"Russian","childNodes":"0","parentPath":"00023-00001"},{"cat_id":"36","cat_name":"Spanish","short_name":"Spanish","childNodes":"0","parentPath":"00023-00001"},{"cat_id":"37","cat_name":"TOEFL","short_name":"TOEFL","childNodes":"0","parentPath":"00023-00001"}]},{"cat_id":"396","cat_name":"Health & Fitness","short_name":"Health & Fitness","childNodes":"13","parentPath":"00001","sub_categories":[{"cat_id":"409","cat_name":"ACE Health Coach","short_name":"ACE Health Coach","childNodes":"0","parentPath":"00396-00001"},{"cat_id":"397","cat_name":"Alternative Medicine","short_name":"Alternative Medicine","childNodes":"0","parentPath":"00396-00001"},{"cat_id":"398","cat_name":"Health & Fitness Class","short_name":"Health & Fitness Class","childNodes":"0","parentPath":"00396-00001"},{"cat_id":"399","cat_name":"Health & Human Development","short_name":"Health & Human Development","childNodes":"0","parentPath":"00396-00001"},{"cat_id":"400","cat_name":"Health Class","short_name":"Health Class","childNodes":"0","parentPath":"00396-00001"},{"cat_id":"401","cat_name":"Health Science","short_name":"Health Science","childNodes":"0","parentPath":"00396-00001"},{"cat_id":"402","cat_name":"Human Development","short_name":"Human Development","childNodes":"0","parentPath":"00396-00001"},{"cat_id":"403","cat_name":"Human Growth & Development","short_name":"Human Growth & Development","childNodes":"0","parentPath":"00396-00001"},{"cat_id":"404","cat_name":"Mental Health","short_name":"Mental Health","childNodes":"0","parentPath":"00396-00001"},{"cat_id":"406","cat_name":"NASM CPT","short_name":"NASM CPT","childNodes":"0","parentPath":"00396-00001"},{"cat_id":"405","cat_name":"Public Health","short_name":"Public Health","childNodes":"0","parentPath":"00396-00001"},{"cat_id":"407","cat_name":"Sports & Kinesiology","short_name":"Sports & Kinesiology","childNodes":"0","parentPath":"00396-00001"},{"cat_id":"408","cat_name":"Yoga","short_name":"Yoga","childNodes":"0","parentPath":"00396-00001"}]},{"cat_id":"81","cat_name":"Humanities & Social Studies","short_name":"Humanities & Social Studies","childNodes":"16","parentPath":"00001","sub_categories":[{"cat_id":"90","cat_name":"Anthropology","short_name":"Anthropology","childNodes":"16","parentPath":"00081-00001","sub_categories":[{"cat_id":"91","cat_name":"Anthropology","short_name":"Anthropology","childNodes":"0","parentPath":"00090-00081-00001"},{"cat_id":"92","cat_name":"Archaeology","short_name":"Archaeology","childNodes":"0","parentPath":"00090-00081-00001"},{"cat_id":"93","cat_name":"Biological Anthropology","short_name":"Biological Anthropology","childNodes":"0","parentPath":"00090-00081-00001"},{"cat_id":"94","cat_name":"Cultural Anthropology","short_name":"Cultural Anthropology","childNodes":"0","parentPath":"00090-00081-00001"},{"cat_id":"95","cat_name":"Ethnobotany","short_name":"Ethnobotany","childNodes":"0","parentPath":"00090-00081-00001"},{"cat_id":"96","cat_name":"Evolutionary Genetics","short_name":"Evolutionary Genetics","childNodes":"0","parentPath":"00090-00081-00001"},{"cat_id":"97","cat_name":"Forensic Anthropology","short_name":"Forensic Anthropology","childNodes":"0","parentPath":"00090-00081-00001"},{"cat_id":"98","cat_name":"Fossils","short_name":"Fossils","childNodes":"0","parentPath":"00090-00081-00001"},{"cat_id":"99","cat_name":"Gender Studies","short_name":"Gender Studies","childNodes":"0","parentPath":"00090-00081-00001"},{"cat_id":"100","cat_name":"Human Biology","short_name":"Human Biology","childNodes":"0","parentPath":"00090-00081-00001"},{"cat_id":"101","cat_name":"Human Evolution","short_name":"Human Evolution","childNodes":"0","parentPath":"00090-00081-00001"},{"cat_id":"102","cat_name":"Human Genetics","short_name":"Human Genetics","childNodes":"0","parentPath":"00090-00081-00001"},{"cat_id":"103","cat_name":"Human Reproduction","short_name":"Human Reproduction","childNodes":"0","parentPath":"00090-00081-00001"},{"cat_id":"104","cat_name":"Linguistics","short_name":"Linguistics","childNodes":"0","parentPath":"00090-00081-00001"},{"cat_id":"105","cat_name":"Physical Anthropology","short_name":"Physical Anthropology","childNodes":"0","parentPath":"00090-00081-00001"},{"cat_id":"106","cat_name":"Primate Behavior","short_name":"Primate Behavior","childNodes":"0","parentPath":"00090-00081-00001"}]},{"cat_id":"307","cat_name":"Citizenship","short_name":"Citizenship","childNodes":"0","parentPath":"00081-00001"},{"cat_id":"308","cat_name":"Civics","short_name":"Civics","childNodes":"0","parentPath":"00081-00001"},{"cat_id":"107","cat_name":"Classics","short_name":"Classics","childNodes":"9","parentPath":"00081-00001","sub_categories":[{"cat_id":"108","cat_name":"Ancient Greek","short_name":"Ancient Greek","childNodes":"0","parentPath":"00107-00081-00001"},{"cat_id":"109","cat_name":"Classical Architecture","short_name":"Classical Architecture","childNodes":"0","parentPath":"00107-00081-00001"},{"cat_id":"110","cat_name":"Classical Art","short_name":"Classical Art","childNodes":"0","parentPath":"00107-00081-00001"},{"cat_id":"111","cat_name":"Classical Mythology","short_name":"Classical Mythology","childNodes":"0","parentPath":"00107-00081-00001"},{"cat_id":"112","cat_name":"Greek Civilization","short_name":"Greek Civilization","childNodes":"0","parentPath":"00107-00081-00001"},{"cat_id":"113","cat_name":"Greek History","short_name":"Greek History","childNodes":"0","parentPath":"00107-00081-00001"},{"cat_id":"114","cat_name":"Latin","short_name":"Latin","childNodes":"0","parentPath":"00107-00081-00001"},{"cat_id":"115","cat_name":"Roman Civilization","short_name":"Roman Civilization","childNodes":"0","parentPath":"00107-00081-00001"},{"cat_id":"116","cat_name":"Roman History","short_name":"Roman History","childNodes":"0","parentPath":"00107-00081-00001"}]},{"cat_id":"117","cat_name":"Communications","short_name":"Communications","childNodes":"19","parentPath":"00081-00001","sub_categories":[{"cat_id":"118","cat_name":"Argumentation","short_name":"Argumentation","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"119","cat_name":"Business Communication","short_name":"Business Communication","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"120","cat_name":"Communication Theory","short_name":"Communication Theory","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"121","cat_name":"Communications","short_name":"Communications","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"122","cat_name":"Debate","short_name":"Debate","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"123","cat_name":"Human Relationships","short_name":"Human Relationships","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"124","cat_name":"Interpersonal Communication","short_name":"Interpersonal Communication","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"125","cat_name":"Mass Communication","short_name":"Mass Communication","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"126","cat_name":"Mass Media","short_name":"Mass Media","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"127","cat_name":"Media Studies","short_name":"Media Studies","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"128","cat_name":"Nonverbal Communication","short_name":"Nonverbal Communication","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"129","cat_name":"Organizational Communication","short_name":"Organizational Communication","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"130","cat_name":"Persuasion","short_name":"Persuasion","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"131","cat_name":"Professional Communication","short_name":"Professional Communication","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"132","cat_name":"Public Relations","short_name":"Public Relations","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"133","cat_name":"Public Speaking","short_name":"Public Speaking","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"134","cat_name":"Rhetoric","short_name":"Rhetoric","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"135","cat_name":"Small Group Communication","short_name":"Small Group Communication","childNodes":"0","parentPath":"00117-00081-00001"},{"cat_id":"136","cat_name":"Speech Communication","short_name":"Speech Communication","childNodes":"0","parentPath":"00117-00081-00001"}]},{"cat_id":"137","cat_name":"Counseling","short_name":"Counseling","childNodes":"6","parentPath":"00081-00001","sub_categories":[{"cat_id":"138","cat_name":"Counseling","short_name":"Counseling","childNodes":"1","parentPath":"00137-00081-00001","sub_categories":[{"cat_id":"629","cat_name":"Counseling","short_name":"Accounting","childNodes":"0","parentPath":"00138-00137-00081-00001"}]},{"cat_id":"139","cat_name":"Counseling Theory","short_name":"Counseling Theory","childNodes":"0","parentPath":"00137-00081-00001"},{"cat_id":"140","cat_name":"Family Therapy","short_name":"Family Therapy","childNodes":"0","parentPath":"00137-00081-00001"},{"cat_id":"141","cat_name":"LMSW Exam","short_name":"LMSW Exam","childNodes":"0","parentPath":"00137-00081-00001"},{"cat_id":"142","cat_name":"MFT Exam","short_name":"MFT Exam","childNodes":"0","parentPath":"00137-00081-00001"},{"cat_id":"143","cat_name":"NCMHCE","short_name":"NCMHCE","childNodes":"0","parentPath":"00137-00081-00001"}]},{"cat_id":"144","cat_name":"Criminal Justice","short_name":"Criminal Justice","childNodes":"19","parentPath":"00081-00001","sub_categories":[{"cat_id":"145","cat_name":"CIB","short_name":"CIB","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"146","cat_name":"Civil Rights","short_name":"Civil Rights","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"147","cat_name":"Corrections","short_name":"Corrections","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"148","cat_name":"Crime & Deviance","short_name":"Crime & Deviance","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"149","cat_name":"Crime & Punishment","short_name":"Crime & Punishment","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"150","cat_name":"Criminal Investigation","short_name":"Criminal Investigation","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"151","cat_name":"Criminal Justice","short_name":"Criminal Justice","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"152","cat_name":"Criminal Psychology","short_name":"Criminal Psychology","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"153","cat_name":"Criminology","short_name":"Criminology","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"154","cat_name":"Cybercrime","short_name":"Cybercrime","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"155","cat_name":"Forensic Pathology","short_name":"Forensic Pathology","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"156","cat_name":"Forensic Science","short_name":"Forensic Science","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"157","cat_name":"History of Crime","short_name":"History of Crime","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"158","cat_name":"Intro to Criminology","short_name":"Intro to Criminology","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"159","cat_name":"Law Enforcement","short_name":"Law Enforcement","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"160","cat_name":"Police Administration","short_name":"Police Administration","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"161","cat_name":"Police Studies","short_name":"Police Studies","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"162","cat_name":"Policing","short_name":"Policing","childNodes":"0","parentPath":"00144-00081-00001"},{"cat_id":"163","cat_name":"Prosecution","short_name":"Prosecution","childNodes":"0","parentPath":"00144-00081-00001"}]},{"cat_id":"164","cat_name":"Geography","short_name":"Geography","childNodes":"14","parentPath":"00081-00001","sub_categories":[{"cat_id":"165","cat_name":"Cartography","short_name":"Cartography","childNodes":"0","parentPath":"00164-00081-00001"},{"cat_id":"166","cat_name":"Climate Change","short_name":"Climate Change","childNodes":"0","parentPath":"00164-00081-00001"},{"cat_id":"167","cat_name":"Cultural Geography","short_name":"Cultural Geography","childNodes":"0","parentPath":"00164-00081-00001"},{"cat_id":"168","cat_name":"Environmental Science","short_name":"Environmental Science","childNodes":"0","parentPath":"00164-00081-00001"},{"cat_id":"169","cat_name":"Geography","short_name":"Geography","childNodes":"0","parentPath":"00164-00081-00001"},{"cat_id":"170","cat_name":"Human Geography","short_name":"Human Geography","childNodes":"0","parentPath":"00164-00081-00001"},{"cat_id":"171","cat_name":"Hydrology","short_name":"Hydrology","childNodes":"0","parentPath":"00164-00081-00001"},{"cat_id":"172","cat_name":"Landforms","short_name":"Landforms","childNodes":"0","parentPath":"00164-00081-00001"},{"cat_id":"173","cat_name":"Physical Geography","short_name":"Physical Geography","childNodes":"0","parentPath":"00164-00081-00001"},{"cat_id":"174","cat_name":"U.S. Geography","short_name":"U.S. Geography","childNodes":"0","parentPath":"00164-00081-00001"},{"cat_id":"175","cat_name":"Urban Geography","short_name":"Urban Geography","childNodes":"0","parentPath":"00164-00081-00001"},{"cat_id":"176","cat_name":"Weather and Climate","short_name":"Weather and Climate","childNodes":"0","parentPath":"00164-00081-00001"},{"cat_id":"177","cat_name":"World Capitals","short_name":"World Capitals","childNodes":"0","parentPath":"00164-00081-00001"},{"cat_id":"178","cat_name":"World Geography","short_name":"World Geography","childNodes":"0","parentPath":"00164-00081-00001"}]},{"cat_id":"179","cat_name":"History","short_name":"History","childNodes":"20","parentPath":"00081-00001","sub_categories":[{"cat_id":"180","cat_name":"African History","short_name":"African History","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"181","cat_name":"American West","short_name":"American West","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"182","cat_name":"Ancient Greece","short_name":"Ancient Greece","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"183","cat_name":"Ancient History","short_name":"Ancient History","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"184","cat_name":"Ancient Rome","short_name":"Ancient Rome","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"185","cat_name":"British History","short_name":"British History","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"186","cat_name":"Chinese History","short_name":"Chinese History","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"187","cat_name":"Christian History","short_name":"Christian History","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"188","cat_name":"Cold War","short_name":"Cold War","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"189","cat_name":"European History","short_name":"European History","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"190","cat_name":"Islamic History","short_name":"Islamic History","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"191","cat_name":"Jewish History","short_name":"Jewish History","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"192","cat_name":"Latin American History","short_name":"Latin American History","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"193","cat_name":"Medieval History","short_name":"Medieval History","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"194","cat_name":"Modern World History","short_name":"Modern World History","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"195","cat_name":"US History","short_name":"US History","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"196","cat_name":"Western Civilization","short_name":"Western Civilization","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"197","cat_name":"Womens History","short_name":"Womens History","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"198","cat_name":"World Civilizations","short_name":"World Civilizations","childNodes":"0","parentPath":"00179-00081-00001"},{"cat_id":"199","cat_name":"World History","short_name":"World History","childNodes":"0","parentPath":"00179-00081-00001"}]},{"cat_id":"82","cat_name":"Philosophy","short_name":"Philosophy","childNodes":"7","parentPath":"00081-00001","sub_categories":[{"cat_id":"83","cat_name":"Critical Thinking","short_name":"Critical Thinking","childNodes":"0","parentPath":"00082-00081-00001"},{"cat_id":"84","cat_name":"Ethics","short_name":"Ethics","childNodes":"0","parentPath":"00082-00081-00001"},{"cat_id":"85","cat_name":"Intro Philosophy","short_name":"Intro Philosophy","childNodes":"0","parentPath":"00082-00081-00001"},{"cat_id":"86","cat_name":"Logic","short_name":"Logic","childNodes":"0","parentPath":"00082-00081-00001"},{"cat_id":"87","cat_name":"Philosophy","short_name":"Philosophy","childNodes":"0","parentPath":"00082-00081-00001"},{"cat_id":"88","cat_name":"Plato","short_name":"Plato","childNodes":"0","parentPath":"00082-00081-00001"},{"cat_id":"89","cat_name":"Rhetoric","short_name":"Rhetoric","childNodes":"0","parentPath":"00082-00081-00001"}]},{"cat_id":"200","cat_name":"Political Science","short_name":"Political Science","childNodes":"17","parentPath":"00081-00001","sub_categories":[{"cat_id":"201","cat_name":"American Government","short_name":"American Government","childNodes":"0","parentPath":"00200-00081-00001"},{"cat_id":"202","cat_name":"Comparative Politics","short_name":"Comparative Politics","childNodes":"0","parentPath":"00200-00081-00001"},{"cat_id":"203","cat_name":"Foreign Policy","short_name":"Foreign Policy","childNodes":"0","parentPath":"00200-00081-00001"},{"cat_id":"204","cat_name":"Global Issues","short_name":"Global Issues","childNodes":"0","parentPath":"00200-00081-00001"},{"cat_id":"205","cat_name":"Human Rights","short_name":"Human Rights","childNodes":"0","parentPath":"00200-00081-00001"},{"cat_id":"206","cat_name":"International Political Economy","short_name":"International Political Economy","childNodes":"0","parentPath":"00200-00081-00001"},{"cat_id":"207","cat_name":"International Relations","short_name":"International Relations","childNodes":"0","parentPath":"00200-00081-00001"},{"cat_id":"208","cat_name":"Intro Political Science","short_name":"Intro Political Science","childNodes":"0","parentPath":"00200-00081-00001"},{"cat_id":"209","cat_name":"Policy Analysis","short_name":"Policy Analysis","childNodes":"0","parentPath":"00200-00081-00001"},{"cat_id":"210","cat_name":"Political Science","short_name":"Political Science","childNodes":"0","parentPath":"00200-00081-00001"},{"cat_id":"211","cat_name":"Presidency","short_name":"Presidency","childNodes":"0","parentPath":"00200-00081-00001"},{"cat_id":"212","cat_name":"Public Administration","short_name":"Public Administration","childNodes":"0","parentPath":"00200-00081-00001"},{"cat_id":"213","cat_name":"Public Policy","short_name":"Public Policy","childNodes":"0","parentPath":"00200-00081-00001"},{"cat_id":"214","cat_name":"Social Justice","short_name":"Social Justice","childNodes":"0","parentPath":"00200-00081-00001"},{"cat_id":"215","cat_name":"Terrorism","short_name":"Terrorism","childNodes":"0","parentPath":"00200-00081-00001"},{"cat_id":"216","cat_name":"UK Politics","short_name":"UK Politics","childNodes":"0","parentPath":"00200-00081-00001"},{"cat_id":"217","cat_name":"US Congress Leadership","short_name":"US Congress Leadership","childNodes":"0","parentPath":"00200-00081-00001"}]},{"cat_id":"218","cat_name":"Psychology","short_name":"Psychology","childNodes":"53","parentPath":"00081-00001","sub_categories":[{"cat_id":"219","cat_name":"Behavior Analysis","short_name":"Behavior Analysis","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"220","cat_name":"Behavioral Neuroscience","short_name":"Behavioral Neuroscience","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"221","cat_name":"Behavioral Statistics","short_name":"Behavioral Statistics","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"222","cat_name":"Biological Psychology","short_name":"Biological Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"223","cat_name":"Biopsychology","short_name":"Biopsychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"224","cat_name":"Brain and Behavior","short_name":"Brain and Behavior","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"225","cat_name":"Child Development","short_name":"Child Development","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"226","cat_name":"Child Psychology","short_name":"Child Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"227","cat_name":"Clinical Psychology","short_name":"Clinical Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"228","cat_name":"Cognitive Biases","short_name":"Cognitive Biases","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"229","cat_name":"Cognitive Neuroscience","short_name":"Cognitive Neuroscience","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"230","cat_name":"Cognitive Psychology","short_name":"Cognitive Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"231","cat_name":"Cognitive Science","short_name":"Cognitive Science","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"232","cat_name":"Community Psychology","short_name":"Community Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"233","cat_name":"Cultural Psychology","short_name":"Cultural Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"234","cat_name":"Developmental Psychology","short_name":"Developmental Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"235","cat_name":"Drugs and Behavior","short_name":"Drugs and Behavior","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"236","cat_name":"DSM","short_name":"DSM","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"237","cat_name":"DSM-5","short_name":"DSM-5","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"238","cat_name":"Educational Psychology","short_name":"Educational Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"239","cat_name":"Environmental Psychology","short_name":"Environmental Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"240","cat_name":"Evolutionary Psychology","short_name":"Evolutionary Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"241","cat_name":"Experimental Psychology","short_name":"Experimental Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"242","cat_name":"Forensic Pscyhology","short_name":"Forensic Pscyhology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"243","cat_name":"Gender Psychology","short_name":"Gender Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"244","cat_name":"General Psychology","short_name":"General Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"245","cat_name":"Health Psychology","short_name":"Health Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"246","cat_name":"Human Behavior","short_name":"Human Behavior","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"247","cat_name":"Human Sexuality","short_name":"Human Sexuality","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"248","cat_name":"Industrial Psychology","short_name":"Industrial Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"249","cat_name":"Intro Psychology","short_name":"Intro Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"250","cat_name":"Language Development","short_name":"Language Development","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"251","cat_name":"Learning and Memory","short_name":"Learning and Memory","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"252","cat_name":"Lifespan Psychology","short_name":"Lifespan Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"253","cat_name":"Neuropsychology","short_name":"Neuropsychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"254","cat_name":"Phonology","short_name":"Phonology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"255","cat_name":"Positive Psychology","short_name":"Positive Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"256","cat_name":"Psychobiology","short_name":"Psychobiology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"257","cat_name":"Psychological Assessment","short_name":"Psychological Assessment","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"258","cat_name":"Psychological Statistics","short_name":"Psychological Statistics","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"259","cat_name":"Psychological Testing","short_name":"Psychological Testing","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"260","cat_name":"Psychology","short_name":"Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"261","cat_name":"Psychology Ethics","short_name":"Psychology Ethics","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"262","cat_name":"Psychopathology","short_name":"Psychopathology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"263","cat_name":"Psychopharmacology","short_name":"Psychopharmacology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"264","cat_name":"Psychosocial","short_name":"Psychosocial","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"265","cat_name":"Psychotherapy","short_name":"Psychotherapy","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"266","cat_name":"Psychotropic Drugs","short_name":"Psychotropic Drugs","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"267","cat_name":"Research Methods in Psych","short_name":"Research Methods in Psych","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"268","cat_name":"Sensation and Perception","short_name":"Sensation and Perception","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"269","cat_name":"Social Psychology","short_name":"Social Psychology","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"270","cat_name":"The Brain","short_name":"The Brain","childNodes":"0","parentPath":"00218-00081-00001"},{"cat_id":"271","cat_name":"Theories of Personality","short_name":"Theories of Personality","childNodes":"0","parentPath":"00218-00081-00001"}]},{"cat_id":"272","cat_name":"Religion and Bible","short_name":"Religion and Bible","childNodes":"19","parentPath":"00081-00001","sub_categories":[{"cat_id":"273","cat_name":"Aramaic","short_name":"Aramaic","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"274","cat_name":"Bible","short_name":"Bible","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"275","cat_name":"Bible Verses","short_name":"Bible Verses","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"276","cat_name":"Biblical Greek","short_name":"Biblical Greek","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"277","cat_name":"Buddhism","short_name":"Buddhism","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"278","cat_name":"Catholicism","short_name":"Catholicism","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"279","cat_name":"Christianity","short_name":"Christianity","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"280","cat_name":"Hebrew","short_name":"Hebrew","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"281","cat_name":"Hinduism","short_name":"Hinduism","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"282","cat_name":"Islam","short_name":"Islam","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"283","cat_name":"Judaism","short_name":"Judaism","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"284","cat_name":"New Testament","short_name":"New Testament","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"285","cat_name":"Old Testament","short_name":"Old Testament","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"286","cat_name":"Quran","short_name":"Quran","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"287","cat_name":"Religion","short_name":"Religion","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"288","cat_name":"Religious Studies","short_name":"Religious Studies","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"289","cat_name":"Sanskrit","short_name":"Sanskrit","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"290","cat_name":"Theology","short_name":"Theology","childNodes":"0","parentPath":"00272-00081-00001"},{"cat_id":"291","cat_name":"Torah","short_name":"Torah","childNodes":"0","parentPath":"00272-00081-00001"}]},{"cat_id":"309","cat_name":"Social Studies","short_name":"Social Studies","childNodes":"0","parentPath":"00081-00001"},{"cat_id":"310","cat_name":"Social Work","short_name":"Social Work","childNodes":"0","parentPath":"00081-00001"},{"cat_id":"292","cat_name":"Sociology","short_name":"Sociology","childNodes":"14","parentPath":"00081-00001","sub_categories":[{"cat_id":"293","cat_name":"Civil Rights","short_name":"Civil Rights","childNodes":"0","parentPath":"00292-00081-00001"},{"cat_id":"294","cat_name":"Cultural Diversity","short_name":"Cultural Diversity","childNodes":"0","parentPath":"00292-00081-00001"},{"cat_id":"295","cat_name":"Gender Studies","short_name":"Gender Studies","childNodes":"0","parentPath":"00292-00081-00001"},{"cat_id":"296","cat_name":"Group Dynamcis","short_name":"Group Dynamcis","childNodes":"0","parentPath":"00292-00081-00001"},{"cat_id":"297","cat_name":"Intro Sociology","short_name":"Intro Sociology","childNodes":"0","parentPath":"00292-00081-00001"},{"cat_id":"298","cat_name":"Juvenile Delinquency","short_name":"Juvenile Delinquency","childNodes":"0","parentPath":"00292-00081-00001"},{"cat_id":"299","cat_name":"Marriage & Family","short_name":"Marriage & Family","childNodes":"0","parentPath":"00292-00081-00001"},{"cat_id":"300","cat_name":"Mass Media Sociology","short_name":"Mass Media Sociology","childNodes":"0","parentPath":"00292-00081-00001"},{"cat_id":"301","cat_name":"Medical Sociology","short_name":"Medical Sociology","childNodes":"0","parentPath":"00292-00081-00001"},{"cat_id":"302","cat_name":"Social Control","short_name":"Social Control","childNodes":"0","parentPath":"00292-00081-00001"},{"cat_id":"303","cat_name":"Social Institutions","short_name":"Social Institutions","childNodes":"0","parentPath":"00292-00081-00001"},{"cat_id":"304","cat_name":"Sociology","short_name":"Sociology","childNodes":"0","parentPath":"00292-00081-00001"},{"cat_id":"305","cat_name":"Subcultures","short_name":"Subcultures","childNodes":"0","parentPath":"00292-00081-00001"},{"cat_id":"306","cat_name":"Youth Subcultures","short_name":"Youth Subcultures","childNodes":"0","parentPath":"00292-00081-00001"}]}]},{"cat_id":"623","cat_name":"Languages","short_name":"Languages","childNodes":"3","parentPath":"00001","sub_categories":[{"cat_id":"626","cat_name":"Africans","short_name":"Africans","childNodes":"0","parentPath":"00623-00001"},{"cat_id":"624","cat_name":"Xkhosa","short_name":"Xkhosa","childNodes":"0","parentPath":"00623-00001"},{"cat_id":"625","cat_name":"Zulu","short_name":"Zulu","childNodes":"0","parentPath":"00623-00001"}]},{"cat_id":"366","cat_name":"Law","short_name":"Law","childNodes":"29","parentPath":"00001","sub_categories":[{"cat_id":"368","cat_name":"Bankruptcy","short_name":"Bankruptcy","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"369","cat_name":"Bar Exam","short_name":"Bar Exam","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"370","cat_name":"Business Law","short_name":"Business Law","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"371","cat_name":"California Bar Exam","short_name":"California Bar Exam","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"372","cat_name":"CIPP Exam","short_name":"CIPP Exam","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"373","cat_name":"Civil Procedure","short_name":"Civil Procedure","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"374","cat_name":"Constitutional Law","short_name":"Constitutional Law","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"375","cat_name":"Contract Law","short_name":"Contract Law","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"376","cat_name":"Corporate Law","short_name":"Corporate Law","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"377","cat_name":"Criminal Law","short_name":"Criminal Law","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"378","cat_name":"Evidence","short_name":"Evidence","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"379","cat_name":"Family Law","short_name":"Family Law","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"380","cat_name":"Florida Bar Exam","short_name":"Florida Bar Exam","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"381","cat_name":"Insurance Law","short_name":"Insurance Law","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"382","cat_name":"Intellectual Property","short_name":"Intellectual Property","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"383","cat_name":"International Law","short_name":"International Law","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"384","cat_name":"Law","short_name":"Law","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"385","cat_name":"Law & Ethics","short_name":"Law & Ethics","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"386","cat_name":"Legal Studies","short_name":"Legal Studies","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"367","cat_name":"Legislation Acts Policies","short_name":"Legislation Acts Policies","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"387","cat_name":"Litigation","short_name":"Litigation","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"388","cat_name":"MBE","short_name":"MBE","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"389","cat_name":"MPRE","short_name":"MPRE","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"390","cat_name":"Pharmacy Law","short_name":"Pharmacy Law","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"391","cat_name":"Property Law","short_name":"Property Law","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"392","cat_name":"Real Estate Law","short_name":"Real Estate Law","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"393","cat_name":"Texas Bar Exam","short_name":"Texas Bar Exam","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"394","cat_name":"Torts","short_name":"Torts","childNodes":"0","parentPath":"00366-00001"},{"cat_id":"395","cat_name":"Trusts & Estates","short_name":"Trusts & Estates","childNodes":"0","parentPath":"00366-00001"}]},{"cat_id":"311","cat_name":"Mathematics","short_name":"Mathematics","childNodes":"13","parentPath":"00001","sub_categories":[{"cat_id":"312","cat_name":"Algebra","short_name":"Algebra","childNodes":"0","parentPath":"00311-00001"},{"cat_id":"313","cat_name":"Algebra II","short_name":"Algebra II","childNodes":"0","parentPath":"00311-00001"},{"cat_id":"314","cat_name":"Arithmetic","short_name":"Arithmetic","childNodes":"0","parentPath":"00311-00001"},{"cat_id":"315","cat_name":"Calculus","short_name":"Calculus","childNodes":"0","parentPath":"00311-00001"},{"cat_id":"316","cat_name":"Geometry","short_name":"Geometry","childNodes":"0","parentPath":"00311-00001"},{"cat_id":"317","cat_name":"Linear Algebra","short_name":"Linear Algebra","childNodes":"0","parentPath":"00311-00001"},{"cat_id":"318","cat_name":"Math","short_name":"Math","childNodes":"0","parentPath":"00311-00001"},{"cat_id":"319","cat_name":"Multiplication Tables","short_name":"Multiplication Tables","childNodes":"0","parentPath":"00311-00001"},{"cat_id":"320","cat_name":"Precalculus","short_name":"Precalculus","childNodes":"0","parentPath":"00311-00001"},{"cat_id":"321","cat_name":"Probability","short_name":"Probability","childNodes":"0","parentPath":"00311-00001"},{"cat_id":"322","cat_name":"Statistical Methods","short_name":"Statistical Methods","childNodes":"0","parentPath":"00311-00001"},{"cat_id":"323","cat_name":"Statistics","short_name":"Statistics","childNodes":"0","parentPath":"00311-00001"},{"cat_id":"324","cat_name":"Trigonometry","short_name":"Trigonometry","childNodes":"0","parentPath":"00311-00001"}]},{"cat_id":"325","cat_name":"Medical & Nursing","short_name":"Medical & Nursing","childNodes":"15","parentPath":"00001","sub_categories":[{"cat_id":"326","cat_name":"Anatomy","short_name":"Anatomy","childNodes":"0","parentPath":"00325-00001"},{"cat_id":"327","cat_name":"Body Systems","short_name":"Body Systems","childNodes":"0","parentPath":"00325-00001"},{"cat_id":"328","cat_name":"Dentistry","short_name":"Dentistry","childNodes":"0","parentPath":"00325-00001"},{"cat_id":"329","cat_name":"Medical Courses & Subject Areas","short_name":"Medical Courses & Subject Areas","childNodes":"0","parentPath":"00325-00001"},{"cat_id":"330","cat_name":"Medical Exams","short_name":"Medical Exams","childNodes":"0","parentPath":"00325-00001"},{"cat_id":"331","cat_name":"Medical Subspecialties","short_name":"Medical Subspecialties","childNodes":"0","parentPath":"00325-00001"},{"cat_id":"332","cat_name":"Medical Terminology","short_name":"Medical Terminology","childNodes":"0","parentPath":"00325-00001"},{"cat_id":"333","cat_name":"Misc Healthcare Topics","short_name":"Misc Healthcare Topics","childNodes":"0","parentPath":"00325-00001"},{"cat_id":"334","cat_name":"Nursing Courses & Subject Areas","short_name":"Nursing Courses & Subject Areas","childNodes":"0","parentPath":"00325-00001"},{"cat_id":"335","cat_name":"Nursing Subspecialties","short_name":"Nursing Subspecialties","childNodes":"0","parentPath":"00325-00001"},{"cat_id":"336","cat_name":"Other Healthcare Fields","short_name":"Other Healthcare Fields","childNodes":"0","parentPath":"00325-00001"},{"cat_id":"337","cat_name":"Pharmacology","short_name":"Pharmacology","childNodes":"0","parentPath":"00325-00001"},{"cat_id":"338","cat_name":"Physiology","short_name":"Physiology","childNodes":"0","parentPath":"00325-00001"},{"cat_id":"339","cat_name":"Radiology & Diagnostic Imaging","short_name":"Radiology & Diagnostic Imaging","childNodes":"0","parentPath":"00325-00001"},{"cat_id":"340","cat_name":"Veterinary","short_name":"Veterinary","childNodes":"0","parentPath":"00325-00001"}]},{"cat_id":"11","cat_name":"Professional Certifications","short_name":"Professional Certifications","childNodes":"11","parentPath":"00001","sub_categories":[{"cat_id":"12","cat_name":"Bar Exam","short_name":"Bar Exam","childNodes":"0","parentPath":"00011-00001"},{"cat_id":"13","cat_name":"Drivers Ed","short_name":"Drivers Ed","childNodes":"0","parentPath":"00011-00001"},{"cat_id":"14","cat_name":"Financial Exams","short_name":"Financial Exams","childNodes":"0","parentPath":"00011-00001"},{"cat_id":"15","cat_name":"Management Certifications","short_name":"Management Certifications","childNodes":"0","parentPath":"00011-00001"},{"cat_id":"16","cat_name":"Medical & Nursing Certifications","short_name":"Medical & Nursing Certifications","childNodes":"0","parentPath":"00011-00001"},{"cat_id":"17","cat_name":"Military Exams","short_name":"Military Exams","childNodes":"0","parentPath":"00011-00001"},{"cat_id":"18","cat_name":"MPRE","short_name":"MPRE","childNodes":"0","parentPath":"00011-00001"},{"cat_id":"19","cat_name":"Other Certifications","short_name":"Other Certifications","childNodes":"0","parentPath":"00011-00001"},{"cat_id":"20","cat_name":"Technology Certifications","short_name":"Technology Certifications","childNodes":"0","parentPath":"00011-00001"},{"cat_id":"21","cat_name":"TOEFL","short_name":"TOEFL","childNodes":"0","parentPath":"00011-00001"},{"cat_id":"22","cat_name":"Wine & Spirits","short_name":"Wine & Spirits","childNodes":"0","parentPath":"00011-00001"}]},{"cat_id":"611","cat_name":"Random Knowledge","short_name":"Random Knowledge","childNodes":"11","parentPath":"00001","sub_categories":[{"cat_id":"612","cat_name":"Astrology","short_name":"Astrology","childNodes":"0","parentPath":"00611-00001"},{"cat_id":"613","cat_name":"Blackjack","short_name":"Blackjack","childNodes":"0","parentPath":"00611-00001"},{"cat_id":"614","cat_name":"Cultural Literacy","short_name":"Cultural Literacy","childNodes":"0","parentPath":"00611-00001"},{"cat_id":"615","cat_name":"Knowledge Rehab","short_name":"Knowledge Rehab","childNodes":"0","parentPath":"00611-00001"},{"cat_id":"616","cat_name":"Mythology","short_name":"Mythology","childNodes":"0","parentPath":"00611-00001"},{"cat_id":"617","cat_name":"National Capitals","short_name":"National Capitals","childNodes":"0","parentPath":"00611-00001"},{"cat_id":"618","cat_name":"People You Should Know","short_name":"People You Should Know","childNodes":"0","parentPath":"00611-00001"},{"cat_id":"619","cat_name":"Poker","short_name":"Poker","childNodes":"0","parentPath":"00611-00001"},{"cat_id":"620","cat_name":"Quiz Bowl","short_name":"Quiz Bowl","childNodes":"0","parentPath":"00611-00001"},{"cat_id":"621","cat_name":"Sports Trivia","short_name":"Sports Trivia","childNodes":"0","parentPath":"00611-00001"},{"cat_id":"622","cat_name":"Tarot Cards","short_name":"Tarot Cards","childNodes":"0","parentPath":"00611-00001"}]},{"cat_id":"38","cat_name":"Science","short_name":"Science","childNodes":"25","parentPath":"00001","sub_categories":[{"cat_id":"39","cat_name":"Anatomy","short_name":"Anatomy","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"40","cat_name":"Astronomy","short_name":"Astronomy","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"41","cat_name":"Biochemistry","short_name":"Biochemistry","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"42","cat_name":"Biology","short_name":"Biology","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"43","cat_name":"Cellular Biology","short_name":"Cellular Biology","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"44","cat_name":"Chemistry","short_name":"Chemistry","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"45","cat_name":"Earth Science","short_name":"Earth Science","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"46","cat_name":"Environmental Science","short_name":"Environmental Science","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"47","cat_name":"Genetics","short_name":"Genetics","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"48","cat_name":"Geology","short_name":"Geology","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"49","cat_name":"Life Science","short_name":"Life Science","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"50","cat_name":"Marine Biology","short_name":"Marine Biology","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"51","cat_name":"Meteorology","short_name":"Meteorology","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"52","cat_name":"Microbiology","short_name":"Microbiology","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"53","cat_name":"Molecular Biology","short_name":"Molecular Biology","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"54","cat_name":"Natural Science","short_name":"Natural Science","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"55","cat_name":"Oceanography","short_name":"Oceanography","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"56","cat_name":"Organic Chemistry","short_name":"Organic Chemistry","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"57","cat_name":"Periodic Table","short_name":"Periodic Table","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"58","cat_name":"Physical Science","short_name":"Physical Science","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"59","cat_name":"Physics","short_name":"Physics","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"60","cat_name":"Physiology","short_name":"Physiology","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"61","cat_name":"Plant Science","short_name":"Plant Science","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"62","cat_name":"Science Class","short_name":"Science Class","childNodes":"0","parentPath":"00038-00001"},{"cat_id":"63","cat_name":"Zoology","short_name":"Zoology","childNodes":"0","parentPath":"00038-00001"}]},{"cat_id":"525","cat_name":"Technology & Engineering","short_name":"Technology & Engineering","childNodes":"9","parentPath":"00001","sub_categories":[{"cat_id":"526","cat_name":"Architecture","short_name":"Architecture","childNodes":"0","parentPath":"00525-00001"},{"cat_id":"527","cat_name":"Biotechnology","short_name":"Biotechnology","childNodes":"0","parentPath":"00525-00001"},{"cat_id":"528","cat_name":"Computer Programming","short_name":"Computer Programming","childNodes":"22","parentPath":"00525-00001","sub_categories":[{"cat_id":"529","cat_name":"Agile","short_name":"Agile","childNodes":"1","parentPath":"00528-00525-00001","sub_categories":[{"cat_id":"628","cat_name":"test category","short_name":"test category","childNodes":"0","parentPath":"00529-00528-00525-00001"}]},{"cat_id":"530","cat_name":"AWS","short_name":"AWS","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"550","cat_name":"Brainscape Certified (\u00c2\u00a0See All\u00c2\u00a0)","short_name":"Brainscape Certified (\u00c2\u00a0See All\u00c2\u00a0)","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"531","cat_name":"Computer Programming","short_name":"Computer Programming","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"532","cat_name":"Cryptography","short_name":"Cryptography","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"533","cat_name":"Git Commands","short_name":"Git Commands","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"534","cat_name":"HTML","short_name":"HTML","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"535","cat_name":"Java","short_name":"Java","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"536","cat_name":"Javascript","short_name":"Javascript","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"537","cat_name":"Keyboard Shortcuts","short_name":"Keyboard Shortcuts","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"538","cat_name":"Kubernetes","short_name":"Kubernetes","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"539","cat_name":"Linux","short_name":"Linux","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"540","cat_name":"Mac OS","short_name":"Mac OS","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"541","cat_name":"Objective-C","short_name":"Objective-C","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"542","cat_name":"PHP","short_name":"PHP","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"543","cat_name":"Python","short_name":"Python","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"544","cat_name":"React","short_name":"React","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"545","cat_name":"Ruby","short_name":"Ruby","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"546","cat_name":"Ruby on Rails","short_name":"Ruby on Rails","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"547","cat_name":"Swift","short_name":"Swift","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"548","cat_name":"Tech Startup Genius","short_name":"Tech Startup Genius","childNodes":"0","parentPath":"00528-00525-00001"},{"cat_id":"549","cat_name":"Wordpress","short_name":"Wordpress","childNodes":"0","parentPath":"00528-00525-00001"}]},{"cat_id":"551","cat_name":"Computer Science","short_name":"Computer Science","childNodes":"28","parentPath":"00525-00001","sub_categories":[{"cat_id":"552","cat_name":"Algorithms","short_name":"Algorithms","childNodes":"1","parentPath":"00551-00525-00001","sub_categories":[{"cat_id":"630","cat_name":"               ","short_name":"               ","childNodes":"0","parentPath":"00552-00551-00525-00001"}]},{"cat_id":"553","cat_name":"Artificial Intelligence","short_name":"Artificial Intelligence","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"554","cat_name":"Computer Architecture","short_name":"Computer Architecture","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"555","cat_name":"Computer Concepts","short_name":"Computer Concepts","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"556","cat_name":"Computer Literacy","short_name":"Computer Literacy","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"557","cat_name":"Computer Science","short_name":"Computer Science","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"558","cat_name":"Computer Security","short_name":"Computer Security","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"559","cat_name":"Computer Systems","short_name":"Computer Systems","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"560","cat_name":"Computing","short_name":"Computing","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"561","cat_name":"Cybersecurity","short_name":"Cybersecurity","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"562","cat_name":"Data Mining","short_name":"Data Mining","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"563","cat_name":"Data Science","short_name":"Data Science","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"564","cat_name":"Data Structures","short_name":"Data Structures","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"565","cat_name":"Database","short_name":"Database","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"566","cat_name":"Database Management","short_name":"Database Management","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"567","cat_name":"Deep Learning","short_name":"Deep Learning","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"568","cat_name":"Discrete Structures","short_name":"Discrete Structures","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"569","cat_name":"Human Computer Interaction","short_name":"Human Computer Interaction","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"570","cat_name":"Informatics","short_name":"Informatics","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"571","cat_name":"Intro to Computers","short_name":"Intro to Computers","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"572","cat_name":"Machine Learning","short_name":"Machine Learning","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"573","cat_name":"Network Security","short_name":"Network Security","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"574","cat_name":"Networking","short_name":"Networking","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"575","cat_name":"Object Oriented Programming","short_name":"Object Oriented Programming","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"576","cat_name":"Operating Systems","short_name":"Operating Systems","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"577","cat_name":"Programming","short_name":"Programming","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"578","cat_name":"Robotics","short_name":"Robotics","childNodes":"0","parentPath":"00551-00525-00001"},{"cat_id":"579","cat_name":"Software Development","short_name":"Software Development","childNodes":"0","parentPath":"00551-00525-00001"}]},{"cat_id":"581","cat_name":"Engineering","short_name":"Engineering","childNodes":"12","parentPath":"00525-00001","sub_categories":[{"cat_id":"582","cat_name":"Amateur Radio","short_name":"Amateur Radio","childNodes":"0","parentPath":"00581-00525-00001"},{"cat_id":"583","cat_name":"Architecture","short_name":"Architecture","childNodes":"0","parentPath":"00581-00525-00001"},{"cat_id":"584","cat_name":"Circuits","short_name":"Circuits","childNodes":"0","parentPath":"00581-00525-00001"},{"cat_id":"585","cat_name":"Civil Engineering","short_name":"Civil Engineering","childNodes":"0","parentPath":"00581-00525-00001"},{"cat_id":"586","cat_name":"Construction","short_name":"Construction","childNodes":"0","parentPath":"00581-00525-00001"},{"cat_id":"587","cat_name":"Electrical Engineering","short_name":"Electrical Engineering","childNodes":"0","parentPath":"00581-00525-00001"},{"cat_id":"588","cat_name":"Engineering Science","short_name":"Engineering Science","childNodes":"0","parentPath":"00581-00525-00001"},{"cat_id":"589","cat_name":"Materials Science","short_name":"Materials Science","childNodes":"0","parentPath":"00581-00525-00001"},{"cat_id":"590","cat_name":"Mechanical Engineering","short_name":"Mechanical Engineering","childNodes":"0","parentPath":"00581-00525-00001"},{"cat_id":"591","cat_name":"Millwright","short_name":"Millwright","childNodes":"0","parentPath":"00581-00525-00001"},{"cat_id":"592","cat_name":"Morse Code","short_name":"Morse Code","childNodes":"0","parentPath":"00581-00525-00001"},{"cat_id":"593","cat_name":"Power Engineering","short_name":"Power Engineering","childNodes":"0","parentPath":"00581-00525-00001"}]},{"cat_id":"594","cat_name":"Graphic Design","short_name":"Graphic Design","childNodes":"0","parentPath":"00525-00001"},{"cat_id":"595","cat_name":"Information Security","short_name":"Information Security","childNodes":"0","parentPath":"00525-00001"},{"cat_id":"596","cat_name":"Information Technology","short_name":"Information Technology","childNodes":"0","parentPath":"00525-00001"},{"cat_id":"597","cat_name":"Management Information Systems","short_name":"Management Information Systems","childNodes":"0","parentPath":"00525-00001"}]},{"cat_id":"341","cat_name":"Vocations","short_name":"Vocations","childNodes":"24","parentPath":"00001","sub_categories":[{"cat_id":"342","cat_name":"ASVAB","short_name":"ASVAB","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"343","cat_name":"Automotive","short_name":"Automotive","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"344","cat_name":"Aviation","short_name":"Aviation","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"345","cat_name":"Barbering","short_name":"Barbering","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"346","cat_name":"Boating","short_name":"Boating","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"347","cat_name":"Cosmetology","short_name":"Cosmetology","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"348","cat_name":"Diamonds","short_name":"Diamonds","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"349","cat_name":"Electrical","short_name":"Electrical","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"350","cat_name":"Electrician","short_name":"Electrician","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"351","cat_name":"Firefighting","short_name":"Firefighting","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"352","cat_name":"Gardening","short_name":"Gardening","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"353","cat_name":"Home Economics","short_name":"Home Economics","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"354","cat_name":"Horticulture","short_name":"Horticulture","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"355","cat_name":"HVAC","short_name":"HVAC","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"356","cat_name":"Interior Design","short_name":"Interior Design","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"357","cat_name":"Landscape Architecture","short_name":"Landscape Architecture","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"358","cat_name":"Massage Therapy","short_name":"Massage Therapy","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"359","cat_name":"Metallurgy","short_name":"Metallurgy","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"360","cat_name":"Military","short_name":"Military","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"361","cat_name":"Pest Control","short_name":"Pest Control","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"362","cat_name":"Plumbing","short_name":"Plumbing","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"363","cat_name":"Policing","short_name":"Policing","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"364","cat_name":"Wastewater","short_name":"Wastewater","childNodes":"0","parentPath":"00341-00001"},{"cat_id":"365","cat_name":"Welding","short_name":"Welding","childNodes":"0","parentPath":"00341-00001"}]}]}
[02/Feb/2026:18:29:09] (root_api-) token =  IP = 169.0.141.180
[02/Feb/2026:18:29:09] (root_api-) 
[02/Feb/2026:18:29:09] (root_api-) OP=  of page root_api.php
[02/Feb/2026:18:29:09] (root_api-) Final JSON =  { "status":"error",
					"message":"Invalid Session",
					"Errorcode":"err100",
					"data":{}}
[02/Feb/2026:18:29:09] (root_api-) token =  IP = 169.0.141.180
[02/Feb/2026:18:29:09] (root_api-) 
[02/Feb/2026:18:29:09] (root_api-) OP=  of page root_api.php
[02/Feb/2026:18:29:09] (root_api-) Final JSON =  { "status":"error",
					"message":"Invalid Session",
					"Errorcode":"err100",
					"data":{}}
[02/Feb/2026:18:29:09] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:29:09] (root_api-) op => getSwitchRoles ,user_id => 184 ,org_id => 1 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => user_data ,
[02/Feb/2026:18:29:09] (root_api-) OP= getSwitchRoles of page root_api.php
[02/Feb/2026:18:29:09] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:29:09:0209~2026-02-02 18:29:09~success
[02/Feb/2026:18:29:09] (root_api-) Query~SELECT count(1) as cnt FROM tbl_org  WHERE status = 'Active' AND org_id ='1'~2026-02-02 18:29:09:0209~2026-02-02 18:29:09~success
[02/Feb/2026:18:29:09] (root_api-) Query~SELECT count(1) as cnt FROM tbl_user_org u WHERE u.status = 'Active' AND u.user_id ='184' AND  org_id ='1'~2026-02-02 18:29:09:0209~2026-02-02 18:29:09~success
[02/Feb/2026:18:29:09] (root_api-) serviceName user_data
[02/Feb/2026:18:29:09] (root_api-) Query~SELECT u.user_org_id, u.org_id, u.role_id, um.email,o.org_name,r.role_name,o.short_name,CONCAT(u.role_id,'_',u.org_id) as user_org_role
            FROM tbl_user_org u 
            inner join tbl_org o on u.org_id=o.org_id
            inner join tbl_role_master r on r.role_id=u.role_id
            inner join tbl_user_master um on u.user_id = um.user_id
            where u.user_id= 184~2026-02-02 18:29:09:0209~2026-02-02 18:29:09~success
[02/Feb/2026:18:29:09] (root_api-) Final JSON =  {"status":"ok","message":"User Details fetched Successfully!!","Errorcode":"","data":[{"user_org_id":"225","org_id":"1","role_id":"3","email":"alhenaude20@gmail.com","org_name":"University Of Cape Town","role_name":"Learner","short_name":"UCT","user_org_role":"3_1"},{"user_org_id":"226","org_id":"2","role_id":"2","email":"alhenaude20@gmail.com","org_name":"C-Institute","role_name":"Educator","short_name":"C-Institute","user_org_role":"2_2"}]}
[02/Feb/2026:18:29:09] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:29:09] (root_api-) op => getCourseRoles ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:18:29:09] (root_api-) OP= getCourseRoles of page root_api.php
[02/Feb/2026:18:29:09] (root_api-) serviceName course_data
[02/Feb/2026:18:29:09] (root_api-) Query~SELECT tld.optionid, tld.display_name,tld.data_value FROM tbl_lookup_detail tld, tbl_lookup tl WHERE tl.dev_name = 'course_role' AND tl.keyid=tld.keyid ORDER BY tld.sequence~2026-02-02 18:29:09:0209~2026-02-02 18:29:09~success
[02/Feb/2026:18:29:09] (root_api-) Final JSON =  {"status":"ok","message":"Roles fetched Successfully","Errorcode":"","data":[{"optionid":"13","display_name":"Author","data_value":"author"},{"optionid":"14","display_name":"Editor","data_value":"editor"},{"optionid":"12","display_name":"Approver","data_value":"approver"},{"optionid":"15","display_name":"Reader","data_value":"reader"}]}
[02/Feb/2026:18:29:13] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:29:13] (root_api-) op => checklogin ,uname => alhenaude20@gmail.com ,pwd => 8c56e4d0f8c63dd2de2624a9d1a04827 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => login_data ,
[02/Feb/2026:18:29:13] (root_api-) OP= checklogin of page root_api.php
[02/Feb/2026:18:29:13] (root_api-) serviceName login_data
[02/Feb/2026:18:29:13] (root_api-) Query~SELECT tbl_user_master.user_id,user_name,role_id,isAdmin,isActive,first_name,last_name,email,mobile,tbl_user_master.creation_date, tbl_user_details.profile_picture FROM tbl_user_master LEFT JOIN tbl_user_details ON tbl_user_details.user_id=tbl_user_master.user_id  WHERE email='alhenaude20@gmail.com' AND password='8c56e4d0f8c63dd2de2624a9d1a04827'~2026-02-02 18:29:13:0213~2026-02-02 18:29:13~success
[02/Feb/2026:18:29:13] (root_api-) Query~SELECT count(reg_id) AS verifiedCount, reg_status, reg_id, reg_type, resend_count
								FROM tbl_register WHERE reg_type='register' AND user_id='184'~2026-02-02 18:29:13:0213~2026-02-02 18:29:13~success
[02/Feb/2026:18:29:13] (root_api-) Query~SELECT ur.right_id,ur.right_key FROM vw_user_rights ur 
										WHERE ur.user_id='184' 
										AND ur.effective_right_value=1~2026-02-02 18:29:13:0213~2026-02-02 18:29:13~success
[02/Feb/2026:18:29:13] (root_api-) Query~SELECT * FROM tbl_user_org WHERE role_id='3' AND user_id='184'~2026-02-02 18:29:13:0213~2026-02-02 18:29:13~success
[02/Feb/2026:18:29:13] (root_api-) Query~SELECT count(cu.user_id) as my_course_count
	FROM tbl_course c
	INNER JOIN tbl_course_users cu ON c.course_id=cu.course_id
	INNER JOIN tbl_org org ON c.org_id=org.org_id
	WHERE c.status IN('Published') AND cu.user_id = '184'~2026-02-02 18:29:13:0213~2026-02-02 18:29:13~success
[02/Feb/2026:18:29:13] (root_api-) Final JSON =  {"status":"ok",
											"message":"login done successfully",
											"Errorcode":"",
											"data":{"user_id":"184","user_name":"","role_id":"3","isAdmin":null,"isActive":"1","first_name":"Alhena","last_name":"Udemans","email":"alhenaude20@gmail.com","mobile":"0678038927","creation_date":"2025-07-03 11:29:28","profile_picture":null,"user_rights":"","user_details":{"user_id":"184","user_name":"","role_id":"3","isAdmin":null,"isActive":"1","first_name":"Alhena","last_name":"Udemans","email":"alhenaude20@gmail.com","mobile":"0678038927","creation_date":"03 Jul 2025","action":"Login","profile_picture":null,"org_id":"1","userEnrolledCourse":"0"}}}
[02/Feb/2026:18:29:13] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:29:13] (root_api-) op => getSwitchRoles ,user_id => 184 ,org_id => 1 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => user_data ,
[02/Feb/2026:18:29:13] (root_api-) OP= getSwitchRoles of page root_api.php
[02/Feb/2026:18:29:13] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:29:13:0213~2026-02-02 18:29:13~success
[02/Feb/2026:18:29:13] (root_api-) Query~SELECT count(1) as cnt FROM tbl_org  WHERE status = 'Active' AND org_id ='1'~2026-02-02 18:29:13:0213~2026-02-02 18:29:13~success
[02/Feb/2026:18:29:13] (root_api-) Query~SELECT count(1) as cnt FROM tbl_user_org u WHERE u.status = 'Active' AND u.user_id ='184' AND  org_id ='1'~2026-02-02 18:29:13:0213~2026-02-02 18:29:13~success
[02/Feb/2026:18:29:13] (root_api-) serviceName user_data
[02/Feb/2026:18:29:13] (root_api-) Query~SELECT u.user_org_id, u.org_id, u.role_id, um.email,o.org_name,r.role_name,o.short_name,CONCAT(u.role_id,'_',u.org_id) as user_org_role
            FROM tbl_user_org u 
            inner join tbl_org o on u.org_id=o.org_id
            inner join tbl_role_master r on r.role_id=u.role_id
            inner join tbl_user_master um on u.user_id = um.user_id
            where u.user_id= 184~2026-02-02 18:29:13:0213~2026-02-02 18:29:13~success
[02/Feb/2026:18:29:13] (root_api-) Final JSON =  {"status":"ok","message":"User Details fetched Successfully!!","Errorcode":"","data":[{"user_org_id":"225","org_id":"1","role_id":"3","email":"alhenaude20@gmail.com","org_name":"University Of Cape Town","role_name":"Learner","short_name":"UCT","user_org_role":"3_1"},{"user_org_id":"226","org_id":"2","role_id":"2","email":"alhenaude20@gmail.com","org_name":"C-Institute","role_name":"Educator","short_name":"C-Institute","user_org_role":"2_2"}]}
[02/Feb/2026:18:29:13] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:29:13] (root_api-) op => getUserOrganizations ,user_id => 184 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => user_data ,
[02/Feb/2026:18:29:13] (root_api-) OP= getUserOrganizations of page root_api.php
[02/Feb/2026:18:29:13] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:29:13:0213~2026-02-02 18:29:13~success
[02/Feb/2026:18:29:13] (root_api-) serviceName user_data
[02/Feb/2026:18:29:13] (root_api-) Query~SELECT org.org_id, org.org_name, uo.role_id FROM tbl_user_org uo, tbl_org org WHERE uo.org_id = org.org_id AND uo.role_id = 3 AND uo.user_id = 184~2026-02-02 18:29:13:0213~2026-02-02 18:29:13~success
[02/Feb/2026:18:29:13] (root_api-) Final JSON =  {"status":"ok","message":"User Details fetched Successfully!!","Errorcode":"","data":[{"org_id":"1","org_name":"University Of Cape Town","role_id":"3"}]}
[02/Feb/2026:18:29:13] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:29:13] (root_api-) op => getcourses ,learner_id => 184 ,course_status =>  ,layout => grid ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:18:29:13] (root_api-) OP= getcourses of page root_api.php
[02/Feb/2026:18:29:13] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:29:13:0213~2026-02-02 18:29:13~success
[02/Feb/2026:18:29:13] (root_api-) serviceName course_data
[02/Feb/2026:18:29:13] (root_api-) Query~SELECT c.*,cu.enroll_date, cu.start_date, cu.status as courseUserStatus, org.org_name
    							FROM tbl_course c
    							INNER JOIN tbl_course_users cu ON c.course_id=cu.course_id
                                INNER JOIN tbl_org org ON c.org_id=org.org_id
    							WHERE c.status IN('Published') AND cu.user_id = '184'ORDER BY c.course_id DESC~2026-02-02 18:29:13:0213~2026-02-02 18:29:13~success
[02/Feb/2026:18:29:13] (root_api-) Query~SELECT COUNT(1) AS courseEnrolled FROM tbl_course_users cu WHERE cu.user_id = '184'~2026-02-02 18:29:13:0213~2026-02-02 18:29:13~success
[02/Feb/2026:18:29:13] (root_api-) Final JSON =  {"status":"ok",
                "message":"",
                "Errorcode":"",
                "data":{"courseEnrolled":"0","layout":"grid"}}
[02/Feb/2026:18:29:14] (root_api-) token =  IP = 169.0.141.180
[02/Feb/2026:18:29:14] (root_api-) 
[02/Feb/2026:18:29:14] (root_api-) OP=  of page root_api.php
[02/Feb/2026:18:29:14] (root_api-) Final JSON =  { "status":"error",
					"message":"Invalid Session",
					"Errorcode":"err100",
					"data":{}}
[02/Feb/2026:18:29:15] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:29:15] (root_api-) op => api-refresh ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => common_data ,
[02/Feb/2026:18:29:15] (root_api-) OP= api-refresh of page root_api.php
[02/Feb/2026:18:29:15] (root_api-) serviceName common_data
[02/Feb/2026:18:29:15] (root_api-) Final JSON =  {"status":"ok","message":"","Errorcode":"","data":""}
[02/Feb/2026:18:29:19] (root_api-) token =  IP = 169.0.141.180
[02/Feb/2026:18:29:19] (root_api-) 
[02/Feb/2026:18:29:19] (root_api-) OP=  of page root_api.php
[02/Feb/2026:18:29:19] (root_api-) Final JSON =  { "status":"error",
					"message":"Invalid Session",
					"Errorcode":"err100",
					"data":{}}
[02/Feb/2026:18:29:19] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:29:19] (root_api-) op => getSwitchRoles ,user_id => 184 ,org_id => 1 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => user_data ,
[02/Feb/2026:18:29:19] (root_api-) OP= getSwitchRoles of page root_api.php
[02/Feb/2026:18:29:19] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:29:19:0219~2026-02-02 18:29:19~success
[02/Feb/2026:18:29:19] (root_api-) Query~SELECT count(1) as cnt FROM tbl_org  WHERE status = 'Active' AND org_id ='1'~2026-02-02 18:29:19:0219~2026-02-02 18:29:19~success
[02/Feb/2026:18:29:19] (root_api-) Query~SELECT count(1) as cnt FROM tbl_user_org u WHERE u.status = 'Active' AND u.user_id ='184' AND  org_id ='1'~2026-02-02 18:29:19:0219~2026-02-02 18:29:19~success
[02/Feb/2026:18:29:19] (root_api-) serviceName user_data
[02/Feb/2026:18:29:19] (root_api-) Query~SELECT u.user_org_id, u.org_id, u.role_id, um.email,o.org_name,r.role_name,o.short_name,CONCAT(u.role_id,'_',u.org_id) as user_org_role
            FROM tbl_user_org u 
            inner join tbl_org o on u.org_id=o.org_id
            inner join tbl_role_master r on r.role_id=u.role_id
            inner join tbl_user_master um on u.user_id = um.user_id
            where u.user_id= 184~2026-02-02 18:29:19:0219~2026-02-02 18:29:19~success
[02/Feb/2026:18:29:19] (root_api-) Final JSON =  {"status":"ok","message":"User Details fetched Successfully!!","Errorcode":"","data":[{"user_org_id":"225","org_id":"1","role_id":"3","email":"alhenaude20@gmail.com","org_name":"University Of Cape Town","role_name":"Learner","short_name":"UCT","user_org_role":"3_1"},{"user_org_id":"226","org_id":"2","role_id":"2","email":"alhenaude20@gmail.com","org_name":"C-Institute","role_name":"Educator","short_name":"C-Institute","user_org_role":"2_2"}]}
[02/Feb/2026:18:29:19] (root_api-) token =  IP = 169.0.141.180
[02/Feb/2026:18:29:19] (root_api-) 
[02/Feb/2026:18:29:19] (root_api-) OP=  of page root_api.php
[02/Feb/2026:18:29:19] (root_api-) Final JSON =  { "status":"error",
					"message":"Invalid Session",
					"Errorcode":"err100",
					"data":{}}
[02/Feb/2026:18:29:19] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:29:19] (root_api-) op => getCourseReport ,learner_id => 184 ,sortCol =>  ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => report_data ,
[02/Feb/2026:18:29:19] (root_api-) OP= getCourseReport of page root_api.php
[02/Feb/2026:18:29:19] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:29:19:0219~2026-02-02 18:29:19~success
[02/Feb/2026:18:29:19] (root_api-) serviceName report_data
[02/Feb/2026:18:29:19] (root_api-) Query~SELECT tcu.course_id,IFNULL(ROUND(sum(tucp.question_time+ tucp.feedback_time)),0) AS avgTime 
	FROM tbl_user_course_progress tucp
	INNER JOIN tbl_course_users tcu ON tcu.enroll_id = tucp.enroll_id AND tcu.user_id = '184'  
	GROUP BY tucp.enroll_id~2026-02-02 18:29:19:0219~2026-02-02 18:29:19~success
[02/Feb/2026:18:29:20] (root_api-) Query~SELECT tc.course_name,tc.course_id, COUNT(DISTINCT tcd.course_deck_id) AS DeckCount
                ,IFNULL(date_format(tcu.enroll_date, '%d-%m-%Y'),'') AS enrollDate, 
                IFNULL(date_format(tcu.last_access_date, '%d-%m-%Y'), '') AS lastAccessedDate,
                 COUNT(DISTINCT dc.deck_card_id)*cud.cycle_count  AS totalCards, 
                 COUNT(DISTINCT tcuc.enroll_card_id) AS completedCardsCount,
                 cud.cycle_count 
                 FROM tbl_course tc
                 INNER JOIN tbl_course_deck tcd ON tcd.course_id = tc.course_id
                 INNER JOIN tbl_deck d ON d.deck_id = tcd.deck_id AND d.`status` IN ('Published') AND d.deck_type = 'main'
                 INNER JOIN tbl_deck_card dc ON dc.deck_id = tcd.deck_id
                 INNER JOIN tbl_card c ON c.card_id = dc.card_id AND c.card_type= 'main' AND c.`status` IN('Published') 
				  AND (c.question_text <> '' AND c.question_text IS NOT NULL)
                 INNER JOIN tbl_course_users tcu ON tcu.course_id = tc.course_id AND tcu.user_id='184'
                 INNER JOIN tbl_course_users_decks cud ON cud.enroll_id = tcu.enroll_id
                 LEFT JOIN tbl_course_users_cards tcuc ON tcuc.enroll_deck_id = cud.enroll_deck_id AND tcuc.`status` IN('Complete')
                 WHERE tc.`status` IN('Published') 
                 GROUP BY tc.course_id~2026-02-02 18:29:19:0219~2026-02-02 18:29:20~success
[02/Feb/2026:18:29:20] (root_api-) Final JSON =  {"status":"ok","message":"","Errorcode":"","data":[]}
[02/Feb/2026:18:29:20] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:29:20] (root_api-) op => api-refresh ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => common_data ,
[02/Feb/2026:18:29:20] (root_api-) OP= api-refresh of page root_api.php
[02/Feb/2026:18:29:20] (root_api-) serviceName common_data
[02/Feb/2026:18:29:20] (root_api-) Final JSON =  {"status":"ok","message":"","Errorcode":"","data":""}
[02/Feb/2026:18:29:24] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:29:24] (root_api-) op => getSwitchRoles ,user_id => 184 ,org_id => 1 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => user_data ,
[02/Feb/2026:18:29:24] (root_api-) OP= getSwitchRoles of page root_api.php
[02/Feb/2026:18:29:24] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:29:24:0224~2026-02-02 18:29:24~success
[02/Feb/2026:18:29:24] (root_api-) Query~SELECT count(1) as cnt FROM tbl_org  WHERE status = 'Active' AND org_id ='1'~2026-02-02 18:29:24:0224~2026-02-02 18:29:24~success
[02/Feb/2026:18:29:24] (root_api-) Query~SELECT count(1) as cnt FROM tbl_user_org u WHERE u.status = 'Active' AND u.user_id ='184' AND  org_id ='1'~2026-02-02 18:29:24:0224~2026-02-02 18:29:24~success
[02/Feb/2026:18:29:24] (root_api-) serviceName user_data
[02/Feb/2026:18:29:24] (root_api-) Query~SELECT u.user_org_id, u.org_id, u.role_id, um.email,o.org_name,r.role_name,o.short_name,CONCAT(u.role_id,'_',u.org_id) as user_org_role
            FROM tbl_user_org u 
            inner join tbl_org o on u.org_id=o.org_id
            inner join tbl_role_master r on r.role_id=u.role_id
            inner join tbl_user_master um on u.user_id = um.user_id
            where u.user_id= 184~2026-02-02 18:29:24:0224~2026-02-02 18:29:24~success
[02/Feb/2026:18:29:24] (root_api-) Final JSON =  {"status":"ok","message":"User Details fetched Successfully!!","Errorcode":"","data":[{"user_org_id":"225","org_id":"1","role_id":"3","email":"alhenaude20@gmail.com","org_name":"University Of Cape Town","role_name":"Learner","short_name":"UCT","user_org_role":"3_1"},{"user_org_id":"226","org_id":"2","role_id":"2","email":"alhenaude20@gmail.com","org_name":"C-Institute","role_name":"Educator","short_name":"C-Institute","user_org_role":"2_2"}]}
[02/Feb/2026:18:29:24] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:29:24] (root_api-) op => getcourses ,learner_id => 184 ,course_status =>  ,current_role => 2_2 ,org_id => 2 ,layout => grid ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:18:29:24] (root_api-) OP= getcourses of page root_api.php
[02/Feb/2026:18:29:24] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:29:24] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:29:24:0224~2026-02-02 18:29:24~success
[02/Feb/2026:18:29:24] (root_api-) op => getCourseRoles ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:18:29:24] (root_api-) OP= getCourseRoles of page root_api.php
[02/Feb/2026:18:29:24] (root_api-) serviceName course_data
[02/Feb/2026:18:29:24] (root_api-) Query~SELECT count(1) as cnt FROM tbl_org  WHERE status = 'Active' AND org_id ='2'~2026-02-02 18:29:24:0224~2026-02-02 18:29:24~success
[02/Feb/2026:18:29:24] (root_api-) Query~SELECT count(1) as cnt FROM tbl_user_org u WHERE u.status = 'Active' AND u.user_id ='184' AND  org_id ='2'~2026-02-02 18:29:24:0224~2026-02-02 18:29:24~success
[02/Feb/2026:18:29:24] (root_api-) Query~SELECT tld.optionid, tld.display_name,tld.data_value FROM tbl_lookup_detail tld, tbl_lookup tl WHERE tl.dev_name = 'course_role' AND tl.keyid=tld.keyid ORDER BY tld.sequence~2026-02-02 18:29:24:0224~2026-02-02 18:29:24~success
[02/Feb/2026:18:29:24] (root_api-) serviceName course_data
[02/Feb/2026:18:29:24] (root_api-) Final JSON =  {"status":"ok","message":"Roles fetched Successfully","Errorcode":"","data":[{"optionid":"13","display_name":"Author","data_value":"author"},{"optionid":"14","display_name":"Editor","data_value":"editor"},{"optionid":"12","display_name":"Approver","data_value":"approver"},{"optionid":"15","display_name":"Reader","data_value":"reader"}]}
[02/Feb/2026:18:29:24] (root_api-) Query~SELECT c.*, org.org_name, IF((SELECT count(*) from tbl_course c1 WHERE c.course_parent_id= c1.course_parent_id AND (c.version + 1) = c1.version) > 0, 'PublishedWithDraft',c.status) AS status, ce.ed_role
                FROM tbl_course c
                INNER JOIN tbl_org org ON c.org_id=org.org_id
                INNER JOIN tbl_course_educator ce ON ce.course_id=c.course_id AND user_id = '184'
                WHERE org.org_id = 2 AND (c.status IN('Published') OR (c.status='Draft' AND c.version = 1))ORDER BY c.course_id DESC~2026-02-02 18:29:24:0224~2026-02-02 18:29:24~success
[02/Feb/2026:18:29:24] (root_api-) Query~SELECT course_id, COUNT(course_id) AS enroll_user_count FROM tbl_course_users 
                WHERE course_id IN (25) GROUP BY course_id~2026-02-02 18:29:24:0224~2026-02-02 18:29:24~success
[02/Feb/2026:18:29:24] (root_api-) Query~SELECT first_name, last_name FROM tbl_user_master WHERE user_id = 184~2026-02-02 18:29:24:0224~2026-02-02 18:29:24~success
[02/Feb/2026:18:29:24] (root_api-) Query~SELECT course_id, course_image FROM tbl_course_images
                WHERE course_id IN (25) AND course_image IS NOT NULL AND course_image !=''  AND sequence = '1' AND status ='Active'~2026-02-02 18:29:24:0224~2026-02-02 18:29:24~success
[02/Feb/2026:18:29:24] (root_api-) Query~SELECT tce.course_id, um.first_name, um.last_name FROM tbl_course_educator tce LEFT JOIN tbl_user_master um ON um.user_id = tce.user_id
				WHERE tce.course_id IN (25) AND tce.ed_role IN('author') GROUP BY tce.course_id~2026-02-02 18:29:24:0224~2026-02-02 18:29:24~success
[02/Feb/2026:18:29:24] (root_api-) Query~SELECT cd.course_id, COUNT(dc.card_id) AS cardscount 
                FROM tbl_deck_card dc
                INNER JOIN tbl_course_deck cd ON dc.deck_id = cd.deck_id
                INNER JOIN tbl_deck d ON d.deck_id = cd.deck_id AND d.deck_type='main'
                INNER JOIN tbl_card card ON card.card_id = dc.card_id AND card.card_type = 'main'
                WHERE cd.course_id IN (25) AND card.question_text!='' AND card.answer_text !=''
                GROUP BY cd.course_id~2026-02-02 18:29:24:0224~2026-02-02 18:29:24~success
[02/Feb/2026:18:29:24] (root_api-) Query~SELECT cd.course_id, COUNT(1) AS deckcount 
                FROM tbl_course_deck cd 
                INNER JOIN tbl_deck d ON d.deck_id = cd.deck_id AND d.deck_type='main'
                WHERE cd.course_id IN(25)
                GROUP BY cd.course_id~2026-02-02 18:29:24:0224~2026-02-02 18:29:24~success
[02/Feb/2026:18:29:24] (root_api-) Query~SELECT preference FROM tbl_course_user_preference WHERE course_id = '25' AND status IN('active') AND user_id = '184' ORDER BY action_time DESC~2026-02-02 18:29:24:0224~2026-02-02 18:29:24~success
[02/Feb/2026:18:29:24] (root_api-) Query~SELECT COUNT(1) as prefLikeCount FROM tbl_course_user_preference WHERE course_id = '25' AND status IN('active')~2026-02-02 18:29:24:0224~2026-02-02 18:29:24~success
[02/Feb/2026:18:29:24] (root_api-) Query~SELECT COUNT(1) AS courseEnrolled FROM tbl_course_users cu WHERE cu.user_id = '184'~2026-02-02 18:29:24:0224~2026-02-02 18:29:24~success
[02/Feb/2026:18:29:24] (root_api-) Final JSON =  {"status":"ok",
                "message":"",
                "Errorcode":"",
                "data":{"my_course_count":1,"info":[{"course_id":"25","course_name":"Grade 8 Mathematics","course_version":"1","course_short_name":null,"course_status":null,"course_desc":"Grade 8 Mathematics aims to build strong foundational skills required to prepare learners for higher grades of mathematics and develop strong, appropriate mathematical reasoning and logical thinking. ","course_brief":null,"creation_date":"2025-07-16 13:21:03","launch_date":"201 day's ago","created_by":"184","organization_name":"C-Institute","background_color":"","text_color":"","course_image":"https:\/\/bo.coglearn.cioinfotech.com\/upload\/courses\/course-thumb.jpg","course_enroll_user_count":0,"deck_count":"18","cardscount":"926","course_like_count":"","course_like_percentage":100,"course_duration":"16","courseStatus":"Draft","ed_role":"author","author":"Alhena Udemans"}],"preference":"","courseEnrolled":"0","layout":"grid"}}
[02/Feb/2026:18:29:25] (root_api-) token =  IP = 169.0.141.180
[02/Feb/2026:18:29:25] (root_api-) 
[02/Feb/2026:18:29:25] (root_api-) OP=  of page root_api.php
[02/Feb/2026:18:29:25] (root_api-) Final JSON =  { "status":"error",
					"message":"Invalid Session",
					"Errorcode":"err100",
					"data":{}}
[02/Feb/2026:18:29:25] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:29:25] (root_api-) op => allcourses ,learner_id => 184 ,course_status =>  ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:18:29:25] (root_api-) OP= allcourses of page root_api.php
[02/Feb/2026:18:29:25] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:29:25:0225~2026-02-02 18:29:25~success
[02/Feb/2026:18:29:25] (root_api-) serviceName course_data
[02/Feb/2026:18:29:25] (root_api-) allcourses : [1] Get Course master data and organisation name.
[02/Feb/2026:18:29:25] (root_api-) Query~SELECT c.*, org.org_name
                        FROM tbl_course c
                        INNER JOIN tbl_org org ON c.org_id=org.org_id
                        WHERE c.status IN('Published') AND c.course_id NOT IN(
                SELECT cu.course_id FROM tbl_course_users cu
            WHERE cu.user_id = '184')ORDER BY c.course_id DESC~2026-02-02 18:29:25:0225~2026-02-02 18:29:25~success
[02/Feb/2026:18:29:25] (root_api-) allcourses : [2] Get the count of courses user enrolled in.
[02/Feb/2026:18:29:25] (root_api-) Query~SELECT course_id, COUNT(course_id) AS enroll_user_count FROM tbl_course_users 
                WHERE course_id IN (1) GROUP BY course_id~2026-02-02 18:29:25:0225~2026-02-02 18:29:25~success
[02/Feb/2026:18:29:25] (root_api-) Query~SELECT course_id, course_image  FROM tbl_course_images
            WHERE course_id IN (1) AND sequence = '1'~2026-02-02 18:29:25:0225~2026-02-02 18:29:25~success
[02/Feb/2026:18:29:25] (root_api-) Query~SELECT cd.course_id, COUNT(1) AS cardscount 
             FROM tbl_deck_card dc
             INNER JOIN tbl_course_deck cd ON dc.deck_id = cd.deck_id
             INNER JOIN tbl_deck d ON d.deck_id = cd.deck_id AND d.deck_type='main'
             INNER JOIN tbl_card card ON card.card_id = dc.card_id AND card.card_type = 'main'
             WHERE cd.course_id IN (1)
             GROUP BY cd.course_id~2026-02-02 18:29:25:0225~2026-02-02 18:29:25~success
[02/Feb/2026:18:29:25] (root_api-) Query~SELECT cd.course_id, COUNT(1) AS deckcount 
            FROM tbl_course_deck cd 
            INNER JOIN tbl_deck d ON d.deck_id = cd.deck_id AND d.deck_type='main'
            WHERE cd.course_id IN(1)
            GROUP BY cd.course_id~2026-02-02 18:29:25:0225~2026-02-02 18:29:25~success
[02/Feb/2026:18:29:25] (root_api-) Query~SELECT preference FROM tbl_course_user_preference WHERE course_id = '1' AND status IN('active')AND user_id = '184' ORDER BY action_time DESC~2026-02-02 18:29:25:0225~2026-02-02 18:29:25~success
[02/Feb/2026:18:29:25] (root_api-) Query~SELECT COUNT(1) as prefLikeCount FROM tbl_course_user_preference WHERE course_id = '1' AND status IN('active')~2026-02-02 18:29:25:0225~2026-02-02 18:29:25~success
[02/Feb/2026:18:29:25] (root_api-) Final JSON =  {"status":"ok",
            "message":"",
            "Errorcode":"",
            "data":{"info":[{"course_id":"1","course_name":"Applied Complexity Science","course_short_name":null,"course_status":"","course_desc":"This course will expose students to a range of niche complexity science areas. It will share both theoretical insights, as well as offer practice tools to ensure development of applied complexity skills to tame modern interlocked problems.","course_brief":"Develop skill and tools to deal with taming complex problems","creation_date":"2022-05-04 12:57:26","launch_date":"1370 day's ago","created_by":"1","organization_name":"University Of Cape Town","course_image":"https:\/\/bo.coglearn.cioinfotech.com\/upload\/courses\/course_1\/CE applied complexity science.png","course_enroll_user_count":"122","deck_count":"20","cardscount":"961","course_like_count":"54","course_like_percentage":100,"course_duration":"50"}],"preference":""}}
[02/Feb/2026:18:29:25] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:29:25] (root_api-) op => api-refresh ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => common_data ,
[02/Feb/2026:18:29:25] (root_api-) OP= api-refresh of page root_api.php
[02/Feb/2026:18:29:25] (root_api-) serviceName common_data
[02/Feb/2026:18:29:25] (root_api-) Final JSON =  {"status":"ok","message":"","Errorcode":"","data":""}
[02/Feb/2026:18:29:29] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:29:29] (root_api-) op => getCourseDetail ,course_id => 25 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:18:29:29] (root_api-) OP= getCourseDetail of page root_api.php
[02/Feb/2026:18:29:29] (root_api-) serviceName course_data
[02/Feb/2026:18:29:29] (root_api-) Query~SELECT * FROM tbl_course where course_id = '25' AND status NOT IN('Discard')~2026-02-02 18:29:29:0229~2026-02-02 18:29:29~success
[02/Feb/2026:18:29:29] (root_api-) Query~SELECT course_image_id, course_image, sequence, status FROM tbl_course_images where course_id = 25 ORDER BY sequence DESC~2026-02-02 18:29:29:0229~2026-02-02 18:29:29~success
[02/Feb/2026:18:29:29] (root_api-) Query~select course_id as prev_course_id from tbl_course where course_parent_id = 25 AND version = 0 AND status NOT IN('Discard')~2026-02-02 18:29:29:0229~2026-02-02 18:29:29~success
[02/Feb/2026:18:29:29] (root_api-) Query~select course_id as next_course_id from tbl_course where course_parent_id = 25 AND version = 2 AND status NOT IN('Discard')~2026-02-02 18:29:29:0229~2026-02-02 18:29:29~success
[02/Feb/2026:18:29:29] (root_api-) Final JSON =  {"status":"ok","message":"Course Details fetched Successfully","Errorcode":"","data":[{"course_id":"25","course_parent_id":"25","version":"1","org_id":"2","course_name":"Grade 8 Mathematics","short_name":"","status":"Draft","eval_id":"1","course_desc":"Grade 8 Mathematics aims to build strong foundational skills required to prepare learners for higher grades of mathematics and develop strong, appropriate mathematical reasoning and logical thinking. ","amount":"0","currency":null,"pay_type":"paid","course_brief":null,"course_duration":"16","background_color":"","text_color":"","creation_date":"2025-07-16 13:21:03","created_by":"184","updation_date":"2026-01-07 12:53:22","updated_by":"184","images":[],"parentid":"","childid":""}]}
[02/Feb/2026:18:29:29] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:29:29] (root_api-) op => getSwitchRoles ,user_id => 184 ,org_id => 1 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => user_data ,
[02/Feb/2026:18:29:29] (root_api-) OP= getSwitchRoles of page root_api.php
[02/Feb/2026:18:29:29] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:29:29:0229~2026-02-02 18:29:29~success
[02/Feb/2026:18:29:29] (root_api-) Query~SELECT count(1) as cnt FROM tbl_org  WHERE status = 'Active' AND org_id ='1'~2026-02-02 18:29:29:0229~2026-02-02 18:29:29~success
[02/Feb/2026:18:29:29] (root_api-) Query~SELECT count(1) as cnt FROM tbl_user_org u WHERE u.status = 'Active' AND u.user_id ='184' AND  org_id ='1'~2026-02-02 18:29:29:0229~2026-02-02 18:29:29~success
[02/Feb/2026:18:29:29] (root_api-) serviceName user_data
[02/Feb/2026:18:29:29] (root_api-) Query~SELECT u.user_org_id, u.org_id, u.role_id, um.email,o.org_name,r.role_name,o.short_name,CONCAT(u.role_id,'_',u.org_id) as user_org_role
            FROM tbl_user_org u 
            inner join tbl_org o on u.org_id=o.org_id
            inner join tbl_role_master r on r.role_id=u.role_id
            inner join tbl_user_master um on u.user_id = um.user_id
            where u.user_id= 184~2026-02-02 18:29:29:0229~2026-02-02 18:29:29~success
[02/Feb/2026:18:29:29] (root_api-) Final JSON =  {"status":"ok","message":"User Details fetched Successfully!!","Errorcode":"","data":[{"user_org_id":"225","org_id":"1","role_id":"3","email":"alhenaude20@gmail.com","org_name":"University Of Cape Town","role_name":"Learner","short_name":"UCT","user_org_role":"3_1"},{"user_org_id":"226","org_id":"2","role_id":"2","email":"alhenaude20@gmail.com","org_name":"C-Institute","role_name":"Educator","short_name":"C-Institute","user_org_role":"2_2"}]}
[02/Feb/2026:18:29:29] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:29:29] (root_api-) op => getCourseDecks ,user_id => 184 ,course_id => 25 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:18:29:29] (root_api-) OP= getCourseDecks of page root_api.php
[02/Feb/2026:18:29:29] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:29:29:0229~2026-02-02 18:29:29~success
[02/Feb/2026:18:29:29] (root_api-) serviceName course_data
[02/Feb/2026:18:29:29] (root_api-) Query~SELECT td.deck_id, td.status as deckStatus, td.created_by, tcd.course_id, 
            ifnull(tcd.deck_name,td.deck_name) deck_name,
            ifnull(tcd.short_name,td.short_name) short_name,
            ifnull(tcd.eval_id,td.eval_id) eval_id,
            ifnull(tcd.deck_desc,td.deck_desc) deck_desc,
            ifnull(tcd.deck_brief,td.deck_brief) deck_brief,
            td.version
            
            FROM tbl_deck td 
           /* INNER JOIN tbl_course_deck tcd ON tcd.deck_id = td.deck_id AND course_id = '25' AND tcd.created_by = '184'
            Where td.deck_type = 'main' AND td.created_by = '184'
            */
            INNER JOIN tbl_course_deck tcd ON tcd.deck_id = td.deck_id AND course_id = '25' 
            Where td.deck_type = 'main'
            ORDER BY td.deck_id~2026-02-02 18:29:29:0229~2026-02-02 18:29:29~success
[02/Feb/2026:18:29:29] (root_api-) Query~select count(*) as card_count FROM  tbl_deck_card dc
                                    INNER JOIN tbl_card tc ON tc.card_id = dc.card_id AND tc.card_type = 'main' AND tc.question_text !='' AND tc.answer_text !=''
                                    Where dc.deck_id = '66'~2026-02-02 18:29:29:0229~2026-02-02 18:29:29~success
[02/Feb/2026:18:29:29] (root_api-) Query~select count(*) as card_count FROM  tbl_deck_card dc
                                    INNER JOIN tbl_card tc ON tc.card_id = dc.card_id AND tc.card_type = 'main' AND tc.question_text !='' AND tc.answer_text !=''
                                    Where dc.deck_id = '67'~2026-02-02 18:29:29:0229~2026-02-02 18:29:29~success
[02/Feb/2026:18:29:29] (root_api-) Query~select count(*) as card_count FROM  tbl_deck_card dc
                                    INNER JOIN tbl_card tc ON tc.card_id = dc.card_id AND tc.card_type = 'main' AND tc.question_text !='' AND tc.answer_text !=''
                                    Where dc.deck_id = '68'~2026-02-02 18:29:29:0229~2026-02-02 18:29:29~success
[02/Feb/2026:18:29:29] (root_api-) Query~select count(*) as card_count FROM  tbl_deck_card dc
                                    INNER JOIN tbl_card tc ON tc.card_id = dc.card_id AND tc.card_type = 'main' AND tc.question_text !='' AND tc.answer_text !=''
                                    Where dc.deck_id = '69'~2026-02-02 18:29:29:0229~2026-02-02 18:29:29~success
[02/Feb/2026:18:29:29] (root_api-) Query~select count(*) as card_count FROM  tbl_deck_card dc
                                    INNER JOIN tbl_card tc ON tc.card_id = dc.card_id AND tc.card_type = 'main' AND tc.question_text !='' AND tc.answer_text !=''
                                    Where dc.deck_id = '70'~2026-02-02 18:29:29:0229~2026-02-02 18:29:29~success
[02/Feb/2026:18:29:29] (root_api-) Query~select count(*) as card_count FROM  tbl_deck_card dc
                                    INNER JOIN tbl_card tc ON tc.card_id = dc.card_id AND tc.card_type = 'main' AND tc.question_text !='' AND tc.answer_text !=''
                                    Where dc.deck_id = '71'~2026-02-02 18:29:29:0229~2026-02-02 18:29:29~success
[02/Feb/2026:18:29:29] (root_api-) Query~select count(*) as card_count FROM  tbl_deck_card dc
                                    INNER JOIN tbl_card tc ON tc.card_id = dc.card_id AND tc.card_type = 'main' AND tc.question_text !='' AND tc.answer_text !=''
                                    Where dc.deck_id = '72'~2026-02-02 18:29:29:0229~2026-02-02 18:29:29~success
[02/Feb/2026:18:29:29] (root_api-) Query~select count(*) as card_count FROM  tbl_deck_card dc
                                    INNER JOIN tbl_card tc ON tc.card_id = dc.card_id AND tc.card_type = 'main' AND tc.question_text !='' AND tc.answer_text !=''
                                    Where dc.deck_id = '73'~2026-02-02 18:29:29:0229~2026-02-02 18:29:29~success
[02/Feb/2026:18:29:29] (root_api-) Query~select count(*) as card_count FROM  tbl_deck_card dc
                                    INNER JOIN tbl_card tc ON tc.card_id = dc.card_id AND tc.card_type = 'main' AND tc.question_text !='' AND tc.answer_text !=''
                                    Where dc.deck_id = '74'~2026-02-02 18:29:29:0229~2026-02-02 18:29:29~success
[02/Feb/2026:18:29:29] (root_api-) Query~select count(*) as card_count FROM  tbl_deck_card dc
                                    INNER JOIN tbl_card tc ON tc.card_id = dc.card_id AND tc.card_type = 'main' AND tc.question_text !='' AND tc.answer_text !=''
                                    Where dc.deck_id = '75'~2026-02-02 18:29:29:0229~2026-02-02 18:29:29~success
[02/Feb/2026:18:29:29] (root_api-) Query~select count(*) as card_count FROM  tbl_deck_card dc
                                    INNER JOIN tbl_card tc ON tc.card_id = dc.card_id AND tc.card_type = 'main' AND tc.question_text !='' AND tc.answer_text !=''
                                    Where dc.deck_id = '76'~2026-02-02 18:29:29:0229~2026-02-02 18:29:29~success
[02/Feb/2026:18:29:29] (root_api-) Query~select count(*) as card_count FROM  tbl_deck_card dc
                                    INNER JOIN tbl_card tc ON tc.card_id = dc.card_id AND tc.card_type = 'main' AND tc.question_text !='' AND tc.answer_text !=''
                                    Where dc.deck_id = '77'~2026-02-02 18:29:29:0229~2026-02-02 18:29:29~success
[02/Feb/2026:18:29:29] (root_api-) Query~select count(*) as card_count FROM  tbl_deck_card dc
                                    INNER JOIN tbl_card tc ON tc.card_id = dc.card_id AND tc.card_type = 'main' AND tc.question_text !='' AND tc.answer_text !=''
                                    Where dc.deck_id = '78'~2026-02-02 18:29:29:0229~2026-02-02 18:29:29~success
[02/Feb/2026:18:29:29] (root_api-) Query~select count(*) as card_count FROM  tbl_deck_card dc
                                    INNER JOIN tbl_card tc ON tc.card_id = dc.card_id AND tc.card_type = 'main' AND tc.question_text !='' AND tc.answer_text !=''
                                    Where dc.deck_id = '79'~2026-02-02 18:29:29:0229~2026-02-02 18:29:29~success
[02/Feb/2026:18:29:29] (root_api-) Query~select count(*) as card_count FROM  tbl_deck_card dc
                                    INNER JOIN tbl_card tc ON tc.card_id = dc.card_id AND tc.card_type = 'main' AND tc.question_text !='' AND tc.answer_text !=''
                                    Where dc.deck_id = '80'~2026-02-02 18:29:29:0229~2026-02-02 18:29:29~success
[02/Feb/2026:18:29:29] (root_api-) Query~select count(*) as card_count FROM  tbl_deck_card dc
                                    INNER JOIN tbl_card tc ON tc.card_id = dc.card_id AND tc.card_type = 'main' AND tc.question_text !='' AND tc.answer_text !=''
                                    Where dc.deck_id = '81'~2026-02-02 18:29:29:0229~2026-02-02 18:29:29~success
[02/Feb/2026:18:29:29] (root_api-) Query~select count(*) as card_count FROM  tbl_deck_card dc
                                    INNER JOIN tbl_card tc ON tc.card_id = dc.card_id AND tc.card_type = 'main' AND tc.question_text !='' AND tc.answer_text !=''
                                    Where dc.deck_id = '82'~2026-02-02 18:29:29:0229~2026-02-02 18:29:29~success
[02/Feb/2026:18:29:29] (root_api-) Query~select count(*) as card_count FROM  tbl_deck_card dc
                                    INNER JOIN tbl_card tc ON tc.card_id = dc.card_id AND tc.card_type = 'main' AND tc.question_text !='' AND tc.answer_text !=''
                                    Where dc.deck_id = '83'~2026-02-02 18:29:29:0229~2026-02-02 18:29:29~success
[02/Feb/2026:18:29:29] (root_api-) Final JSON =  {"status":"ok",
                "message":"",
                "Errorcode":"",
                "data":{"66":{"deck_info":{"deck_id":"66","course_id":"25","deck_name":"Term 1: Whole Numbers","short_name":"Whole No. ","eval_id":"1","deck_desc":"Whole numbers deals with the explaination of different types of numbers, properties of operations, finance as well as estimation and rounding off. ","deck_brief":"","deck_status":"Draft","card_cnt":"56","version":"1"}},"67":{"deck_info":{"deck_id":"67","course_id":"25","deck_name":"Integers","short_name":"Integers","eval_id":"1","deck_desc":"Short questions regarding what integers are and how to solve expressions involving integers. ","deck_brief":"","deck_status":"Draft","card_cnt":"37","version":"1"}},"68":{"deck_info":{"deck_id":"68","course_id":"25","deck_name":"Exponents ","short_name":"Exponents","eval_id":"1","deck_desc":"This chapter of exponents provides information on the different ways to solve exponential expressions as well as the different laws of exponents. ","deck_brief":"","deck_status":"Draft","card_cnt":"55","version":"1"}},"69":{"deck_info":{"deck_id":"69","course_id":"25","deck_name":"Numeric and Geometric Patterns ","short_name":"Patterns","eval_id":"1","deck_desc":"Numeric and geomteric patterns revises concepts of commonly asked patterns as well as different ways patterns may be represented such an in a table, flow diagram as well as visually in pictures.  ","deck_brief":"","deck_status":"Draft","card_cnt":"23","version":"1"}},"70":{"deck_info":{"deck_id":"70","course_id":"25","deck_name":"Functions and Relationships ","short_name":"Functions and Relationships","eval_id":"1","deck_desc":"Functions and relationships is all about relating the input number to the output number in different ways and representing these relationships visually. ","deck_brief":"","deck_status":"Draft","card_cnt":"18","version":"1"}},"71":{"deck_info":{"deck_id":"71","course_id":"25","deck_name":"Algebraic Expressions 1 ","short_name":"Algebraic expressions","eval_id":"1","deck_desc":"Algebraic expressions involves taking a deeper look into the different components that make up an expression as well as ways in which we can simplify and solve them.","deck_brief":"","deck_status":"Draft","card_cnt":"36","version":"1"}},"72":{"deck_info":{"deck_id":"72","course_id":"25","deck_name":"Algebraic Equations 1 ","short_name":"Algebraic equations","eval_id":"1","deck_desc":"This deck of algebraic equations provides learners with a solid foundation of the standard procedure of solving equations and helping them to easily solve for the value of certain variables.","deck_brief":"","deck_status":"Draft","card_cnt":"24","version":"1"}},"73":{"deck_info":{"deck_id":"73","course_id":"25","deck_name":"Term 2: Algebraic Expressions 2 ","short_name":"Algenbraic Expressions 2 ","eval_id":"1","deck_desc":"Algebraic expressions 2 involves solving expressions using the distributative property and simplifying expressions with multiple operations. ","deck_brief":"","deck_status":"Draft","card_cnt":"53","version":"1"}},"74":{"deck_info":{"deck_id":"74","course_id":"25","deck_name":"Algebraic Equations 2 ","short_name":"Algebraic Equations 2 ","eval_id":"1","deck_desc":"Algebraic equations 2 uses flow diagrams and tables to help learners visualise and understand the concept of equations better as well as different ways to solve equations from left to right and right to left. ","deck_brief":"","deck_status":"Draft","card_cnt":"38","version":"1"}},"75":{"deck_info":{"deck_id":"75","course_id":"25","deck_name":"Construction of Geometric Figures","short_name":"Construction of shapes","eval_id":"1","deck_desc":"Construction of geometric figures helps emphasise the differences between parallel and perpendicular lines as well as different types of angles within different types of triangles and quadrilatrals. ","deck_brief":"","deck_status":"Draft","card_cnt":"55","version":"1"}},"76":{"deck_info":{"deck_id":"76","course_id":"25","deck_name":"Geometry of 2D Shapes","short_name":"Geometry of shapes","eval_id":"1","deck_desc":"This chapter of geometry of 2D shapes focuses on identifying and classifying different types of triangles and quadrilaterals as well as solving for missing sides and angles. ","deck_brief":"","deck_status":"Draft","card_cnt":"67","version":"1"}},"77":{"deck_info":{"deck_id":"77","course_id":"25","deck_name":"Geometry of straight lines","short_name":"Geometry of straight lines","eval_id":"1","deck_desc":"In this chapter of geometry of straight lines, the different mathematical reasons are taught in example form and shows the different ways in which learners are asked to find angles and identify them more easily. ","deck_brief":"","deck_status":"Draft","card_cnt":"68","version":"1"}},"78":{"deck_info":{"deck_id":"78","course_id":"25","deck_name":"Term 3: Common Fractions","short_name":"Common Fractions","eval_id":"1","deck_desc":"Common fractions helps learners perform the basic operations with fractions including addition, subtraction, multiplication and division. It also helps learners understand how to use and incorporate equivalent fractions and simplify fractions. ","deck_brief":"","deck_status":"Draft","card_cnt":"132","version":"1"}},"79":{"deck_info":{"deck_id":"79","course_id":"25","deck_name":"Decimal Fractions","short_name":"Decimals ","eval_id":"1","deck_desc":"Decimal fractions touches on how to convert fractions to decimals and decimals to fractions as well as how to perform operations with decimals and ordering, comparing and rounding off decimals. ","deck_brief":"","deck_status":"Draft","card_cnt":"108","version":"1"}},"80":{"deck_info":{"deck_id":"80","course_id":"25","deck_name":"Pythagoras Theorem ","short_name":"Pythagoras ","eval_id":"1","deck_desc":"This deck focuses on solving for lengths of right-angled triangles using the Pythagoras theorem and introduces learners to the converse Pythagoras theorem. ","deck_brief":"","deck_status":"Draft","card_cnt":"31","version":"1"}},"81":{"deck_info":{"deck_id":"81","course_id":"25","deck_name":"Area and Perimeter of 2D shapes","short_name":"Area and Perimeter","eval_id":"1","deck_desc":"Area and perimeter focuses on calculating the distances around shapes as well as how much space shapes such as rectangles, squares, circles and triangles take up. It focuses on understanding and logically solving the perimeter and area of other composite 2D\nshapes as well. ","deck_brief":"","deck_status":"Draft","card_cnt":"74","version":"1"}},"82":{"deck_info":{"deck_id":"82","course_id":"25","deck_name":"Surface Area and Volume of 3D Shapes","short_name":"Surface Area and Volume ","eval_id":"1","deck_desc":"Surface area and volume focuses on the different methods learners can use to solve for volume, surface area and capacity as well as how to get cubic units of measurements and when such measurements are used. ","deck_brief":"","deck_status":"Draft","card_cnt":"51","version":"1"}},"83":{"deck_info":{"deck_id":"83","course_id":"25","deck_name":"Data Handling ","short_name":"Data Handling","eval_id":"1","deck_desc":"Data handling helps learners interpret and understand the various pieces of information that may be collected when looking at data as well as different ways to summarise and read data. ","deck_brief":"","deck_status":"Draft","card_cnt":"0","version":"1"}}}}
[02/Feb/2026:18:29:29] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:29:29] (root_api-) op => getUsersCourseRole ,user_id => 184 ,course_id => 25 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:18:29:29] (root_api-) OP= getUsersCourseRole of page root_api.php
[02/Feb/2026:18:29:29] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:29:29:0229~2026-02-02 18:29:29~success
[02/Feb/2026:18:29:29] (root_api-) serviceName course_data
[02/Feb/2026:18:29:29] (root_api-) Query~SELECT ed_role FROM tbl_course_educator WHERE  course_id = '25' AND user_id = 184~2026-02-02 18:29:29:0229~2026-02-02 18:29:29~success
[02/Feb/2026:18:29:29] (root_api-) Final JSON =  {"status":"ok","message":"","Errorcode":"","data":{"ed_role":"author"}}
[02/Feb/2026:18:29:30] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:29:30] (root_api-) op => api-refresh ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => common_data ,
[02/Feb/2026:18:29:30] (root_api-) OP= api-refresh of page root_api.php
[02/Feb/2026:18:29:30] (root_api-) serviceName common_data
[02/Feb/2026:18:29:30] (root_api-) Final JSON =  {"status":"ok","message":"","Errorcode":"","data":""}
[02/Feb/2026:18:29:33] (root_api-) token =  IP = 169.0.141.180
[02/Feb/2026:18:29:33] (root_api-) 
[02/Feb/2026:18:29:33] (root_api-) OP=  of page root_api.php
[02/Feb/2026:18:29:33] (root_api-) Final JSON =  { "status":"error",
					"message":"Invalid Session",
					"Errorcode":"err100",
					"data":{}}
[02/Feb/2026:18:29:33] (root_api-) token =  IP = 169.0.141.180
[02/Feb/2026:18:29:33] (root_api-) 
[02/Feb/2026:18:29:33] (root_api-) OP=  of page root_api.php
[02/Feb/2026:18:29:33] (root_api-) Final JSON =  { "status":"error",
					"message":"Invalid Session",
					"Errorcode":"err100",
					"data":{}}
[02/Feb/2026:18:29:33] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:29:33] (root_api-) op => getCourseDetail ,course_id => 25 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:18:29:33] (root_api-) OP= getCourseDetail of page root_api.php
[02/Feb/2026:18:29:33] (root_api-) serviceName course_data
[02/Feb/2026:18:29:33] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:29:33] (root_api-) op => getDeckCard ,deckId => 83 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:18:29:33] (root_api-) OP= getDeckCard of page root_api.php
[02/Feb/2026:18:29:33] (root_api-) serviceName course_data
[02/Feb/2026:18:29:33] (root_api-) Query~SELECT * FROM tbl_course where course_id = '25' AND status NOT IN('Discard')~2026-02-02 18:29:33:0233~2026-02-02 18:29:33~success
[02/Feb/2026:18:29:33] (root_api-) Query~SELECT course_image_id, course_image, sequence, status FROM tbl_course_images where course_id = 25 ORDER BY sequence DESC~2026-02-02 18:29:33:0233~2026-02-02 18:29:33~success
[02/Feb/2026:18:29:33] (root_api-) Query~SELECT c.card_id, c.card_parent_id FROM tbl_card c, tbl_deck_card dc  WHERE dc.deck_id = '83' AND c.question_text='' AND c.answer_text='' AND dc.card_id = c.card_id ~2026-02-02 18:29:33:0233~2026-02-02 18:29:33~success
[02/Feb/2026:18:29:33] (root_api-) Query~select course_id as prev_course_id from tbl_course where course_parent_id = 25 AND version = 0 AND status NOT IN('Discard')~2026-02-02 18:29:33:0233~2026-02-02 18:29:33~success
[02/Feb/2026:18:29:33] (root_api-) Query~DELETE from tbl_card WHERE card_id = ''~2026-02-02 18:29:33:0233~2026-02-02 18:29:33~success
[02/Feb/2026:18:29:33] (root_api-) Query~select course_id as next_course_id from tbl_course where course_parent_id = 25 AND version = 2 AND status NOT IN('Discard')~2026-02-02 18:29:33:0233~2026-02-02 18:29:33~success
[02/Feb/2026:18:29:33] (root_api-) Final JSON =  {"status":"ok","message":"Course Details fetched Successfully","Errorcode":"","data":[{"course_id":"25","course_parent_id":"25","version":"1","org_id":"2","course_name":"Grade 8 Mathematics","short_name":"","status":"Draft","eval_id":"1","course_desc":"Grade 8 Mathematics aims to build strong foundational skills required to prepare learners for higher grades of mathematics and develop strong, appropriate mathematical reasoning and logical thinking. ","amount":"0","currency":null,"pay_type":"paid","course_brief":null,"course_duration":"16","background_color":"","text_color":"","creation_date":"2025-07-16 13:21:03","created_by":"184","updation_date":"2026-01-07 12:53:22","updated_by":"184","images":[],"parentid":"","childid":""}]}
[02/Feb/2026:18:29:33] (root_api-) Query~DELETE from tbl_card_parent WHERE card_parent_id = ''~2026-02-02 18:29:33:0233~2026-02-02 18:29:33~success
[02/Feb/2026:18:29:33] (root_api-) Query~DELETE from tbl_deck_card WHERE card_id = ''~2026-02-02 18:29:33:0233~2026-02-02 18:29:33~success
[02/Feb/2026:18:29:33] (root_api-) Query~SELECT tc.card_id,tc.card_title,tc.card_image_url,tc.card_video_url, CASE WHEN tc.card_style = 0 THEN 'Text' ELSE 'Image' END AS card_style  , tc.question_text, tc.status AS cardStatus, tc.answer_text, dc.sequence as cardSequence, tc.version,DENSE_RANK() OVER (ORDER BY dc.sequence) cardRank
            FROM  tbl_deck_card dc
            INNER JOIN tbl_card tc ON tc.card_id = dc.card_id AND tc.card_type = 'main'
            Where dc.deck_id = '83'~2026-02-02 18:29:33:0233~2026-02-02 18:29:33~success
[02/Feb/2026:18:29:33] (root_api-) Query~SELECT deck_id, deck_name, status, version from tbl_deck WHERE deck_id = '83'~2026-02-02 18:29:33:0233~2026-02-02 18:29:33~success
[02/Feb/2026:18:29:33] (root_api-) Final JSON =  {"status":"ok",
                "message":"",
                "Errorcode":"",
                "data":{"deck_info":{"deck_id":"83","deck_name":"Data Handling ","status":"Draft","version":"1"}}}
[02/Feb/2026:18:29:33] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:29:33] (root_api-) op => getSwitchRoles ,user_id => 184 ,org_id => 1 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => user_data ,
[02/Feb/2026:18:29:33] (root_api-) OP= getSwitchRoles of page root_api.php
[02/Feb/2026:18:29:33] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:29:33:0233~2026-02-02 18:29:33~success
[02/Feb/2026:18:29:33] (root_api-) Query~SELECT count(1) as cnt FROM tbl_org  WHERE status = 'Active' AND org_id ='1'~2026-02-02 18:29:33:0233~2026-02-02 18:29:33~success
[02/Feb/2026:18:29:33] (root_api-) Query~SELECT count(1) as cnt FROM tbl_user_org u WHERE u.status = 'Active' AND u.user_id ='184' AND  org_id ='1'~2026-02-02 18:29:33:0233~2026-02-02 18:29:33~success
[02/Feb/2026:18:29:33] (root_api-) serviceName user_data
[02/Feb/2026:18:29:33] (root_api-) Query~SELECT u.user_org_id, u.org_id, u.role_id, um.email,o.org_name,r.role_name,o.short_name,CONCAT(u.role_id,'_',u.org_id) as user_org_role
            FROM tbl_user_org u 
            inner join tbl_org o on u.org_id=o.org_id
            inner join tbl_role_master r on r.role_id=u.role_id
            inner join tbl_user_master um on u.user_id = um.user_id
            where u.user_id= 184~2026-02-02 18:29:33:0233~2026-02-02 18:29:33~success
[02/Feb/2026:18:29:33] (root_api-) Final JSON =  {"status":"ok","message":"User Details fetched Successfully!!","Errorcode":"","data":[{"user_org_id":"225","org_id":"1","role_id":"3","email":"alhenaude20@gmail.com","org_name":"University Of Cape Town","role_name":"Learner","short_name":"UCT","user_org_role":"3_1"},{"user_org_id":"226","org_id":"2","role_id":"2","email":"alhenaude20@gmail.com","org_name":"C-Institute","role_name":"Educator","short_name":"C-Institute","user_org_role":"2_2"}]}
[02/Feb/2026:18:29:33] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:29:33] (root_api-) op => getUsersCourseRole ,user_id => 184 ,course_id => 25 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:18:29:33] (root_api-) OP= getUsersCourseRole of page root_api.php
[02/Feb/2026:18:29:33] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:29:33:0233~2026-02-02 18:29:33~success
[02/Feb/2026:18:29:33] (root_api-) serviceName course_data
[02/Feb/2026:18:29:33] (root_api-) Query~SELECT ed_role FROM tbl_course_educator WHERE  course_id = '25' AND user_id = 184~2026-02-02 18:29:33:0233~2026-02-02 18:29:33~success
[02/Feb/2026:18:29:33] (root_api-) Final JSON =  {"status":"ok","message":"","Errorcode":"","data":{"ed_role":"author"}}
[02/Feb/2026:18:29:34] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:29:34] (root_api-) op => api-refresh ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => common_data ,
[02/Feb/2026:18:29:34] (root_api-) OP= api-refresh of page root_api.php
[02/Feb/2026:18:29:34] (root_api-) serviceName common_data
[02/Feb/2026:18:29:34] (root_api-) Final JSON =  {"status":"ok","message":"","Errorcode":"","data":""}
[02/Feb/2026:18:30:27] (root_api-) token =  IP = 169.0.141.180
[02/Feb/2026:18:30:27] (root_api-) 
[02/Feb/2026:18:30:27] (root_api-) OP=  of page root_api.php
[02/Feb/2026:18:30:27] (root_api-) Final JSON =  { "status":"error",
					"message":"Invalid Session",
					"Errorcode":"err100",
					"data":{}}
[02/Feb/2026:18:30:27] (root_api-) token =  IP = 169.0.141.180
[02/Feb/2026:18:30:27] (root_api-) 
[02/Feb/2026:18:30:27] (root_api-) OP=  of page root_api.php
[02/Feb/2026:18:30:27] (root_api-) Final JSON =  { "status":"error",
					"message":"Invalid Session",
					"Errorcode":"err100",
					"data":{}}
[02/Feb/2026:18:30:27] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:30:27] (root_api-) op => getSwitchRoles ,user_id => 184 ,org_id => 1 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => user_data ,
[02/Feb/2026:18:30:27] (root_api-) OP= getSwitchRoles of page root_api.php
[02/Feb/2026:18:30:27] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:30:27] (root_api-) op => createBlankCard ,course_id => 25 ,cardDeckId => 83 ,userId => 184 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => deck_data ,
[02/Feb/2026:18:30:27] (root_api-) OP= createBlankCard of page root_api.php
[02/Feb/2026:18:30:27] (root_api-) serviceName deck_data
[02/Feb/2026:18:30:27] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:30:27:0227~2026-02-02 18:30:27~success
[02/Feb/2026:18:30:27] (root_api-) Query~SELECT count(1) as cnt FROM tbl_org  WHERE status = 'Active' AND org_id ='1'~2026-02-02 18:30:27:0227~2026-02-02 18:30:27~success
[02/Feb/2026:18:30:27] (root_api-) Query~SELECT count(1) as cnt FROM tbl_user_org u WHERE u.status = 'Active' AND u.user_id ='184' AND  org_id ='1'~2026-02-02 18:30:27:0227~2026-02-02 18:30:27~success
[02/Feb/2026:18:30:27] (root_api-) serviceName user_data
[02/Feb/2026:18:30:27] (root_api-) Query~SELECT u.user_org_id, u.org_id, u.role_id, um.email,o.org_name,r.role_name,o.short_name,CONCAT(u.role_id,'_',u.org_id) as user_org_role
            FROM tbl_user_org u 
            inner join tbl_org o on u.org_id=o.org_id
            inner join tbl_role_master r on r.role_id=u.role_id
            inner join tbl_user_master um on u.user_id = um.user_id
            where u.user_id= 184~2026-02-02 18:30:27:0227~2026-02-02 18:30:27~success
[02/Feb/2026:18:30:27] (root_api-) Final JSON =  {"status":"ok","message":"User Details fetched Successfully!!","Errorcode":"","data":[{"user_org_id":"225","org_id":"1","role_id":"3","email":"alhenaude20@gmail.com","org_name":"University Of Cape Town","role_name":"Learner","short_name":"UCT","user_org_role":"3_1"},{"user_org_id":"226","org_id":"2","role_id":"2","email":"alhenaude20@gmail.com","org_name":"C-Institute","role_name":"Educator","short_name":"C-Institute","user_org_role":"2_2"}]}
[02/Feb/2026:18:30:27] (root_api-) Query~SELECT count(1) as deckCount FROM tbl_deck WHERE deck_id = '83'~2026-02-02 18:30:27:0227~2026-02-02 18:30:27~success
[02/Feb/2026:18:30:27] (root_api-) Query~select ifnull(max(card_parent_id),0)+1 as maxId from tbl_card_parent~2026-02-02 18:30:27:0227~2026-02-02 18:30:27~success
[02/Feb/2026:18:30:27] (root_api-) In case tbl_card_parent Insert query = INSERT into tbl_card_parent (card_parent_id, last_version, draft_version, published_version, creation_date, created_by) 
                    VALUES (2459,'1','1','0', NOW(), '184')
[02/Feb/2026:18:30:27] (root_api-) Query~INSERT into tbl_card_parent (card_parent_id, last_version, draft_version, published_version, creation_date, created_by) 
                    VALUES (2459,'1','1','0', NOW(), '184')~2026-02-02 18:30:27:0227~2026-02-02 18:30:27~success
[02/Feb/2026:18:30:27] (root_api-) Query~select ifnull(max(card_parent_id),0) as lastInsertedId from tbl_card_parent~2026-02-02 18:30:27:0227~2026-02-02 18:30:27~success
[02/Feb/2026:18:30:27] (root_api-) Query~select ifnull(max(card_id),0)+1 as maxId from tbl_card~2026-02-02 18:30:27:0227~2026-02-02 18:30:27~success
[02/Feb/2026:18:30:27] (root_api-) In case tbl_card Insert query = INSERT into tbl_card (card_id, card_parent_id, version, card_style, status, card_type, question_text, answer_text, creation_date, created_by) 
                     VALUES (2459, 2459,  1, '0','Draft','main','','', NOW(), '184')
[02/Feb/2026:18:30:27] (root_api-) Query~INSERT into tbl_card (card_id, card_parent_id, version, card_style, status, card_type, question_text, answer_text, creation_date, created_by) 
                     VALUES (2459, 2459,  1, '0','Draft','main','','', NOW(), '184')~2026-02-02 18:30:27:0227~2026-02-02 18:30:27~success
[02/Feb/2026:18:30:27] (root_api-) Query~select ifnull(max(card_id),0) as lastInsertedId from tbl_card~2026-02-02 18:30:27:0227~2026-02-02 18:30:27~success
[02/Feb/2026:18:30:27] (root_api-) Query~UPDATE tbl_card set card_title = 'Card#2459' WHERE card_id= 2459~2026-02-02 18:30:27:0227~2026-02-02 18:30:27~success
[02/Feb/2026:18:30:27] (root_api-) Query~SELECT IFNULL(MAX(sequence), 0) as lastSequenceNumber FROM tbl_deck_card WHERE deck_id = '83'~2026-02-02 18:30:27:0227~2026-02-02 18:30:27~success
[02/Feb/2026:18:30:27] (root_api-) Query~select ifnull(max(deck_card_id),0)+1 as maxId from tbl_deck_card~2026-02-02 18:30:27:0227~2026-02-02 18:30:27~success
[02/Feb/2026:18:30:27] (root_api-) In case tbl_deck_card Insert query = INSERT into tbl_deck_card (deck_card_id, deck_id, card_id, sequence, creation_date, created_by) 
                        VALUES (2459,'83','2459','1', NOW(), '184')
[02/Feb/2026:18:30:27] (root_api-) Query~INSERT into tbl_deck_card (deck_card_id, deck_id, card_id, sequence, creation_date, created_by) 
                        VALUES (2459,'83','2459','1', NOW(), '184')~2026-02-02 18:30:27:0227~2026-02-02 18:30:27~success
[02/Feb/2026:18:30:27] (root_api-) Final JSON =  {"status":"ok","message":"Card inserted Successfully!!","Errorcode":"","data":"2459"}
[02/Feb/2026:18:30:27] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:30:27] (root_api-) op => getSwitchRoles ,user_id => 184 ,org_id => 1 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => user_data ,
[02/Feb/2026:18:30:27] (root_api-) OP= getSwitchRoles of page root_api.php
[02/Feb/2026:18:30:27] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:30:27:0227~2026-02-02 18:30:27~success
[02/Feb/2026:18:30:27] (root_api-) Query~SELECT count(1) as cnt FROM tbl_org  WHERE status = 'Active' AND org_id ='1'~2026-02-02 18:30:27:0227~2026-02-02 18:30:27~success
[02/Feb/2026:18:30:27] (root_api-) Query~SELECT count(1) as cnt FROM tbl_user_org u WHERE u.status = 'Active' AND u.user_id ='184' AND  org_id ='1'~2026-02-02 18:30:27:0227~2026-02-02 18:30:27~success
[02/Feb/2026:18:30:27] (root_api-) serviceName user_data
[02/Feb/2026:18:30:27] (root_api-) Query~SELECT u.user_org_id, u.org_id, u.role_id, um.email,o.org_name,r.role_name,o.short_name,CONCAT(u.role_id,'_',u.org_id) as user_org_role
            FROM tbl_user_org u 
            inner join tbl_org o on u.org_id=o.org_id
            inner join tbl_role_master r on r.role_id=u.role_id
            inner join tbl_user_master um on u.user_id = um.user_id
            where u.user_id= 184~2026-02-02 18:30:27:0227~2026-02-02 18:30:27~success
[02/Feb/2026:18:30:27] (root_api-) Final JSON =  {"status":"ok","message":"User Details fetched Successfully!!","Errorcode":"","data":[{"user_org_id":"225","org_id":"1","role_id":"3","email":"alhenaude20@gmail.com","org_name":"University Of Cape Town","role_name":"Learner","short_name":"UCT","user_org_role":"3_1"},{"user_org_id":"226","org_id":"2","role_id":"2","email":"alhenaude20@gmail.com","org_name":"C-Institute","role_name":"Educator","short_name":"C-Institute","user_org_role":"2_2"}]}
[02/Feb/2026:18:30:27] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:30:27] (root_api-) op => getUsersCourseRole ,user_id => 184 ,course_id => 25 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:18:30:27] (root_api-) OP= getUsersCourseRole of page root_api.php
[02/Feb/2026:18:30:27] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:30:27:0227~2026-02-02 18:30:27~success
[02/Feb/2026:18:30:27] (root_api-) serviceName course_data
[02/Feb/2026:18:30:27] (root_api-) Query~SELECT ed_role FROM tbl_course_educator WHERE  course_id = '25' AND user_id = 184~2026-02-02 18:30:27:0227~2026-02-02 18:30:27~success
[02/Feb/2026:18:30:27] (root_api-) Final JSON =  {"status":"ok","message":"","Errorcode":"","data":{"ed_role":"author"}}
[02/Feb/2026:18:30:28] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:30:28] (root_api-) op => getCourseDetail ,course_id => 25 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:18:30:28] (root_api-) OP= getCourseDetail of page root_api.php
[02/Feb/2026:18:30:28] (root_api-) serviceName course_data
[02/Feb/2026:18:30:28] (root_api-) Query~SELECT * FROM tbl_course where course_id = '25' AND status NOT IN('Discard')~2026-02-02 18:30:28:0228~2026-02-02 18:30:28~success
[02/Feb/2026:18:30:28] (root_api-) Query~SELECT course_image_id, course_image, sequence, status FROM tbl_course_images where course_id = 25 ORDER BY sequence DESC~2026-02-02 18:30:28:0228~2026-02-02 18:30:28~success
[02/Feb/2026:18:30:28] (root_api-) Query~select course_id as prev_course_id from tbl_course where course_parent_id = 25 AND version = 0 AND status NOT IN('Discard')~2026-02-02 18:30:28:0228~2026-02-02 18:30:28~success
[02/Feb/2026:18:30:28] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:30:28] (root_api-) op => get-my-contents-card-info ,user_id => 184 ,course_id => 25 ,deckId => 83 ,cardId => 2459 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:18:30:28] (root_api-) OP= get-my-contents-card-info of page root_api.php
[02/Feb/2026:18:30:28] (root_api-) Query~select course_id as next_course_id from tbl_course where course_parent_id = 25 AND version = 2 AND status NOT IN('Discard')~2026-02-02 18:30:28:0228~2026-02-02 18:30:28~success
[02/Feb/2026:18:30:28] (root_api-) Final JSON =  {"status":"ok","message":"Course Details fetched Successfully","Errorcode":"","data":[{"course_id":"25","course_parent_id":"25","version":"1","org_id":"2","course_name":"Grade 8 Mathematics","short_name":"","status":"Draft","eval_id":"1","course_desc":"Grade 8 Mathematics aims to build strong foundational skills required to prepare learners for higher grades of mathematics and develop strong, appropriate mathematical reasoning and logical thinking. ","amount":"0","currency":null,"pay_type":"paid","course_brief":null,"course_duration":"16","background_color":"","text_color":"","creation_date":"2025-07-16 13:21:03","created_by":"184","updation_date":"2026-01-07 12:53:22","updated_by":"184","images":[],"parentid":"","childid":""}]}
[02/Feb/2026:18:30:28] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:30:28:0228~2026-02-02 18:30:28~success
[02/Feb/2026:18:30:28] (root_api-) serviceName course_data
[02/Feb/2026:18:30:28] (root_api-) Query~SELECT tc.card_id,tc.card_style,tc.card_title,tc.card_image_url,tc.card_video_url, CASE WHEN tc.card_style = 0 THEN 'Text' ELSE 'Image' END AS card_styleText  , tc.question_text, tc.status AS cardStatus, tc.answer_text, dc.deck_id,dc.sequence as cardSequence, tc.version, tc.card_parent_id
            FROM tbl_card tc
            INNER JOIN tbl_deck_card dc ON dc.card_id = tc.card_id
            Where dc.deck_id = '83' AND tc.card_id = '2459' AND tc.card_type = 'main' /*AND tc.created_by = '184'*/~2026-02-02 18:30:28:0228~2026-02-02 18:30:28~success
[02/Feb/2026:18:30:28] (root_api-) Query~select tc.card_parent_id, dc.deck_id as card_parent_deckid, tcd.course_id as card_parent_courseid from tbl_card tc, tbl_deck_card dc, tbl_course_deck tcd WHERE tc.card_parent_id=2459 AND tc.version = 0 AND tc.card_parent_id=dc.card_id AND dc.deck_id=tcd.deck_id~2026-02-02 18:30:28:0228~2026-02-02 18:30:28~success
[02/Feb/2026:18:30:28] (root_api-) Query~select tc.card_id as card_child_id, dc.deck_id as card_child_deckid, tcd.course_id as card_child_courseid from tbl_card tc, tbl_deck_card dc, tbl_course_deck tcd WHERE tc.card_parent_id=2459 AND tc.version = 2 AND tc.card_parent_id=dc.card_id AND dc.deck_id=tcd.deck_id~2026-02-02 18:30:28:0228~2026-02-02 18:30:28~success
[02/Feb/2026:18:30:28] (root_api-) Final JSON =  {"status":"ok",
                    "message":"",
                    "Errorcode":"",
                    "data":{"card_id":"2459","card_style":"0","card_title":"Card#2459","card_image_url":"","card_video_url":"","card_styleText":"Text","question_text":"","cardStatus":"Draft","answer_text":"","deck_id":"83","cardSequence":"1","version":"1","card_parent_id":null,"card_parent_deckid":null,"card_parent_courseid":null,"card_child_id":null,"card_child_deckid":null,"card_child_courseid":null}}
[02/Feb/2026:18:30:28] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:30:28] (root_api-) op => get-my-contents-deck-info ,user_id => 184 ,course_id => 25 ,deckId => 83 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:18:30:28] (root_api-) OP= get-my-contents-deck-info of page root_api.php
[02/Feb/2026:18:30:28] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:30:28:0228~2026-02-02 18:30:28~success
[02/Feb/2026:18:30:28] (root_api-) serviceName course_data
[02/Feb/2026:18:30:28] (root_api-) Query~SELECT td.deck_id, td.created_by, tcd.course_id, 
            ifnull(tcd.deck_name,td.deck_name) deck_name,
            ifnull(tcd.short_name,td.short_name) short_name,
            ifnull(tcd.eval_id,td.eval_id) eval_id,
            ifnull(tcd.deck_desc,td.deck_desc) deck_desc,
            ifnull(tcd.deck_brief,td.deck_brief) deck_brief,
            td.status AS deckStatus,
            td.version
            FROM tbl_deck td 
            INNER JOIN tbl_course_deck tcd ON tcd.deck_id = td.deck_id AND course_id = '25' AND tcd.created_by = '184'
            Where td.deck_id = '83' AND td.deck_type = 'main' AND td.created_by = '184'~2026-02-02 18:30:28:0228~2026-02-02 18:30:28~success
[02/Feb/2026:18:30:28] (root_api-) Query~select td.deck_parent_id, cd.course_id as parent_courseid from tbl_deck td, tbl_course_deck cd where td.deck_id = 83 AND td.deck_parent_id <> 83 AND td.deck_parent_id = cd.deck_id~2026-02-02 18:30:28:0228~2026-02-02 18:30:28~success
[02/Feb/2026:18:30:28] (root_api-) Query~select td.deck_id as deck_child_id, cd.course_id as child_courseid from tbl_deck td, tbl_course_deck cd where td.deck_parent_id = 83 AND td.deck_id <> 83 AND td.deck_id = cd.deck_id~2026-02-02 18:30:28:0228~2026-02-02 18:30:28~success
[02/Feb/2026:18:30:28] (root_api-) Final JSON =  {"status":"ok",
                    "message":"",
                    "Errorcode":"",
                    "data":{"deck_id":"83","created_by":"184","course_id":"25","deck_name":"Data Handling ","short_name":"Data Handling","eval_id":"1","deck_desc":"Data handling helps learners interpret and understand the various pieces of information that may be collected when looking at data as well as different ways to summarise and read data. ","deck_brief":"","deckStatus":"Draft","version":"1","parentid":"","childid":""}}
[02/Feb/2026:18:30:29] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:30:29] (root_api-) op => api-refresh ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => common_data ,
[02/Feb/2026:18:30:29] (root_api-) OP= api-refresh of page root_api.php
[02/Feb/2026:18:30:29] (root_api-) serviceName common_data
[02/Feb/2026:18:30:29] (root_api-) Final JSON =  {"status":"ok","message":"","Errorcode":"","data":""}
[02/Feb/2026:18:30:57] (root_api-) token =  IP = 169.0.141.180
[02/Feb/2026:18:30:57] (root_api-) 
[02/Feb/2026:18:30:57] (root_api-) OP=  of page root_api.php
[02/Feb/2026:18:30:57] (root_api-) Final JSON =  { "status":"error",
					"message":"Invalid Session",
					"Errorcode":"err100",
					"data":{}}
[02/Feb/2026:18:30:57] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:30:57] (root_api-) op => user-card-operation ,userId => 184 ,courseId => 25 ,cardDeckMode => edit ,cardDeckId => 83 ,questionText => <p>What is data handling?</p><p><br></p> ,answerText => <p>Data handling in maths refers to the collecting and sorting of data in different forms such as tally tables and bar graphs, in order to interpret information easier.&nbsp;</p><p><br></p> ,editCardId => 2459 ,action => SAVE_AND_NEXT ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => deck_data ,
[02/Feb/2026:18:30:57] (root_api-) OP= user-card-operation of page root_api.php
[02/Feb/2026:18:30:57] (root_api-) serviceName deck_data
[02/Feb/2026:18:30:57] (root_api-) Query~SELECT count(1) as deckCardCount FROM tbl_deck_card WHERE deck_id = '83' AND card_id = '2459'~2026-02-02 18:30:57:0257~2026-02-02 18:30:57~success
[02/Feb/2026:18:30:57] (root_api-) Query~SELECT question_text, answer_text FROM tbl_card  WHERE card_id = '2459'~2026-02-02 18:30:57:0257~2026-02-02 18:30:57~success
[02/Feb/2026:18:30:57] (root_api-) In case Card Updated query = UPDATE tbl_card SET card_style = '0' , question_text = '<p>What is data handling?</p><p><br></p>', answer_text = '<p>Data handling in maths refers to the collecting and sorting of data in different forms such as tally tables and bar graphs, in order to interpret information easier.&nbsp;</p><p><br></p>', card_type='main', updation_date = NOW(), updated_by = '184', card_title = '', card_image_url = '', 
                    onlyTextQuestion = '', onlyTextAnswer = '' 
                    WHERE card_id = '2459'
[02/Feb/2026:18:30:57] (root_api-) Query~UPDATE tbl_card SET card_style = '0' , question_text = '<p>What is data handling?</p><p><br></p>', answer_text = '<p>Data handling in maths refers to the collecting and sorting of data in different forms such as tally tables and bar graphs, in order to interpret information easier.&nbsp;</p><p><br></p>', card_type='main', updation_date = NOW(), updated_by = '184', card_title = '', card_image_url = '', 
                    onlyTextQuestion = '', onlyTextAnswer = '' 
                    WHERE card_id = '2459'~2026-02-02 18:30:57:0257~2026-02-02 18:30:57~success
[02/Feb/2026:18:30:57] (root_api-) Final JSON =  {"status":"ok","message":"Card Created Successfully!!","Errorcode":"","data":"","action":"SAVE_AND_NEXT"}
[02/Feb/2026:18:30:59] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:30:59] (root_api-) op => getSwitchRoles ,user_id => 184 ,org_id => 1 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => user_data ,
[02/Feb/2026:18:30:59] (root_api-) OP= getSwitchRoles of page root_api.php
[02/Feb/2026:18:30:59] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:30:59:0259~2026-02-02 18:30:59~success
[02/Feb/2026:18:30:59] (root_api-) Query~SELECT count(1) as cnt FROM tbl_org  WHERE status = 'Active' AND org_id ='1'~2026-02-02 18:30:59:0259~2026-02-02 18:30:59~success
[02/Feb/2026:18:30:59] (root_api-) Query~SELECT count(1) as cnt FROM tbl_user_org u WHERE u.status = 'Active' AND u.user_id ='184' AND  org_id ='1'~2026-02-02 18:30:59:0259~2026-02-02 18:30:59~success
[02/Feb/2026:18:30:59] (root_api-) serviceName user_data
[02/Feb/2026:18:30:59] (root_api-) Query~SELECT u.user_org_id, u.org_id, u.role_id, um.email,o.org_name,r.role_name,o.short_name,CONCAT(u.role_id,'_',u.org_id) as user_org_role
            FROM tbl_user_org u 
            inner join tbl_org o on u.org_id=o.org_id
            inner join tbl_role_master r on r.role_id=u.role_id
            inner join tbl_user_master um on u.user_id = um.user_id
            where u.user_id= 184~2026-02-02 18:30:59:0259~2026-02-02 18:30:59~success
[02/Feb/2026:18:30:59] (root_api-) Final JSON =  {"status":"ok","message":"User Details fetched Successfully!!","Errorcode":"","data":[{"user_org_id":"225","org_id":"1","role_id":"3","email":"alhenaude20@gmail.com","org_name":"University Of Cape Town","role_name":"Learner","short_name":"UCT","user_org_role":"3_1"},{"user_org_id":"226","org_id":"2","role_id":"2","email":"alhenaude20@gmail.com","org_name":"C-Institute","role_name":"Educator","short_name":"C-Institute","user_org_role":"2_2"}]}
[02/Feb/2026:18:30:59] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:30:59] (root_api-) op => createBlankCard ,course_id => 25 ,cardDeckId => 83 ,userId => 184 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => deck_data ,
[02/Feb/2026:18:30:59] (root_api-) OP= createBlankCard of page root_api.php
[02/Feb/2026:18:30:59] (root_api-) serviceName deck_data
[02/Feb/2026:18:30:59] (root_api-) Query~SELECT count(1) as deckCount FROM tbl_deck WHERE deck_id = '83'~2026-02-02 18:30:59:0259~2026-02-02 18:30:59~success
[02/Feb/2026:18:30:59] (root_api-) Query~select ifnull(max(card_parent_id),0)+1 as maxId from tbl_card_parent~2026-02-02 18:30:59:0259~2026-02-02 18:30:59~success
[02/Feb/2026:18:30:59] (root_api-) In case tbl_card_parent Insert query = INSERT into tbl_card_parent (card_parent_id, last_version, draft_version, published_version, creation_date, created_by) 
                    VALUES (2460,'1','1','0', NOW(), '184')
[02/Feb/2026:18:30:59] (root_api-) Query~INSERT into tbl_card_parent (card_parent_id, last_version, draft_version, published_version, creation_date, created_by) 
                    VALUES (2460,'1','1','0', NOW(), '184')~2026-02-02 18:30:59:0259~2026-02-02 18:30:59~success
[02/Feb/2026:18:30:59] (root_api-) Query~select ifnull(max(card_parent_id),0) as lastInsertedId from tbl_card_parent~2026-02-02 18:30:59:0259~2026-02-02 18:30:59~success
[02/Feb/2026:18:30:59] (root_api-) Query~select ifnull(max(card_id),0)+1 as maxId from tbl_card~2026-02-02 18:30:59:0259~2026-02-02 18:30:59~success
[02/Feb/2026:18:30:59] (root_api-) In case tbl_card Insert query = INSERT into tbl_card (card_id, card_parent_id, version, card_style, status, card_type, question_text, answer_text, creation_date, created_by) 
                     VALUES (2460, 2460,  1, '0','Draft','main','','', NOW(), '184')
[02/Feb/2026:18:30:59] (root_api-) Query~INSERT into tbl_card (card_id, card_parent_id, version, card_style, status, card_type, question_text, answer_text, creation_date, created_by) 
                     VALUES (2460, 2460,  1, '0','Draft','main','','', NOW(), '184')~2026-02-02 18:30:59:0259~2026-02-02 18:30:59~success
[02/Feb/2026:18:30:59] (root_api-) Query~select ifnull(max(card_id),0) as lastInsertedId from tbl_card~2026-02-02 18:30:59:0259~2026-02-02 18:30:59~success
[02/Feb/2026:18:30:59] (root_api-) Query~UPDATE tbl_card set card_title = 'Card#2460' WHERE card_id= 2460~2026-02-02 18:30:59:0259~2026-02-02 18:30:59~success
[02/Feb/2026:18:30:59] (root_api-) Query~SELECT IFNULL(MAX(sequence), 0) as lastSequenceNumber FROM tbl_deck_card WHERE deck_id = '83'~2026-02-02 18:30:59:0259~2026-02-02 18:30:59~success
[02/Feb/2026:18:30:59] (root_api-) Query~select ifnull(max(deck_card_id),0)+1 as maxId from tbl_deck_card~2026-02-02 18:30:59:0259~2026-02-02 18:30:59~success
[02/Feb/2026:18:30:59] (root_api-) In case tbl_deck_card Insert query = INSERT into tbl_deck_card (deck_card_id, deck_id, card_id, sequence, creation_date, created_by) 
                        VALUES (2460,'83','2460','2', NOW(), '184')
[02/Feb/2026:18:30:59] (root_api-) Query~INSERT into tbl_deck_card (deck_card_id, deck_id, card_id, sequence, creation_date, created_by) 
                        VALUES (2460,'83','2460','2', NOW(), '184')~2026-02-02 18:30:59:0259~2026-02-02 18:30:59~success
[02/Feb/2026:18:30:59] (root_api-) Final JSON =  {"status":"ok","message":"Card inserted Successfully!!","Errorcode":"","data":"2460"}
[02/Feb/2026:18:30:59] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:30:59] (root_api-) op => getSwitchRoles ,user_id => 184 ,org_id => 1 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => user_data ,
[02/Feb/2026:18:30:59] (root_api-) OP= getSwitchRoles of page root_api.php
[02/Feb/2026:18:30:59] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:30:59:0259~2026-02-02 18:30:59~success
[02/Feb/2026:18:30:59] (root_api-) Query~SELECT count(1) as cnt FROM tbl_org  WHERE status = 'Active' AND org_id ='1'~2026-02-02 18:30:59:0259~2026-02-02 18:30:59~success
[02/Feb/2026:18:30:59] (root_api-) Query~SELECT count(1) as cnt FROM tbl_user_org u WHERE u.status = 'Active' AND u.user_id ='184' AND  org_id ='1'~2026-02-02 18:30:59:0259~2026-02-02 18:30:59~success
[02/Feb/2026:18:30:59] (root_api-) serviceName user_data
[02/Feb/2026:18:30:59] (root_api-) Query~SELECT u.user_org_id, u.org_id, u.role_id, um.email,o.org_name,r.role_name,o.short_name,CONCAT(u.role_id,'_',u.org_id) as user_org_role
            FROM tbl_user_org u 
            inner join tbl_org o on u.org_id=o.org_id
            inner join tbl_role_master r on r.role_id=u.role_id
            inner join tbl_user_master um on u.user_id = um.user_id
            where u.user_id= 184~2026-02-02 18:30:59:0259~2026-02-02 18:30:59~success
[02/Feb/2026:18:30:59] (root_api-) Final JSON =  {"status":"ok","message":"User Details fetched Successfully!!","Errorcode":"","data":[{"user_org_id":"225","org_id":"1","role_id":"3","email":"alhenaude20@gmail.com","org_name":"University Of Cape Town","role_name":"Learner","short_name":"UCT","user_org_role":"3_1"},{"user_org_id":"226","org_id":"2","role_id":"2","email":"alhenaude20@gmail.com","org_name":"C-Institute","role_name":"Educator","short_name":"C-Institute","user_org_role":"2_2"}]}
[02/Feb/2026:18:30:59] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:30:59] (root_api-) op => getUsersCourseRole ,user_id => 184 ,course_id => 25 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:18:30:59] (root_api-) OP= getUsersCourseRole of page root_api.php
[02/Feb/2026:18:30:59] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:30:59:0259~2026-02-02 18:30:59~success
[02/Feb/2026:18:30:59] (root_api-) serviceName course_data
[02/Feb/2026:18:30:59] (root_api-) Query~SELECT ed_role FROM tbl_course_educator WHERE  course_id = '25' AND user_id = 184~2026-02-02 18:30:59:0259~2026-02-02 18:30:59~success
[02/Feb/2026:18:30:59] (root_api-) Final JSON =  {"status":"ok","message":"","Errorcode":"","data":{"ed_role":"author"}}
[02/Feb/2026:18:30:59] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:30:59] (root_api-) op => get-my-contents-card-info ,user_id => 184 ,course_id => 25 ,deckId => 83 ,cardId => 2460 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:18:30:59] (root_api-) OP= get-my-contents-card-info of page root_api.php
[02/Feb/2026:18:30:59] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:30:59] (root_api-) op => getCourseDetail ,course_id => 25 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:18:30:59] (root_api-) OP= getCourseDetail of page root_api.php
[02/Feb/2026:18:30:59] (root_api-) serviceName course_data
[02/Feb/2026:18:30:59] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:30:59] (root_api-) op => get-my-contents-deck-info ,user_id => 184 ,course_id => 25 ,deckId => 83 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:18:30:59] (root_api-) OP= get-my-contents-deck-info of page root_api.php
[02/Feb/2026:18:30:59] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:30:59:0259~2026-02-02 18:30:59~success
[02/Feb/2026:18:30:59] (root_api-) serviceName course_data
[02/Feb/2026:18:30:59] (root_api-) Query~SELECT * FROM tbl_course where course_id = '25' AND status NOT IN('Discard')~2026-02-02 18:30:59:0259~2026-02-02 18:30:59~success
[02/Feb/2026:18:30:59] (root_api-) Query~SELECT course_image_id, course_image, sequence, status FROM tbl_course_images where course_id = 25 ORDER BY sequence DESC~2026-02-02 18:30:59:0259~2026-02-02 18:30:59~success
[02/Feb/2026:18:30:59] (root_api-) Query~SELECT tc.card_id,tc.card_style,tc.card_title,tc.card_image_url,tc.card_video_url, CASE WHEN tc.card_style = 0 THEN 'Text' ELSE 'Image' END AS card_styleText  , tc.question_text, tc.status AS cardStatus, tc.answer_text, dc.deck_id,dc.sequence as cardSequence, tc.version, tc.card_parent_id
            FROM tbl_card tc
            INNER JOIN tbl_deck_card dc ON dc.card_id = tc.card_id
            Where dc.deck_id = '83' AND tc.card_id = '2460' AND tc.card_type = 'main' /*AND tc.created_by = '184'*/~2026-02-02 18:30:59:0259~2026-02-02 18:30:59~success
[02/Feb/2026:18:30:59] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:30:59:0259~2026-02-02 18:30:59~success
[02/Feb/2026:18:30:59] (root_api-) serviceName course_data
[02/Feb/2026:18:30:59] (root_api-) Query~select course_id as prev_course_id from tbl_course where course_parent_id = 25 AND version = 0 AND status NOT IN('Discard')~2026-02-02 18:30:59:0259~2026-02-02 18:30:59~success
[02/Feb/2026:18:30:59] (root_api-) Query~select tc.card_parent_id, dc.deck_id as card_parent_deckid, tcd.course_id as card_parent_courseid from tbl_card tc, tbl_deck_card dc, tbl_course_deck tcd WHERE tc.card_parent_id=2460 AND tc.version = 0 AND tc.card_parent_id=dc.card_id AND dc.deck_id=tcd.deck_id~2026-02-02 18:30:59:0259~2026-02-02 18:30:59~success
[02/Feb/2026:18:30:59] (root_api-) Query~select course_id as next_course_id from tbl_course where course_parent_id = 25 AND version = 2 AND status NOT IN('Discard')~2026-02-02 18:30:59:0259~2026-02-02 18:30:59~success
[02/Feb/2026:18:30:59] (root_api-) Final JSON =  {"status":"ok","message":"Course Details fetched Successfully","Errorcode":"","data":[{"course_id":"25","course_parent_id":"25","version":"1","org_id":"2","course_name":"Grade 8 Mathematics","short_name":"","status":"Draft","eval_id":"1","course_desc":"Grade 8 Mathematics aims to build strong foundational skills required to prepare learners for higher grades of mathematics and develop strong, appropriate mathematical reasoning and logical thinking. ","amount":"0","currency":null,"pay_type":"paid","course_brief":null,"course_duration":"16","background_color":"","text_color":"","creation_date":"2025-07-16 13:21:03","created_by":"184","updation_date":"2026-01-07 12:53:22","updated_by":"184","images":[],"parentid":"","childid":""}]}
[02/Feb/2026:18:30:59] (root_api-) Query~SELECT td.deck_id, td.created_by, tcd.course_id, 
            ifnull(tcd.deck_name,td.deck_name) deck_name,
            ifnull(tcd.short_name,td.short_name) short_name,
            ifnull(tcd.eval_id,td.eval_id) eval_id,
            ifnull(tcd.deck_desc,td.deck_desc) deck_desc,
            ifnull(tcd.deck_brief,td.deck_brief) deck_brief,
            td.status AS deckStatus,
            td.version
            FROM tbl_deck td 
            INNER JOIN tbl_course_deck tcd ON tcd.deck_id = td.deck_id AND course_id = '25' AND tcd.created_by = '184'
            Where td.deck_id = '83' AND td.deck_type = 'main' AND td.created_by = '184'~2026-02-02 18:30:59:0259~2026-02-02 18:30:59~success
[02/Feb/2026:18:30:59] (root_api-) Query~select tc.card_id as card_child_id, dc.deck_id as card_child_deckid, tcd.course_id as card_child_courseid from tbl_card tc, tbl_deck_card dc, tbl_course_deck tcd WHERE tc.card_parent_id=2460 AND tc.version = 2 AND tc.card_parent_id=dc.card_id AND dc.deck_id=tcd.deck_id~2026-02-02 18:30:59:0259~2026-02-02 18:30:59~success
[02/Feb/2026:18:30:59] (root_api-) Final JSON =  {"status":"ok",
                    "message":"",
                    "Errorcode":"",
                    "data":{"card_id":"2460","card_style":"0","card_title":"Card#2460","card_image_url":"","card_video_url":"","card_styleText":"Text","question_text":"","cardStatus":"Draft","answer_text":"","deck_id":"83","cardSequence":"2","version":"1","card_parent_id":null,"card_parent_deckid":null,"card_parent_courseid":null,"card_child_id":null,"card_child_deckid":null,"card_child_courseid":null}}
[02/Feb/2026:18:30:59] (root_api-) Query~select td.deck_parent_id, cd.course_id as parent_courseid from tbl_deck td, tbl_course_deck cd where td.deck_id = 83 AND td.deck_parent_id <> 83 AND td.deck_parent_id = cd.deck_id~2026-02-02 18:30:59:0259~2026-02-02 18:30:59~success
[02/Feb/2026:18:30:59] (root_api-) Query~select td.deck_id as deck_child_id, cd.course_id as child_courseid from tbl_deck td, tbl_course_deck cd where td.deck_parent_id = 83 AND td.deck_id <> 83 AND td.deck_id = cd.deck_id~2026-02-02 18:30:59:0259~2026-02-02 18:30:59~success
[02/Feb/2026:18:30:59] (root_api-) Final JSON =  {"status":"ok",
                    "message":"",
                    "Errorcode":"",
                    "data":{"deck_id":"83","created_by":"184","course_id":"25","deck_name":"Data Handling ","short_name":"Data Handling","eval_id":"1","deck_desc":"Data handling helps learners interpret and understand the various pieces of information that may be collected when looking at data as well as different ways to summarise and read data. ","deck_brief":"","deckStatus":"Draft","version":"1","parentid":"","childid":""}}
[02/Feb/2026:18:31:00] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:31:00] (root_api-) op => api-refresh ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => common_data ,
[02/Feb/2026:18:31:00] (root_api-) OP= api-refresh of page root_api.php
[02/Feb/2026:18:31:00] (root_api-) serviceName common_data
[02/Feb/2026:18:31:00] (root_api-) Final JSON =  {"status":"ok","message":"","Errorcode":"","data":""}
[02/Feb/2026:18:32:00] (root_api-) token =  IP = 169.0.141.180
[02/Feb/2026:18:32:00] (root_api-) 
[02/Feb/2026:18:32:00] (root_api-) OP=  of page root_api.php
[02/Feb/2026:18:32:00] (root_api-) Final JSON =  { "status":"error",
					"message":"Invalid Session",
					"Errorcode":"err100",
					"data":{}}
[02/Feb/2026:18:32:00] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:32:00] (root_api-) op => user-card-operation ,userId => 184 ,courseId => 25 ,cardDeckMode => edit ,cardDeckId => 83 ,questionText => <p>List any two points to consider when collecting data.</p><p><br></p> ,answerText => <p>May mention any 2 points along the lines of…</p><p>1. What is the need of this information?/Why are we collecting it?</p><p>2. Where will you receive this data from?/What is your source of information/data?</p><p>3. Who are you collecting data from?</p><p>4. How is the data going to be collected? Via interiews, questionnaires..?</p> ,editCardId => 2460 ,action => SAVE_AND_NEXT ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => deck_data ,
[02/Feb/2026:18:32:00] (root_api-) OP= user-card-operation of page root_api.php
[02/Feb/2026:18:32:00] (root_api-) serviceName deck_data
[02/Feb/2026:18:32:00] (root_api-) Query~SELECT count(1) as deckCardCount FROM tbl_deck_card WHERE deck_id = '83' AND card_id = '2460'~2026-02-02 18:32:00:0200~2026-02-02 18:32:00~success
[02/Feb/2026:18:32:00] (root_api-) Query~SELECT question_text, answer_text FROM tbl_card  WHERE card_id = '2460'~2026-02-02 18:32:00:0200~2026-02-02 18:32:00~success
[02/Feb/2026:18:32:00] (root_api-) In case Card Updated query = UPDATE tbl_card SET card_style = '0' , question_text = '<p>List any two points to consider when collecting data.</p><p><br></p>', answer_text = '<p>May mention any 2 points along the lines of…</p><p>1. What is the need of this information?/Why are we collecting it?</p><p>2. Where will you receive this data from?/What is your source of information/data?</p><p>3. Who are you collecting data from?</p><p>4. How is the data going to be collected? Via interiews, questionnaires..?</p>', card_type='main', updation_date = NOW(), updated_by = '184', card_title = '', card_image_url = '', 
                    onlyTextQuestion = '', onlyTextAnswer = '' 
                    WHERE card_id = '2460'
[02/Feb/2026:18:32:00] (root_api-) Query~UPDATE tbl_card SET card_style = '0' , question_text = '<p>List any two points to consider when collecting data.</p><p><br></p>', answer_text = '<p>May mention any 2 points along the lines of…</p><p>1. What is the need of this information?/Why are we collecting it?</p><p>2. Where will you receive this data from?/What is your source of information/data?</p><p>3. Who are you collecting data from?</p><p>4. How is the data going to be collected? Via interiews, questionnaires..?</p>', card_type='main', updation_date = NOW(), updated_by = '184', card_title = '', card_image_url = '', 
                    onlyTextQuestion = '', onlyTextAnswer = '' 
                    WHERE card_id = '2460'~2026-02-02 18:32:00:0200~2026-02-02 18:32:00~success
[02/Feb/2026:18:32:00] (root_api-) Final JSON =  {"status":"ok","message":"Card Created Successfully!!","Errorcode":"","data":"","action":"SAVE_AND_NEXT"}
[02/Feb/2026:18:32:01] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:32:01] (root_api-) op => getSwitchRoles ,user_id => 184 ,org_id => 1 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => user_data ,
[02/Feb/2026:18:32:01] (root_api-) OP= getSwitchRoles of page root_api.php
[02/Feb/2026:18:32:01] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:32:01:0201~2026-02-02 18:32:01~success
[02/Feb/2026:18:32:01] (root_api-) Query~SELECT count(1) as cnt FROM tbl_org  WHERE status = 'Active' AND org_id ='1'~2026-02-02 18:32:01:0201~2026-02-02 18:32:01~success
[02/Feb/2026:18:32:01] (root_api-) Query~SELECT count(1) as cnt FROM tbl_user_org u WHERE u.status = 'Active' AND u.user_id ='184' AND  org_id ='1'~2026-02-02 18:32:01:0201~2026-02-02 18:32:01~success
[02/Feb/2026:18:32:01] (root_api-) serviceName user_data
[02/Feb/2026:18:32:01] (root_api-) Query~SELECT u.user_org_id, u.org_id, u.role_id, um.email,o.org_name,r.role_name,o.short_name,CONCAT(u.role_id,'_',u.org_id) as user_org_role
            FROM tbl_user_org u 
            inner join tbl_org o on u.org_id=o.org_id
            inner join tbl_role_master r on r.role_id=u.role_id
            inner join tbl_user_master um on u.user_id = um.user_id
            where u.user_id= 184~2026-02-02 18:32:01:0201~2026-02-02 18:32:01~success
[02/Feb/2026:18:32:01] (root_api-) Final JSON =  {"status":"ok","message":"User Details fetched Successfully!!","Errorcode":"","data":[{"user_org_id":"225","org_id":"1","role_id":"3","email":"alhenaude20@gmail.com","org_name":"University Of Cape Town","role_name":"Learner","short_name":"UCT","user_org_role":"3_1"},{"user_org_id":"226","org_id":"2","role_id":"2","email":"alhenaude20@gmail.com","org_name":"C-Institute","role_name":"Educator","short_name":"C-Institute","user_org_role":"2_2"}]}
[02/Feb/2026:18:32:01] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:32:01] (root_api-) op => createBlankCard ,course_id => 25 ,cardDeckId => 83 ,userId => 184 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => deck_data ,
[02/Feb/2026:18:32:01] (root_api-) OP= createBlankCard of page root_api.php
[02/Feb/2026:18:32:01] (root_api-) serviceName deck_data
[02/Feb/2026:18:32:01] (root_api-) Query~SELECT count(1) as deckCount FROM tbl_deck WHERE deck_id = '83'~2026-02-02 18:32:01:0201~2026-02-02 18:32:01~success
[02/Feb/2026:18:32:01] (root_api-) Query~select ifnull(max(card_parent_id),0)+1 as maxId from tbl_card_parent~2026-02-02 18:32:01:0201~2026-02-02 18:32:01~success
[02/Feb/2026:18:32:01] (root_api-) In case tbl_card_parent Insert query = INSERT into tbl_card_parent (card_parent_id, last_version, draft_version, published_version, creation_date, created_by) 
                    VALUES (2461,'1','1','0', NOW(), '184')
[02/Feb/2026:18:32:01] (root_api-) Query~INSERT into tbl_card_parent (card_parent_id, last_version, draft_version, published_version, creation_date, created_by) 
                    VALUES (2461,'1','1','0', NOW(), '184')~2026-02-02 18:32:01:0201~2026-02-02 18:32:01~success
[02/Feb/2026:18:32:01] (root_api-) Query~select ifnull(max(card_parent_id),0) as lastInsertedId from tbl_card_parent~2026-02-02 18:32:01:0201~2026-02-02 18:32:01~success
[02/Feb/2026:18:32:01] (root_api-) Query~select ifnull(max(card_id),0)+1 as maxId from tbl_card~2026-02-02 18:32:01:0201~2026-02-02 18:32:01~success
[02/Feb/2026:18:32:01] (root_api-) In case tbl_card Insert query = INSERT into tbl_card (card_id, card_parent_id, version, card_style, status, card_type, question_text, answer_text, creation_date, created_by) 
                     VALUES (2461, 2461,  1, '0','Draft','main','','', NOW(), '184')
[02/Feb/2026:18:32:01] (root_api-) Query~INSERT into tbl_card (card_id, card_parent_id, version, card_style, status, card_type, question_text, answer_text, creation_date, created_by) 
                     VALUES (2461, 2461,  1, '0','Draft','main','','', NOW(), '184')~2026-02-02 18:32:01:0201~2026-02-02 18:32:01~success
[02/Feb/2026:18:32:01] (root_api-) Query~select ifnull(max(card_id),0) as lastInsertedId from tbl_card~2026-02-02 18:32:01:0201~2026-02-02 18:32:01~success
[02/Feb/2026:18:32:01] (root_api-) Query~UPDATE tbl_card set card_title = 'Card#2461' WHERE card_id= 2461~2026-02-02 18:32:01:0201~2026-02-02 18:32:01~success
[02/Feb/2026:18:32:01] (root_api-) Query~SELECT IFNULL(MAX(sequence), 0) as lastSequenceNumber FROM tbl_deck_card WHERE deck_id = '83'~2026-02-02 18:32:01:0201~2026-02-02 18:32:01~success
[02/Feb/2026:18:32:01] (root_api-) Query~select ifnull(max(deck_card_id),0)+1 as maxId from tbl_deck_card~2026-02-02 18:32:01:0201~2026-02-02 18:32:01~success
[02/Feb/2026:18:32:01] (root_api-) In case tbl_deck_card Insert query = INSERT into tbl_deck_card (deck_card_id, deck_id, card_id, sequence, creation_date, created_by) 
                        VALUES (2461,'83','2461','3', NOW(), '184')
[02/Feb/2026:18:32:01] (root_api-) Query~INSERT into tbl_deck_card (deck_card_id, deck_id, card_id, sequence, creation_date, created_by) 
                        VALUES (2461,'83','2461','3', NOW(), '184')~2026-02-02 18:32:01:0201~2026-02-02 18:32:01~success
[02/Feb/2026:18:32:01] (root_api-) Final JSON =  {"status":"ok","message":"Card inserted Successfully!!","Errorcode":"","data":"2461"}
[02/Feb/2026:18:32:01] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:32:01] (root_api-) op => getSwitchRoles ,user_id => 184 ,org_id => 1 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => user_data ,
[02/Feb/2026:18:32:01] (root_api-) OP= getSwitchRoles of page root_api.php
[02/Feb/2026:18:32:01] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:32:01:0201~2026-02-02 18:32:01~success
[02/Feb/2026:18:32:01] (root_api-) Query~SELECT count(1) as cnt FROM tbl_org  WHERE status = 'Active' AND org_id ='1'~2026-02-02 18:32:01:0201~2026-02-02 18:32:01~success
[02/Feb/2026:18:32:01] (root_api-) Query~SELECT count(1) as cnt FROM tbl_user_org u WHERE u.status = 'Active' AND u.user_id ='184' AND  org_id ='1'~2026-02-02 18:32:01:0201~2026-02-02 18:32:01~success
[02/Feb/2026:18:32:01] (root_api-) serviceName user_data
[02/Feb/2026:18:32:01] (root_api-) Query~SELECT u.user_org_id, u.org_id, u.role_id, um.email,o.org_name,r.role_name,o.short_name,CONCAT(u.role_id,'_',u.org_id) as user_org_role
            FROM tbl_user_org u 
            inner join tbl_org o on u.org_id=o.org_id
            inner join tbl_role_master r on r.role_id=u.role_id
            inner join tbl_user_master um on u.user_id = um.user_id
            where u.user_id= 184~2026-02-02 18:32:01:0201~2026-02-02 18:32:01~success
[02/Feb/2026:18:32:01] (root_api-) Final JSON =  {"status":"ok","message":"User Details fetched Successfully!!","Errorcode":"","data":[{"user_org_id":"225","org_id":"1","role_id":"3","email":"alhenaude20@gmail.com","org_name":"University Of Cape Town","role_name":"Learner","short_name":"UCT","user_org_role":"3_1"},{"user_org_id":"226","org_id":"2","role_id":"2","email":"alhenaude20@gmail.com","org_name":"C-Institute","role_name":"Educator","short_name":"C-Institute","user_org_role":"2_2"}]}
[02/Feb/2026:18:32:02] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:32:02] (root_api-) op => getUsersCourseRole ,user_id => 184 ,course_id => 25 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:18:32:02] (root_api-) OP= getUsersCourseRole of page root_api.php
[02/Feb/2026:18:32:02] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:32:02:0202~2026-02-02 18:32:02~success
[02/Feb/2026:18:32:02] (root_api-) serviceName course_data
[02/Feb/2026:18:32:02] (root_api-) Query~SELECT ed_role FROM tbl_course_educator WHERE  course_id = '25' AND user_id = 184~2026-02-02 18:32:02:0202~2026-02-02 18:32:02~success
[02/Feb/2026:18:32:02] (root_api-) Final JSON =  {"status":"ok","message":"","Errorcode":"","data":{"ed_role":"author"}}
[02/Feb/2026:18:32:02] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:32:02] (root_api-) op => get-my-contents-card-info ,user_id => 184 ,course_id => 25 ,deckId => 83 ,cardId => 2461 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:18:32:02] (root_api-) OP= get-my-contents-card-info of page root_api.php
[02/Feb/2026:18:32:02] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:32:02:0202~2026-02-02 18:32:02~success
[02/Feb/2026:18:32:02] (root_api-) serviceName course_data
[02/Feb/2026:18:32:02] (root_api-) Query~SELECT tc.card_id,tc.card_style,tc.card_title,tc.card_image_url,tc.card_video_url, CASE WHEN tc.card_style = 0 THEN 'Text' ELSE 'Image' END AS card_styleText  , tc.question_text, tc.status AS cardStatus, tc.answer_text, dc.deck_id,dc.sequence as cardSequence, tc.version, tc.card_parent_id
            FROM tbl_card tc
            INNER JOIN tbl_deck_card dc ON dc.card_id = tc.card_id
            Where dc.deck_id = '83' AND tc.card_id = '2461' AND tc.card_type = 'main' /*AND tc.created_by = '184'*/~2026-02-02 18:32:02:0202~2026-02-02 18:32:02~success
[02/Feb/2026:18:32:02] (root_api-) Query~select tc.card_parent_id, dc.deck_id as card_parent_deckid, tcd.course_id as card_parent_courseid from tbl_card tc, tbl_deck_card dc, tbl_course_deck tcd WHERE tc.card_parent_id=2461 AND tc.version = 0 AND tc.card_parent_id=dc.card_id AND dc.deck_id=tcd.deck_id~2026-02-02 18:32:02:0202~2026-02-02 18:32:02~success
[02/Feb/2026:18:32:02] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:32:02] (root_api-) op => getCourseDetail ,course_id => 25 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:18:32:02] (root_api-) OP= getCourseDetail of page root_api.php
[02/Feb/2026:18:32:02] (root_api-) serviceName course_data
[02/Feb/2026:18:32:02] (root_api-) Query~select tc.card_id as card_child_id, dc.deck_id as card_child_deckid, tcd.course_id as card_child_courseid from tbl_card tc, tbl_deck_card dc, tbl_course_deck tcd WHERE tc.card_parent_id=2461 AND tc.version = 2 AND tc.card_parent_id=dc.card_id AND dc.deck_id=tcd.deck_id~2026-02-02 18:32:02:0202~2026-02-02 18:32:02~success
[02/Feb/2026:18:32:02] (root_api-) Final JSON =  {"status":"ok",
                    "message":"",
                    "Errorcode":"",
                    "data":{"card_id":"2461","card_style":"0","card_title":"Card#2461","card_image_url":"","card_video_url":"","card_styleText":"Text","question_text":"","cardStatus":"Draft","answer_text":"","deck_id":"83","cardSequence":"3","version":"1","card_parent_id":null,"card_parent_deckid":null,"card_parent_courseid":null,"card_child_id":null,"card_child_deckid":null,"card_child_courseid":null}}
[02/Feb/2026:18:32:02] (root_api-) Query~SELECT * FROM tbl_course where course_id = '25' AND status NOT IN('Discard')~2026-02-02 18:32:02:0202~2026-02-02 18:32:02~success
[02/Feb/2026:18:32:02] (root_api-) Query~SELECT course_image_id, course_image, sequence, status FROM tbl_course_images where course_id = 25 ORDER BY sequence DESC~2026-02-02 18:32:02:0202~2026-02-02 18:32:02~success
[02/Feb/2026:18:32:02] (root_api-) Query~select course_id as prev_course_id from tbl_course where course_parent_id = 25 AND version = 0 AND status NOT IN('Discard')~2026-02-02 18:32:02:0202~2026-02-02 18:32:02~success
[02/Feb/2026:18:32:02] (root_api-) Query~select course_id as next_course_id from tbl_course where course_parent_id = 25 AND version = 2 AND status NOT IN('Discard')~2026-02-02 18:32:02:0202~2026-02-02 18:32:02~success
[02/Feb/2026:18:32:02] (root_api-) Final JSON =  {"status":"ok","message":"Course Details fetched Successfully","Errorcode":"","data":[{"course_id":"25","course_parent_id":"25","version":"1","org_id":"2","course_name":"Grade 8 Mathematics","short_name":"","status":"Draft","eval_id":"1","course_desc":"Grade 8 Mathematics aims to build strong foundational skills required to prepare learners for higher grades of mathematics and develop strong, appropriate mathematical reasoning and logical thinking. ","amount":"0","currency":null,"pay_type":"paid","course_brief":null,"course_duration":"16","background_color":"","text_color":"","creation_date":"2025-07-16 13:21:03","created_by":"184","updation_date":"2026-01-07 12:53:22","updated_by":"184","images":[],"parentid":"","childid":""}]}
[02/Feb/2026:18:32:02] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:32:02] (root_api-) op => get-my-contents-deck-info ,user_id => 184 ,course_id => 25 ,deckId => 83 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:18:32:02] (root_api-) OP= get-my-contents-deck-info of page root_api.php
[02/Feb/2026:18:32:02] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:32:02:0202~2026-02-02 18:32:02~success
[02/Feb/2026:18:32:02] (root_api-) serviceName course_data
[02/Feb/2026:18:32:02] (root_api-) Query~SELECT td.deck_id, td.created_by, tcd.course_id, 
            ifnull(tcd.deck_name,td.deck_name) deck_name,
            ifnull(tcd.short_name,td.short_name) short_name,
            ifnull(tcd.eval_id,td.eval_id) eval_id,
            ifnull(tcd.deck_desc,td.deck_desc) deck_desc,
            ifnull(tcd.deck_brief,td.deck_brief) deck_brief,
            td.status AS deckStatus,
            td.version
            FROM tbl_deck td 
            INNER JOIN tbl_course_deck tcd ON tcd.deck_id = td.deck_id AND course_id = '25' AND tcd.created_by = '184'
            Where td.deck_id = '83' AND td.deck_type = 'main' AND td.created_by = '184'~2026-02-02 18:32:02:0202~2026-02-02 18:32:02~success
[02/Feb/2026:18:32:02] (root_api-) Query~select td.deck_parent_id, cd.course_id as parent_courseid from tbl_deck td, tbl_course_deck cd where td.deck_id = 83 AND td.deck_parent_id <> 83 AND td.deck_parent_id = cd.deck_id~2026-02-02 18:32:02:0202~2026-02-02 18:32:02~success
[02/Feb/2026:18:32:02] (root_api-) Query~select td.deck_id as deck_child_id, cd.course_id as child_courseid from tbl_deck td, tbl_course_deck cd where td.deck_parent_id = 83 AND td.deck_id <> 83 AND td.deck_id = cd.deck_id~2026-02-02 18:32:02:0202~2026-02-02 18:32:02~success
[02/Feb/2026:18:32:02] (root_api-) Final JSON =  {"status":"ok",
                    "message":"",
                    "Errorcode":"",
                    "data":{"deck_id":"83","created_by":"184","course_id":"25","deck_name":"Data Handling ","short_name":"Data Handling","eval_id":"1","deck_desc":"Data handling helps learners interpret and understand the various pieces of information that may be collected when looking at data as well as different ways to summarise and read data. ","deck_brief":"","deckStatus":"Draft","version":"1","parentid":"","childid":""}}
[02/Feb/2026:18:32:03] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:32:03] (root_api-) op => api-refresh ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => common_data ,
[02/Feb/2026:18:32:03] (root_api-) OP= api-refresh of page root_api.php
[02/Feb/2026:18:32:03] (root_api-) serviceName common_data
[02/Feb/2026:18:32:03] (root_api-) Final JSON =  {"status":"ok","message":"","Errorcode":"","data":""}
[02/Feb/2026:18:32:45] (root_api-) token =  IP = 169.0.141.180
[02/Feb/2026:18:32:45] (root_api-) 
[02/Feb/2026:18:32:45] (root_api-) OP=  of page root_api.php
[02/Feb/2026:18:32:45] (root_api-) Final JSON =  { "status":"error",
					"message":"Invalid Session",
					"Errorcode":"err100",
					"data":{}}
[02/Feb/2026:18:32:45] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:32:45] (root_api-) op => user-card-operation ,userId => 184 ,courseId => 25 ,cardDeckMode => edit ,cardDeckId => 83 ,questionText => <p>Who is most likely to be the source of data in the following scenario:</p><p>365 kids in Cambria have been vaccinated against all childhood diseases.</p> ,answerText => <p>A local hospital/clinic in Cambria</p><p><br></p> ,editCardId => 2461 ,action => SAVE_AND_NEXT ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => deck_data ,
[02/Feb/2026:18:32:45] (root_api-) OP= user-card-operation of page root_api.php
[02/Feb/2026:18:32:45] (root_api-) serviceName deck_data
[02/Feb/2026:18:32:45] (root_api-) Query~SELECT count(1) as deckCardCount FROM tbl_deck_card WHERE deck_id = '83' AND card_id = '2461'~2026-02-02 18:32:45:0245~2026-02-02 18:32:45~success
[02/Feb/2026:18:32:45] (root_api-) Query~SELECT question_text, answer_text FROM tbl_card  WHERE card_id = '2461'~2026-02-02 18:32:45:0245~2026-02-02 18:32:45~success
[02/Feb/2026:18:32:45] (root_api-) In case Card Updated query = UPDATE tbl_card SET card_style = '0' , question_text = '<p>Who is most likely to be the source of data in the following scenario:</p><p>365 kids in Cambria have been vaccinated against all childhood diseases.</p>', answer_text = '<p>A local hospital/clinic in Cambria</p><p><br></p>', card_type='main', updation_date = NOW(), updated_by = '184', card_title = '', card_image_url = '', 
                    onlyTextQuestion = '', onlyTextAnswer = '' 
                    WHERE card_id = '2461'
[02/Feb/2026:18:32:45] (root_api-) Query~UPDATE tbl_card SET card_style = '0' , question_text = '<p>Who is most likely to be the source of data in the following scenario:</p><p>365 kids in Cambria have been vaccinated against all childhood diseases.</p>', answer_text = '<p>A local hospital/clinic in Cambria</p><p><br></p>', card_type='main', updation_date = NOW(), updated_by = '184', card_title = '', card_image_url = '', 
                    onlyTextQuestion = '', onlyTextAnswer = '' 
                    WHERE card_id = '2461'~2026-02-02 18:32:45:0245~2026-02-02 18:32:45~success
[02/Feb/2026:18:32:45] (root_api-) Final JSON =  {"status":"ok","message":"Card Created Successfully!!","Errorcode":"","data":"","action":"SAVE_AND_NEXT"}
[02/Feb/2026:18:32:47] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:32:47] (root_api-) op => getSwitchRoles ,user_id => 184 ,org_id => 1 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => user_data ,
[02/Feb/2026:18:32:47] (root_api-) OP= getSwitchRoles of page root_api.php
[02/Feb/2026:18:32:47] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:32:47:0247~2026-02-02 18:32:47~success
[02/Feb/2026:18:32:47] (root_api-) Query~SELECT count(1) as cnt FROM tbl_org  WHERE status = 'Active' AND org_id ='1'~2026-02-02 18:32:47:0247~2026-02-02 18:32:47~success
[02/Feb/2026:18:32:47] (root_api-) Query~SELECT count(1) as cnt FROM tbl_user_org u WHERE u.status = 'Active' AND u.user_id ='184' AND  org_id ='1'~2026-02-02 18:32:47:0247~2026-02-02 18:32:47~success
[02/Feb/2026:18:32:47] (root_api-) serviceName user_data
[02/Feb/2026:18:32:47] (root_api-) Query~SELECT u.user_org_id, u.org_id, u.role_id, um.email,o.org_name,r.role_name,o.short_name,CONCAT(u.role_id,'_',u.org_id) as user_org_role
            FROM tbl_user_org u 
            inner join tbl_org o on u.org_id=o.org_id
            inner join tbl_role_master r on r.role_id=u.role_id
            inner join tbl_user_master um on u.user_id = um.user_id
            where u.user_id= 184~2026-02-02 18:32:47:0247~2026-02-02 18:32:47~success
[02/Feb/2026:18:32:47] (root_api-) Final JSON =  {"status":"ok","message":"User Details fetched Successfully!!","Errorcode":"","data":[{"user_org_id":"225","org_id":"1","role_id":"3","email":"alhenaude20@gmail.com","org_name":"University Of Cape Town","role_name":"Learner","short_name":"UCT","user_org_role":"3_1"},{"user_org_id":"226","org_id":"2","role_id":"2","email":"alhenaude20@gmail.com","org_name":"C-Institute","role_name":"Educator","short_name":"C-Institute","user_org_role":"2_2"}]}
[02/Feb/2026:18:32:47] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:32:47] (root_api-) op => createBlankCard ,course_id => 25 ,cardDeckId => 83 ,userId => 184 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => deck_data ,
[02/Feb/2026:18:32:47] (root_api-) OP= createBlankCard of page root_api.php
[02/Feb/2026:18:32:47] (root_api-) serviceName deck_data
[02/Feb/2026:18:32:47] (root_api-) Query~SELECT count(1) as deckCount FROM tbl_deck WHERE deck_id = '83'~2026-02-02 18:32:47:0247~2026-02-02 18:32:47~success
[02/Feb/2026:18:32:47] (root_api-) Query~select ifnull(max(card_parent_id),0)+1 as maxId from tbl_card_parent~2026-02-02 18:32:47:0247~2026-02-02 18:32:47~success
[02/Feb/2026:18:32:47] (root_api-) In case tbl_card_parent Insert query = INSERT into tbl_card_parent (card_parent_id, last_version, draft_version, published_version, creation_date, created_by) 
                    VALUES (2462,'1','1','0', NOW(), '184')
[02/Feb/2026:18:32:47] (root_api-) Query~INSERT into tbl_card_parent (card_parent_id, last_version, draft_version, published_version, creation_date, created_by) 
                    VALUES (2462,'1','1','0', NOW(), '184')~2026-02-02 18:32:47:0247~2026-02-02 18:32:47~success
[02/Feb/2026:18:32:47] (root_api-) Query~select ifnull(max(card_parent_id),0) as lastInsertedId from tbl_card_parent~2026-02-02 18:32:47:0247~2026-02-02 18:32:47~success
[02/Feb/2026:18:32:47] (root_api-) Query~select ifnull(max(card_id),0)+1 as maxId from tbl_card~2026-02-02 18:32:47:0247~2026-02-02 18:32:47~success
[02/Feb/2026:18:32:47] (root_api-) In case tbl_card Insert query = INSERT into tbl_card (card_id, card_parent_id, version, card_style, status, card_type, question_text, answer_text, creation_date, created_by) 
                     VALUES (2462, 2462,  1, '0','Draft','main','','', NOW(), '184')
[02/Feb/2026:18:32:47] (root_api-) Query~INSERT into tbl_card (card_id, card_parent_id, version, card_style, status, card_type, question_text, answer_text, creation_date, created_by) 
                     VALUES (2462, 2462,  1, '0','Draft','main','','', NOW(), '184')~2026-02-02 18:32:47:0247~2026-02-02 18:32:47~success
[02/Feb/2026:18:32:47] (root_api-) Query~select ifnull(max(card_id),0) as lastInsertedId from tbl_card~2026-02-02 18:32:47:0247~2026-02-02 18:32:47~success
[02/Feb/2026:18:32:47] (root_api-) Query~UPDATE tbl_card set card_title = 'Card#2462' WHERE card_id= 2462~2026-02-02 18:32:47:0247~2026-02-02 18:32:47~success
[02/Feb/2026:18:32:47] (root_api-) Query~SELECT IFNULL(MAX(sequence), 0) as lastSequenceNumber FROM tbl_deck_card WHERE deck_id = '83'~2026-02-02 18:32:47:0247~2026-02-02 18:32:47~success
[02/Feb/2026:18:32:47] (root_api-) Query~select ifnull(max(deck_card_id),0)+1 as maxId from tbl_deck_card~2026-02-02 18:32:47:0247~2026-02-02 18:32:47~success
[02/Feb/2026:18:32:47] (root_api-) In case tbl_deck_card Insert query = INSERT into tbl_deck_card (deck_card_id, deck_id, card_id, sequence, creation_date, created_by) 
                        VALUES (2462,'83','2462','4', NOW(), '184')
[02/Feb/2026:18:32:47] (root_api-) Query~INSERT into tbl_deck_card (deck_card_id, deck_id, card_id, sequence, creation_date, created_by) 
                        VALUES (2462,'83','2462','4', NOW(), '184')~2026-02-02 18:32:47:0247~2026-02-02 18:32:47~success
[02/Feb/2026:18:32:47] (root_api-) Final JSON =  {"status":"ok","message":"Card inserted Successfully!!","Errorcode":"","data":"2462"}
[02/Feb/2026:18:32:47] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:32:47] (root_api-) op => getSwitchRoles ,user_id => 184 ,org_id => 1 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => user_data ,
[02/Feb/2026:18:32:47] (root_api-) OP= getSwitchRoles of page root_api.php
[02/Feb/2026:18:32:47] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:32:47:0247~2026-02-02 18:32:47~success
[02/Feb/2026:18:32:47] (root_api-) Query~SELECT count(1) as cnt FROM tbl_org  WHERE status = 'Active' AND org_id ='1'~2026-02-02 18:32:47:0247~2026-02-02 18:32:47~success
[02/Feb/2026:18:32:47] (root_api-) Query~SELECT count(1) as cnt FROM tbl_user_org u WHERE u.status = 'Active' AND u.user_id ='184' AND  org_id ='1'~2026-02-02 18:32:47:0247~2026-02-02 18:32:47~success
[02/Feb/2026:18:32:47] (root_api-) serviceName user_data
[02/Feb/2026:18:32:47] (root_api-) Query~SELECT u.user_org_id, u.org_id, u.role_id, um.email,o.org_name,r.role_name,o.short_name,CONCAT(u.role_id,'_',u.org_id) as user_org_role
            FROM tbl_user_org u 
            inner join tbl_org o on u.org_id=o.org_id
            inner join tbl_role_master r on r.role_id=u.role_id
            inner join tbl_user_master um on u.user_id = um.user_id
            where u.user_id= 184~2026-02-02 18:32:47:0247~2026-02-02 18:32:47~success
[02/Feb/2026:18:32:47] (root_api-) Final JSON =  {"status":"ok","message":"User Details fetched Successfully!!","Errorcode":"","data":[{"user_org_id":"225","org_id":"1","role_id":"3","email":"alhenaude20@gmail.com","org_name":"University Of Cape Town","role_name":"Learner","short_name":"UCT","user_org_role":"3_1"},{"user_org_id":"226","org_id":"2","role_id":"2","email":"alhenaude20@gmail.com","org_name":"C-Institute","role_name":"Educator","short_name":"C-Institute","user_org_role":"2_2"}]}
[02/Feb/2026:18:32:47] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:32:47] (root_api-) op => getUsersCourseRole ,user_id => 184 ,course_id => 25 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:18:32:47] (root_api-) OP= getUsersCourseRole of page root_api.php
[02/Feb/2026:18:32:47] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:32:47:0247~2026-02-02 18:32:47~success
[02/Feb/2026:18:32:47] (root_api-) serviceName course_data
[02/Feb/2026:18:32:47] (root_api-) Query~SELECT ed_role FROM tbl_course_educator WHERE  course_id = '25' AND user_id = 184~2026-02-02 18:32:47:0247~2026-02-02 18:32:47~success
[02/Feb/2026:18:32:47] (root_api-) Final JSON =  {"status":"ok","message":"","Errorcode":"","data":{"ed_role":"author"}}
[02/Feb/2026:18:32:47] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:32:47] (root_api-) op => get-my-contents-deck-info ,user_id => 184 ,course_id => 25 ,deckId => 83 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:18:32:47] (root_api-) OP= get-my-contents-deck-info of page root_api.php
[02/Feb/2026:18:32:47] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:32:47] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:32:47] (root_api-) op => get-my-contents-card-info ,user_id => 184 ,course_id => 25 ,deckId => 83 ,cardId => 2462 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:18:32:47] (root_api-) op => getCourseDetail ,course_id => 25 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:18:32:47] (root_api-) OP= get-my-contents-card-info of page root_api.php
[02/Feb/2026:18:32:47] (root_api-) OP= getCourseDetail of page root_api.php
[02/Feb/2026:18:32:47] (root_api-) serviceName course_data
[02/Feb/2026:18:32:47] (root_api-) Query~SELECT * FROM tbl_course where course_id = '25' AND status NOT IN('Discard')~2026-02-02 18:32:47:0247~2026-02-02 18:32:47~success
[02/Feb/2026:18:32:47] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:32:47:0247~2026-02-02 18:32:47~success
[02/Feb/2026:18:32:47] (root_api-) serviceName course_data
[02/Feb/2026:18:32:47] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:32:47:0247~2026-02-02 18:32:47~success
[02/Feb/2026:18:32:47] (root_api-) serviceName course_data
[02/Feb/2026:18:32:47] (root_api-) Query~SELECT course_image_id, course_image, sequence, status FROM tbl_course_images where course_id = 25 ORDER BY sequence DESC~2026-02-02 18:32:47:0247~2026-02-02 18:32:47~success
[02/Feb/2026:18:32:47] (root_api-) Query~SELECT td.deck_id, td.created_by, tcd.course_id, 
            ifnull(tcd.deck_name,td.deck_name) deck_name,
            ifnull(tcd.short_name,td.short_name) short_name,
            ifnull(tcd.eval_id,td.eval_id) eval_id,
            ifnull(tcd.deck_desc,td.deck_desc) deck_desc,
            ifnull(tcd.deck_brief,td.deck_brief) deck_brief,
            td.status AS deckStatus,
            td.version
            FROM tbl_deck td 
            INNER JOIN tbl_course_deck tcd ON tcd.deck_id = td.deck_id AND course_id = '25' AND tcd.created_by = '184'
            Where td.deck_id = '83' AND td.deck_type = 'main' AND td.created_by = '184'~2026-02-02 18:32:47:0247~2026-02-02 18:32:47~success
[02/Feb/2026:18:32:47] (root_api-) Query~select course_id as prev_course_id from tbl_course where course_parent_id = 25 AND version = 0 AND status NOT IN('Discard')~2026-02-02 18:32:47:0247~2026-02-02 18:32:47~success
[02/Feb/2026:18:32:47] (root_api-) Query~select td.deck_parent_id, cd.course_id as parent_courseid from tbl_deck td, tbl_course_deck cd where td.deck_id = 83 AND td.deck_parent_id <> 83 AND td.deck_parent_id = cd.deck_id~2026-02-02 18:32:47:0247~2026-02-02 18:32:47~success
[02/Feb/2026:18:32:47] (root_api-) Query~SELECT tc.card_id,tc.card_style,tc.card_title,tc.card_image_url,tc.card_video_url, CASE WHEN tc.card_style = 0 THEN 'Text' ELSE 'Image' END AS card_styleText  , tc.question_text, tc.status AS cardStatus, tc.answer_text, dc.deck_id,dc.sequence as cardSequence, tc.version, tc.card_parent_id
            FROM tbl_card tc
            INNER JOIN tbl_deck_card dc ON dc.card_id = tc.card_id
            Where dc.deck_id = '83' AND tc.card_id = '2462' AND tc.card_type = 'main' /*AND tc.created_by = '184'*/~2026-02-02 18:32:47:0247~2026-02-02 18:32:47~success
[02/Feb/2026:18:32:47] (root_api-) Query~select course_id as next_course_id from tbl_course where course_parent_id = 25 AND version = 2 AND status NOT IN('Discard')~2026-02-02 18:32:47:0247~2026-02-02 18:32:47~success
[02/Feb/2026:18:32:47] (root_api-) Final JSON =  {"status":"ok","message":"Course Details fetched Successfully","Errorcode":"","data":[{"course_id":"25","course_parent_id":"25","version":"1","org_id":"2","course_name":"Grade 8 Mathematics","short_name":"","status":"Draft","eval_id":"1","course_desc":"Grade 8 Mathematics aims to build strong foundational skills required to prepare learners for higher grades of mathematics and develop strong, appropriate mathematical reasoning and logical thinking. ","amount":"0","currency":null,"pay_type":"paid","course_brief":null,"course_duration":"16","background_color":"","text_color":"","creation_date":"2025-07-16 13:21:03","created_by":"184","updation_date":"2026-01-07 12:53:22","updated_by":"184","images":[],"parentid":"","childid":""}]}
[02/Feb/2026:18:32:47] (root_api-) Query~select tc.card_parent_id, dc.deck_id as card_parent_deckid, tcd.course_id as card_parent_courseid from tbl_card tc, tbl_deck_card dc, tbl_course_deck tcd WHERE tc.card_parent_id=2462 AND tc.version = 0 AND tc.card_parent_id=dc.card_id AND dc.deck_id=tcd.deck_id~2026-02-02 18:32:47:0247~2026-02-02 18:32:47~success
[02/Feb/2026:18:32:47] (root_api-) Query~select td.deck_id as deck_child_id, cd.course_id as child_courseid from tbl_deck td, tbl_course_deck cd where td.deck_parent_id = 83 AND td.deck_id <> 83 AND td.deck_id = cd.deck_id~2026-02-02 18:32:47:0247~2026-02-02 18:32:47~success
[02/Feb/2026:18:32:47] (root_api-) Final JSON =  {"status":"ok",
                    "message":"",
                    "Errorcode":"",
                    "data":{"deck_id":"83","created_by":"184","course_id":"25","deck_name":"Data Handling ","short_name":"Data Handling","eval_id":"1","deck_desc":"Data handling helps learners interpret and understand the various pieces of information that may be collected when looking at data as well as different ways to summarise and read data. ","deck_brief":"","deckStatus":"Draft","version":"1","parentid":"","childid":""}}
[02/Feb/2026:18:32:47] (root_api-) Query~select tc.card_id as card_child_id, dc.deck_id as card_child_deckid, tcd.course_id as card_child_courseid from tbl_card tc, tbl_deck_card dc, tbl_course_deck tcd WHERE tc.card_parent_id=2462 AND tc.version = 2 AND tc.card_parent_id=dc.card_id AND dc.deck_id=tcd.deck_id~2026-02-02 18:32:47:0247~2026-02-02 18:32:47~success
[02/Feb/2026:18:32:47] (root_api-) Final JSON =  {"status":"ok",
                    "message":"",
                    "Errorcode":"",
                    "data":{"card_id":"2462","card_style":"0","card_title":"Card#2462","card_image_url":"","card_video_url":"","card_styleText":"Text","question_text":"","cardStatus":"Draft","answer_text":"","deck_id":"83","cardSequence":"4","version":"1","card_parent_id":null,"card_parent_deckid":null,"card_parent_courseid":null,"card_child_id":null,"card_child_deckid":null,"card_child_courseid":null}}
[02/Feb/2026:18:32:48] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:32:48] (root_api-) op => api-refresh ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => common_data ,
[02/Feb/2026:18:32:48] (root_api-) OP= api-refresh of page root_api.php
[02/Feb/2026:18:32:48] (root_api-) serviceName common_data
[02/Feb/2026:18:32:48] (root_api-) Final JSON =  {"status":"ok","message":"","Errorcode":"","data":""}
[02/Feb/2026:18:33:29] (root_api-) token =  IP = 169.0.141.180
[02/Feb/2026:18:33:29] (root_api-) 
[02/Feb/2026:18:33:29] (root_api-) OP=  of page root_api.php
[02/Feb/2026:18:33:29] (root_api-) Final JSON =  { "status":"error",
					"message":"Invalid Session",
					"Errorcode":"err100",
					"data":{}}
[02/Feb/2026:18:33:29] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:33:29] (root_api-) op => user-card-operation ,userId => 184 ,courseId => 25 ,cardDeckMode => edit ,cardDeckId => 83 ,questionText => <p>What does the <u>population</u> refer to when collecting data?</p><p><br></p> ,answerText => <p>The population is the <span style="background-color: rgb(181, 165, 214);">whole group</span><font color="#000000" style="background-color: rgb(181, 165, 214);"> of people or things</font> that you would like to make a conclusion about. </p><p>A sample is drawn from a population.&nbsp;</p> ,editCardId => 2462 ,action => SAVE_AND_NEXT ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => deck_data ,
[02/Feb/2026:18:33:29] (root_api-) OP= user-card-operation of page root_api.php
[02/Feb/2026:18:33:29] (root_api-) serviceName deck_data
[02/Feb/2026:18:33:29] (root_api-) Query~SELECT count(1) as deckCardCount FROM tbl_deck_card WHERE deck_id = '83' AND card_id = '2462'~2026-02-02 18:33:29:0229~2026-02-02 18:33:29~success
[02/Feb/2026:18:33:29] (root_api-) Query~SELECT question_text, answer_text FROM tbl_card  WHERE card_id = '2462'~2026-02-02 18:33:29:0229~2026-02-02 18:33:29~success
[02/Feb/2026:18:33:29] (root_api-) In case Card Updated query = UPDATE tbl_card SET card_style = '0' , question_text = '<p>What does the <u>population</u> refer to when collecting data?</p><p><br></p>', answer_text = '<p>The population is the <span style=\"background-color: rgb(181, 165, 214);\">whole group</span><font color=\"#000000\" style=\"background-color: rgb(181, 165, 214);\"> of people or things</font> that you would like to make a conclusion about. </p><p>A sample is drawn from a population.&nbsp;</p>', card_type='main', updation_date = NOW(), updated_by = '184', card_title = '', card_image_url = '', 
                    onlyTextQuestion = '', onlyTextAnswer = '' 
                    WHERE card_id = '2462'
[02/Feb/2026:18:33:29] (root_api-) Query~UPDATE tbl_card SET card_style = '0' , question_text = '<p>What does the <u>population</u> refer to when collecting data?</p><p><br></p>', answer_text = '<p>The population is the <span style=\"background-color: rgb(181, 165, 214);\">whole group</span><font color=\"#000000\" style=\"background-color: rgb(181, 165, 214);\"> of people or things</font> that you would like to make a conclusion about. </p><p>A sample is drawn from a population.&nbsp;</p>', card_type='main', updation_date = NOW(), updated_by = '184', card_title = '', card_image_url = '', 
                    onlyTextQuestion = '', onlyTextAnswer = '' 
                    WHERE card_id = '2462'~2026-02-02 18:33:29:0229~2026-02-02 18:33:29~success
[02/Feb/2026:18:33:29] (root_api-) Final JSON =  {"status":"ok","message":"Card Created Successfully!!","Errorcode":"","data":"","action":"SAVE_AND_NEXT"}
[02/Feb/2026:18:33:31] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:33:31] (root_api-) op => getSwitchRoles ,user_id => 184 ,org_id => 1 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => user_data ,
[02/Feb/2026:18:33:31] (root_api-) OP= getSwitchRoles of page root_api.php
[02/Feb/2026:18:33:31] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:33:31:0231~2026-02-02 18:33:31~success
[02/Feb/2026:18:33:31] (root_api-) Query~SELECT count(1) as cnt FROM tbl_org  WHERE status = 'Active' AND org_id ='1'~2026-02-02 18:33:31:0231~2026-02-02 18:33:31~success
[02/Feb/2026:18:33:31] (root_api-) Query~SELECT count(1) as cnt FROM tbl_user_org u WHERE u.status = 'Active' AND u.user_id ='184' AND  org_id ='1'~2026-02-02 18:33:31:0231~2026-02-02 18:33:31~success
[02/Feb/2026:18:33:31] (root_api-) serviceName user_data
[02/Feb/2026:18:33:31] (root_api-) Query~SELECT u.user_org_id, u.org_id, u.role_id, um.email,o.org_name,r.role_name,o.short_name,CONCAT(u.role_id,'_',u.org_id) as user_org_role
            FROM tbl_user_org u 
            inner join tbl_org o on u.org_id=o.org_id
            inner join tbl_role_master r on r.role_id=u.role_id
            inner join tbl_user_master um on u.user_id = um.user_id
            where u.user_id= 184~2026-02-02 18:33:31:0231~2026-02-02 18:33:31~success
[02/Feb/2026:18:33:31] (root_api-) Final JSON =  {"status":"ok","message":"User Details fetched Successfully!!","Errorcode":"","data":[{"user_org_id":"225","org_id":"1","role_id":"3","email":"alhenaude20@gmail.com","org_name":"University Of Cape Town","role_name":"Learner","short_name":"UCT","user_org_role":"3_1"},{"user_org_id":"226","org_id":"2","role_id":"2","email":"alhenaude20@gmail.com","org_name":"C-Institute","role_name":"Educator","short_name":"C-Institute","user_org_role":"2_2"}]}
[02/Feb/2026:18:33:32] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:33:32] (root_api-) op => createBlankCard ,course_id => 25 ,cardDeckId => 83 ,userId => 184 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => deck_data ,
[02/Feb/2026:18:33:32] (root_api-) OP= createBlankCard of page root_api.php
[02/Feb/2026:18:33:32] (root_api-) serviceName deck_data
[02/Feb/2026:18:33:32] (root_api-) Query~SELECT count(1) as deckCount FROM tbl_deck WHERE deck_id = '83'~2026-02-02 18:33:32:0232~2026-02-02 18:33:32~success
[02/Feb/2026:18:33:32] (root_api-) Query~select ifnull(max(card_parent_id),0)+1 as maxId from tbl_card_parent~2026-02-02 18:33:32:0232~2026-02-02 18:33:32~success
[02/Feb/2026:18:33:32] (root_api-) In case tbl_card_parent Insert query = INSERT into tbl_card_parent (card_parent_id, last_version, draft_version, published_version, creation_date, created_by) 
                    VALUES (2463,'1','1','0', NOW(), '184')
[02/Feb/2026:18:33:32] (root_api-) Query~INSERT into tbl_card_parent (card_parent_id, last_version, draft_version, published_version, creation_date, created_by) 
                    VALUES (2463,'1','1','0', NOW(), '184')~2026-02-02 18:33:32:0232~2026-02-02 18:33:32~success
[02/Feb/2026:18:33:32] (root_api-) Query~select ifnull(max(card_parent_id),0) as lastInsertedId from tbl_card_parent~2026-02-02 18:33:32:0232~2026-02-02 18:33:32~success
[02/Feb/2026:18:33:32] (root_api-) Query~select ifnull(max(card_id),0)+1 as maxId from tbl_card~2026-02-02 18:33:32:0232~2026-02-02 18:33:32~success
[02/Feb/2026:18:33:32] (root_api-) In case tbl_card Insert query = INSERT into tbl_card (card_id, card_parent_id, version, card_style, status, card_type, question_text, answer_text, creation_date, created_by) 
                     VALUES (2463, 2463,  1, '0','Draft','main','','', NOW(), '184')
[02/Feb/2026:18:33:32] (root_api-) Query~INSERT into tbl_card (card_id, card_parent_id, version, card_style, status, card_type, question_text, answer_text, creation_date, created_by) 
                     VALUES (2463, 2463,  1, '0','Draft','main','','', NOW(), '184')~2026-02-02 18:33:32:0232~2026-02-02 18:33:32~success
[02/Feb/2026:18:33:32] (root_api-) Query~select ifnull(max(card_id),0) as lastInsertedId from tbl_card~2026-02-02 18:33:32:0232~2026-02-02 18:33:32~success
[02/Feb/2026:18:33:32] (root_api-) Query~UPDATE tbl_card set card_title = 'Card#2463' WHERE card_id= 2463~2026-02-02 18:33:32:0232~2026-02-02 18:33:32~success
[02/Feb/2026:18:33:32] (root_api-) Query~SELECT IFNULL(MAX(sequence), 0) as lastSequenceNumber FROM tbl_deck_card WHERE deck_id = '83'~2026-02-02 18:33:32:0232~2026-02-02 18:33:32~success
[02/Feb/2026:18:33:32] (root_api-) Query~select ifnull(max(deck_card_id),0)+1 as maxId from tbl_deck_card~2026-02-02 18:33:32:0232~2026-02-02 18:33:32~success
[02/Feb/2026:18:33:32] (root_api-) In case tbl_deck_card Insert query = INSERT into tbl_deck_card (deck_card_id, deck_id, card_id, sequence, creation_date, created_by) 
                        VALUES (2463,'83','2463','5', NOW(), '184')
[02/Feb/2026:18:33:32] (root_api-) Query~INSERT into tbl_deck_card (deck_card_id, deck_id, card_id, sequence, creation_date, created_by) 
                        VALUES (2463,'83','2463','5', NOW(), '184')~2026-02-02 18:33:32:0232~2026-02-02 18:33:32~success
[02/Feb/2026:18:33:32] (root_api-) Final JSON =  {"status":"ok","message":"Card inserted Successfully!!","Errorcode":"","data":"2463"}
[02/Feb/2026:18:33:32] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:33:32] (root_api-) op => getSwitchRoles ,user_id => 184 ,org_id => 1 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => user_data ,
[02/Feb/2026:18:33:32] (root_api-) OP= getSwitchRoles of page root_api.php
[02/Feb/2026:18:33:32] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:33:32:0232~2026-02-02 18:33:32~success
[02/Feb/2026:18:33:32] (root_api-) Query~SELECT count(1) as cnt FROM tbl_org  WHERE status = 'Active' AND org_id ='1'~2026-02-02 18:33:32:0232~2026-02-02 18:33:32~success
[02/Feb/2026:18:33:32] (root_api-) Query~SELECT count(1) as cnt FROM tbl_user_org u WHERE u.status = 'Active' AND u.user_id ='184' AND  org_id ='1'~2026-02-02 18:33:32:0232~2026-02-02 18:33:32~success
[02/Feb/2026:18:33:32] (root_api-) serviceName user_data
[02/Feb/2026:18:33:32] (root_api-) Query~SELECT u.user_org_id, u.org_id, u.role_id, um.email,o.org_name,r.role_name,o.short_name,CONCAT(u.role_id,'_',u.org_id) as user_org_role
            FROM tbl_user_org u 
            inner join tbl_org o on u.org_id=o.org_id
            inner join tbl_role_master r on r.role_id=u.role_id
            inner join tbl_user_master um on u.user_id = um.user_id
            where u.user_id= 184~2026-02-02 18:33:32:0232~2026-02-02 18:33:32~success
[02/Feb/2026:18:33:32] (root_api-) Final JSON =  {"status":"ok","message":"User Details fetched Successfully!!","Errorcode":"","data":[{"user_org_id":"225","org_id":"1","role_id":"3","email":"alhenaude20@gmail.com","org_name":"University Of Cape Town","role_name":"Learner","short_name":"UCT","user_org_role":"3_1"},{"user_org_id":"226","org_id":"2","role_id":"2","email":"alhenaude20@gmail.com","org_name":"C-Institute","role_name":"Educator","short_name":"C-Institute","user_org_role":"2_2"}]}
[02/Feb/2026:18:33:32] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:33:32] (root_api-) op => getUsersCourseRole ,user_id => 184 ,course_id => 25 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:18:33:32] (root_api-) OP= getUsersCourseRole of page root_api.php
[02/Feb/2026:18:33:32] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:33:32:0232~2026-02-02 18:33:32~success
[02/Feb/2026:18:33:32] (root_api-) serviceName course_data
[02/Feb/2026:18:33:32] (root_api-) Query~SELECT ed_role FROM tbl_course_educator WHERE  course_id = '25' AND user_id = 184~2026-02-02 18:33:32:0232~2026-02-02 18:33:32~success
[02/Feb/2026:18:33:32] (root_api-) Final JSON =  {"status":"ok","message":"","Errorcode":"","data":{"ed_role":"author"}}
[02/Feb/2026:18:33:32] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:33:32] (root_api-) op => get-my-contents-card-info ,user_id => 184 ,course_id => 25 ,deckId => 83 ,cardId => 2463 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:18:33:32] (root_api-) OP= get-my-contents-card-info of page root_api.php
[02/Feb/2026:18:33:32] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:33:32:0232~2026-02-02 18:33:32~success
[02/Feb/2026:18:33:32] (root_api-) serviceName course_data
[02/Feb/2026:18:33:32] (root_api-) Query~SELECT tc.card_id,tc.card_style,tc.card_title,tc.card_image_url,tc.card_video_url, CASE WHEN tc.card_style = 0 THEN 'Text' ELSE 'Image' END AS card_styleText  , tc.question_text, tc.status AS cardStatus, tc.answer_text, dc.deck_id,dc.sequence as cardSequence, tc.version, tc.card_parent_id
            FROM tbl_card tc
            INNER JOIN tbl_deck_card dc ON dc.card_id = tc.card_id
            Where dc.deck_id = '83' AND tc.card_id = '2463' AND tc.card_type = 'main' /*AND tc.created_by = '184'*/~2026-02-02 18:33:32:0232~2026-02-02 18:33:32~success
[02/Feb/2026:18:33:32] (root_api-) Query~select tc.card_parent_id, dc.deck_id as card_parent_deckid, tcd.course_id as card_parent_courseid from tbl_card tc, tbl_deck_card dc, tbl_course_deck tcd WHERE tc.card_parent_id=2463 AND tc.version = 0 AND tc.card_parent_id=dc.card_id AND dc.deck_id=tcd.deck_id~2026-02-02 18:33:32:0232~2026-02-02 18:33:32~success
[02/Feb/2026:18:33:32] (root_api-) Query~select tc.card_id as card_child_id, dc.deck_id as card_child_deckid, tcd.course_id as card_child_courseid from tbl_card tc, tbl_deck_card dc, tbl_course_deck tcd WHERE tc.card_parent_id=2463 AND tc.version = 2 AND tc.card_parent_id=dc.card_id AND dc.deck_id=tcd.deck_id~2026-02-02 18:33:32:0232~2026-02-02 18:33:32~success
[02/Feb/2026:18:33:32] (root_api-) Final JSON =  {"status":"ok",
                    "message":"",
                    "Errorcode":"",
                    "data":{"card_id":"2463","card_style":"0","card_title":"Card#2463","card_image_url":"","card_video_url":"","card_styleText":"Text","question_text":"","cardStatus":"Draft","answer_text":"","deck_id":"83","cardSequence":"5","version":"1","card_parent_id":null,"card_parent_deckid":null,"card_parent_courseid":null,"card_child_id":null,"card_child_deckid":null,"card_child_courseid":null}}
[02/Feb/2026:18:33:32] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:33:32] (root_api-) op => get-my-contents-deck-info ,user_id => 184 ,course_id => 25 ,deckId => 83 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:18:33:32] (root_api-) OP= get-my-contents-deck-info of page root_api.php
[02/Feb/2026:18:33:32] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:33:32:0232~2026-02-02 18:33:32~success
[02/Feb/2026:18:33:32] (root_api-) serviceName course_data
[02/Feb/2026:18:33:32] (root_api-) Query~SELECT td.deck_id, td.created_by, tcd.course_id, 
            ifnull(tcd.deck_name,td.deck_name) deck_name,
            ifnull(tcd.short_name,td.short_name) short_name,
            ifnull(tcd.eval_id,td.eval_id) eval_id,
            ifnull(tcd.deck_desc,td.deck_desc) deck_desc,
            ifnull(tcd.deck_brief,td.deck_brief) deck_brief,
            td.status AS deckStatus,
            td.version
            FROM tbl_deck td 
            INNER JOIN tbl_course_deck tcd ON tcd.deck_id = td.deck_id AND course_id = '25' AND tcd.created_by = '184'
            Where td.deck_id = '83' AND td.deck_type = 'main' AND td.created_by = '184'~2026-02-02 18:33:32:0232~2026-02-02 18:33:32~success
[02/Feb/2026:18:33:32] (root_api-) Query~select td.deck_parent_id, cd.course_id as parent_courseid from tbl_deck td, tbl_course_deck cd where td.deck_id = 83 AND td.deck_parent_id <> 83 AND td.deck_parent_id = cd.deck_id~2026-02-02 18:33:32:0232~2026-02-02 18:33:32~success
[02/Feb/2026:18:33:32] (root_api-) Query~select td.deck_id as deck_child_id, cd.course_id as child_courseid from tbl_deck td, tbl_course_deck cd where td.deck_parent_id = 83 AND td.deck_id <> 83 AND td.deck_id = cd.deck_id~2026-02-02 18:33:32:0232~2026-02-02 18:33:32~success
[02/Feb/2026:18:33:32] (root_api-) Final JSON =  {"status":"ok",
                    "message":"",
                    "Errorcode":"",
                    "data":{"deck_id":"83","created_by":"184","course_id":"25","deck_name":"Data Handling ","short_name":"Data Handling","eval_id":"1","deck_desc":"Data handling helps learners interpret and understand the various pieces of information that may be collected when looking at data as well as different ways to summarise and read data. ","deck_brief":"","deckStatus":"Draft","version":"1","parentid":"","childid":""}}
[02/Feb/2026:18:33:33] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:33:33] (root_api-) op => getCourseDetail ,course_id => 25 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:18:33:33] (root_api-) OP= getCourseDetail of page root_api.php
[02/Feb/2026:18:33:33] (root_api-) serviceName course_data
[02/Feb/2026:18:33:33] (root_api-) Query~SELECT * FROM tbl_course where course_id = '25' AND status NOT IN('Discard')~2026-02-02 18:33:33:0233~2026-02-02 18:33:33~success
[02/Feb/2026:18:33:33] (root_api-) Query~SELECT course_image_id, course_image, sequence, status FROM tbl_course_images where course_id = 25 ORDER BY sequence DESC~2026-02-02 18:33:33:0233~2026-02-02 18:33:33~success
[02/Feb/2026:18:33:33] (root_api-) Query~select course_id as prev_course_id from tbl_course where course_parent_id = 25 AND version = 0 AND status NOT IN('Discard')~2026-02-02 18:33:33:0233~2026-02-02 18:33:33~success
[02/Feb/2026:18:33:33] (root_api-) Query~select course_id as next_course_id from tbl_course where course_parent_id = 25 AND version = 2 AND status NOT IN('Discard')~2026-02-02 18:33:33:0233~2026-02-02 18:33:33~success
[02/Feb/2026:18:33:33] (root_api-) Final JSON =  {"status":"ok","message":"Course Details fetched Successfully","Errorcode":"","data":[{"course_id":"25","course_parent_id":"25","version":"1","org_id":"2","course_name":"Grade 8 Mathematics","short_name":"","status":"Draft","eval_id":"1","course_desc":"Grade 8 Mathematics aims to build strong foundational skills required to prepare learners for higher grades of mathematics and develop strong, appropriate mathematical reasoning and logical thinking. ","amount":"0","currency":null,"pay_type":"paid","course_brief":null,"course_duration":"16","background_color":"","text_color":"","creation_date":"2025-07-16 13:21:03","created_by":"184","updation_date":"2026-01-07 12:53:22","updated_by":"184","images":[],"parentid":"","childid":""}]}
[02/Feb/2026:18:33:33] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:33:33] (root_api-) op => api-refresh ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => common_data ,
[02/Feb/2026:18:33:33] (root_api-) OP= api-refresh of page root_api.php
[02/Feb/2026:18:33:33] (root_api-) serviceName common_data
[02/Feb/2026:18:33:33] (root_api-) Final JSON =  {"status":"ok","message":"","Errorcode":"","data":""}
[02/Feb/2026:18:34:30] (root_api-) token =  IP = 169.0.141.180
[02/Feb/2026:18:34:30] (root_api-) 
[02/Feb/2026:18:34:30] (root_api-) OP=  of page root_api.php
[02/Feb/2026:18:34:30] (root_api-) Final JSON =  { "status":"error",
					"message":"Invalid Session",
					"Errorcode":"err100",
					"data":{}}
[02/Feb/2026:18:34:30] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:34:30] (root_api-) op => user-card-operation ,userId => 184 ,courseId => 25 ,cardDeckMode => edit ,cardDeckId => 83 ,questionText => <p>What is a <u>sample</u> when collecting data?</p><p><br></p> ,answerText => <p>A sample refers to a <span style="background-color: rgb(181, 165, 214);">small group of people or things that is taken from a population</span> to represent the population as a whole.&nbsp;</p><p>It is a piece or segment of the population.&nbsp;</p> ,editCardId => 2463 ,action => SAVE_AND_NEXT ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => deck_data ,
[02/Feb/2026:18:34:30] (root_api-) OP= user-card-operation of page root_api.php
[02/Feb/2026:18:34:30] (root_api-) serviceName deck_data
[02/Feb/2026:18:34:30] (root_api-) Query~SELECT count(1) as deckCardCount FROM tbl_deck_card WHERE deck_id = '83' AND card_id = '2463'~2026-02-02 18:34:30:0230~2026-02-02 18:34:30~success
[02/Feb/2026:18:34:30] (root_api-) Query~SELECT question_text, answer_text FROM tbl_card  WHERE card_id = '2463'~2026-02-02 18:34:30:0230~2026-02-02 18:34:30~success
[02/Feb/2026:18:34:30] (root_api-) In case Card Updated query = UPDATE tbl_card SET card_style = '0' , question_text = '<p>What is a <u>sample</u> when collecting data?</p><p><br></p>', answer_text = '<p>A sample refers to a <span style=\"background-color: rgb(181, 165, 214);\">small group of people or things that is taken from a population</span> to represent the population as a whole.&nbsp;</p><p>It is a piece or segment of the population.&nbsp;</p>', card_type='main', updation_date = NOW(), updated_by = '184', card_title = '', card_image_url = '', 
                    onlyTextQuestion = '', onlyTextAnswer = '' 
                    WHERE card_id = '2463'
[02/Feb/2026:18:34:30] (root_api-) Query~UPDATE tbl_card SET card_style = '0' , question_text = '<p>What is a <u>sample</u> when collecting data?</p><p><br></p>', answer_text = '<p>A sample refers to a <span style=\"background-color: rgb(181, 165, 214);\">small group of people or things that is taken from a population</span> to represent the population as a whole.&nbsp;</p><p>It is a piece or segment of the population.&nbsp;</p>', card_type='main', updation_date = NOW(), updated_by = '184', card_title = '', card_image_url = '', 
                    onlyTextQuestion = '', onlyTextAnswer = '' 
                    WHERE card_id = '2463'~2026-02-02 18:34:30:0230~2026-02-02 18:34:30~success
[02/Feb/2026:18:34:30] (root_api-) Final JSON =  {"status":"ok","message":"Card Created Successfully!!","Errorcode":"","data":"","action":"SAVE_AND_NEXT"}
[02/Feb/2026:18:34:31] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:34:31] (root_api-) op => getSwitchRoles ,user_id => 184 ,org_id => 1 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => user_data ,
[02/Feb/2026:18:34:31] (root_api-) OP= getSwitchRoles of page root_api.php
[02/Feb/2026:18:34:31] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:34:31:0231~2026-02-02 18:34:31~success
[02/Feb/2026:18:34:31] (root_api-) Query~SELECT count(1) as cnt FROM tbl_org  WHERE status = 'Active' AND org_id ='1'~2026-02-02 18:34:31:0231~2026-02-02 18:34:31~success
[02/Feb/2026:18:34:31] (root_api-) Query~SELECT count(1) as cnt FROM tbl_user_org u WHERE u.status = 'Active' AND u.user_id ='184' AND  org_id ='1'~2026-02-02 18:34:31:0231~2026-02-02 18:34:31~success
[02/Feb/2026:18:34:31] (root_api-) serviceName user_data
[02/Feb/2026:18:34:31] (root_api-) Query~SELECT u.user_org_id, u.org_id, u.role_id, um.email,o.org_name,r.role_name,o.short_name,CONCAT(u.role_id,'_',u.org_id) as user_org_role
            FROM tbl_user_org u 
            inner join tbl_org o on u.org_id=o.org_id
            inner join tbl_role_master r on r.role_id=u.role_id
            inner join tbl_user_master um on u.user_id = um.user_id
            where u.user_id= 184~2026-02-02 18:34:31:0231~2026-02-02 18:34:31~success
[02/Feb/2026:18:34:31] (root_api-) Final JSON =  {"status":"ok","message":"User Details fetched Successfully!!","Errorcode":"","data":[{"user_org_id":"225","org_id":"1","role_id":"3","email":"alhenaude20@gmail.com","org_name":"University Of Cape Town","role_name":"Learner","short_name":"UCT","user_org_role":"3_1"},{"user_org_id":"226","org_id":"2","role_id":"2","email":"alhenaude20@gmail.com","org_name":"C-Institute","role_name":"Educator","short_name":"C-Institute","user_org_role":"2_2"}]}
[02/Feb/2026:18:34:32] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:34:32] (root_api-) op => createBlankCard ,course_id => 25 ,cardDeckId => 83 ,userId => 184 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => deck_data ,
[02/Feb/2026:18:34:32] (root_api-) OP= createBlankCard of page root_api.php
[02/Feb/2026:18:34:32] (root_api-) serviceName deck_data
[02/Feb/2026:18:34:32] (root_api-) Query~SELECT count(1) as deckCount FROM tbl_deck WHERE deck_id = '83'~2026-02-02 18:34:32:0232~2026-02-02 18:34:32~success
[02/Feb/2026:18:34:32] (root_api-) Query~select ifnull(max(card_parent_id),0)+1 as maxId from tbl_card_parent~2026-02-02 18:34:32:0232~2026-02-02 18:34:32~success
[02/Feb/2026:18:34:32] (root_api-) In case tbl_card_parent Insert query = INSERT into tbl_card_parent (card_parent_id, last_version, draft_version, published_version, creation_date, created_by) 
                    VALUES (2464,'1','1','0', NOW(), '184')
[02/Feb/2026:18:34:32] (root_api-) Query~INSERT into tbl_card_parent (card_parent_id, last_version, draft_version, published_version, creation_date, created_by) 
                    VALUES (2464,'1','1','0', NOW(), '184')~2026-02-02 18:34:32:0232~2026-02-02 18:34:32~success
[02/Feb/2026:18:34:32] (root_api-) Query~select ifnull(max(card_parent_id),0) as lastInsertedId from tbl_card_parent~2026-02-02 18:34:32:0232~2026-02-02 18:34:32~success
[02/Feb/2026:18:34:32] (root_api-) Query~select ifnull(max(card_id),0)+1 as maxId from tbl_card~2026-02-02 18:34:32:0232~2026-02-02 18:34:32~success
[02/Feb/2026:18:34:32] (root_api-) In case tbl_card Insert query = INSERT into tbl_card (card_id, card_parent_id, version, card_style, status, card_type, question_text, answer_text, creation_date, created_by) 
                     VALUES (2464, 2464,  1, '0','Draft','main','','', NOW(), '184')
[02/Feb/2026:18:34:32] (root_api-) Query~INSERT into tbl_card (card_id, card_parent_id, version, card_style, status, card_type, question_text, answer_text, creation_date, created_by) 
                     VALUES (2464, 2464,  1, '0','Draft','main','','', NOW(), '184')~2026-02-02 18:34:32:0232~2026-02-02 18:34:32~success
[02/Feb/2026:18:34:32] (root_api-) Query~select ifnull(max(card_id),0) as lastInsertedId from tbl_card~2026-02-02 18:34:32:0232~2026-02-02 18:34:32~success
[02/Feb/2026:18:34:32] (root_api-) Query~UPDATE tbl_card set card_title = 'Card#2464' WHERE card_id= 2464~2026-02-02 18:34:32:0232~2026-02-02 18:34:32~success
[02/Feb/2026:18:34:32] (root_api-) Query~SELECT IFNULL(MAX(sequence), 0) as lastSequenceNumber FROM tbl_deck_card WHERE deck_id = '83'~2026-02-02 18:34:32:0232~2026-02-02 18:34:32~success
[02/Feb/2026:18:34:32] (root_api-) Query~select ifnull(max(deck_card_id),0)+1 as maxId from tbl_deck_card~2026-02-02 18:34:32:0232~2026-02-02 18:34:32~success
[02/Feb/2026:18:34:32] (root_api-) In case tbl_deck_card Insert query = INSERT into tbl_deck_card (deck_card_id, deck_id, card_id, sequence, creation_date, created_by) 
                        VALUES (2464,'83','2464','6', NOW(), '184')
[02/Feb/2026:18:34:32] (root_api-) Query~INSERT into tbl_deck_card (deck_card_id, deck_id, card_id, sequence, creation_date, created_by) 
                        VALUES (2464,'83','2464','6', NOW(), '184')~2026-02-02 18:34:32:0232~2026-02-02 18:34:32~success
[02/Feb/2026:18:34:32] (root_api-) Final JSON =  {"status":"ok","message":"Card inserted Successfully!!","Errorcode":"","data":"2464"}
[02/Feb/2026:18:34:33] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:34:33] (root_api-) op => getUsersCourseRole ,user_id => 184 ,course_id => 25 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:18:34:33] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:34:33] (root_api-) OP= getUsersCourseRole of page root_api.php
[02/Feb/2026:18:34:33] (root_api-) op => getSwitchRoles ,user_id => 184 ,org_id => 1 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => user_data ,
[02/Feb/2026:18:34:33] (root_api-) OP= getSwitchRoles of page root_api.php
[02/Feb/2026:18:34:33] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:34:33:0233~2026-02-02 18:34:33~success
[02/Feb/2026:18:34:33] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:34:33:0233~2026-02-02 18:34:33~success
[02/Feb/2026:18:34:33] (root_api-) serviceName course_data
[02/Feb/2026:18:34:33] (root_api-) Query~SELECT count(1) as cnt FROM tbl_org  WHERE status = 'Active' AND org_id ='1'~2026-02-02 18:34:33:0233~2026-02-02 18:34:33~success
[02/Feb/2026:18:34:33] (root_api-) Query~SELECT ed_role FROM tbl_course_educator WHERE  course_id = '25' AND user_id = 184~2026-02-02 18:34:33:0233~2026-02-02 18:34:33~success
[02/Feb/2026:18:34:33] (root_api-) Final JSON =  {"status":"ok","message":"","Errorcode":"","data":{"ed_role":"author"}}
[02/Feb/2026:18:34:33] (root_api-) Query~SELECT count(1) as cnt FROM tbl_user_org u WHERE u.status = 'Active' AND u.user_id ='184' AND  org_id ='1'~2026-02-02 18:34:33:0233~2026-02-02 18:34:33~success
[02/Feb/2026:18:34:33] (root_api-) serviceName user_data
[02/Feb/2026:18:34:33] (root_api-) Query~SELECT u.user_org_id, u.org_id, u.role_id, um.email,o.org_name,r.role_name,o.short_name,CONCAT(u.role_id,'_',u.org_id) as user_org_role
            FROM tbl_user_org u 
            inner join tbl_org o on u.org_id=o.org_id
            inner join tbl_role_master r on r.role_id=u.role_id
            inner join tbl_user_master um on u.user_id = um.user_id
            where u.user_id= 184~2026-02-02 18:34:33:0233~2026-02-02 18:34:33~success
[02/Feb/2026:18:34:33] (root_api-) Final JSON =  {"status":"ok","message":"User Details fetched Successfully!!","Errorcode":"","data":[{"user_org_id":"225","org_id":"1","role_id":"3","email":"alhenaude20@gmail.com","org_name":"University Of Cape Town","role_name":"Learner","short_name":"UCT","user_org_role":"3_1"},{"user_org_id":"226","org_id":"2","role_id":"2","email":"alhenaude20@gmail.com","org_name":"C-Institute","role_name":"Educator","short_name":"C-Institute","user_org_role":"2_2"}]}
[02/Feb/2026:18:34:33] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:34:33] (root_api-) op => get-my-contents-deck-info ,user_id => 184 ,course_id => 25 ,deckId => 83 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:18:34:33] (root_api-) OP= get-my-contents-deck-info of page root_api.php
[02/Feb/2026:18:34:33] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:34:33:0233~2026-02-02 18:34:33~success
[02/Feb/2026:18:34:33] (root_api-) serviceName course_data
[02/Feb/2026:18:34:33] (root_api-) Query~SELECT td.deck_id, td.created_by, tcd.course_id, 
            ifnull(tcd.deck_name,td.deck_name) deck_name,
            ifnull(tcd.short_name,td.short_name) short_name,
            ifnull(tcd.eval_id,td.eval_id) eval_id,
            ifnull(tcd.deck_desc,td.deck_desc) deck_desc,
            ifnull(tcd.deck_brief,td.deck_brief) deck_brief,
            td.status AS deckStatus,
            td.version
            FROM tbl_deck td 
            INNER JOIN tbl_course_deck tcd ON tcd.deck_id = td.deck_id AND course_id = '25' AND tcd.created_by = '184'
            Where td.deck_id = '83' AND td.deck_type = 'main' AND td.created_by = '184'~2026-02-02 18:34:33:0233~2026-02-02 18:34:33~success
[02/Feb/2026:18:34:33] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:34:33] (root_api-) op => getCourseDetail ,course_id => 25 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:18:34:33] (root_api-) OP= getCourseDetail of page root_api.php
[02/Feb/2026:18:34:33] (root_api-) serviceName course_data
[02/Feb/2026:18:34:33] (root_api-) Query~select td.deck_parent_id, cd.course_id as parent_courseid from tbl_deck td, tbl_course_deck cd where td.deck_id = 83 AND td.deck_parent_id <> 83 AND td.deck_parent_id = cd.deck_id~2026-02-02 18:34:33:0233~2026-02-02 18:34:33~success
[02/Feb/2026:18:34:33] (root_api-) Query~SELECT * FROM tbl_course where course_id = '25' AND status NOT IN('Discard')~2026-02-02 18:34:33:0233~2026-02-02 18:34:33~success
[02/Feb/2026:18:34:33] (root_api-) Query~select td.deck_id as deck_child_id, cd.course_id as child_courseid from tbl_deck td, tbl_course_deck cd where td.deck_parent_id = 83 AND td.deck_id <> 83 AND td.deck_id = cd.deck_id~2026-02-02 18:34:33:0233~2026-02-02 18:34:33~success
[02/Feb/2026:18:34:33] (root_api-) Final JSON =  {"status":"ok",
                    "message":"",
                    "Errorcode":"",
                    "data":{"deck_id":"83","created_by":"184","course_id":"25","deck_name":"Data Handling ","short_name":"Data Handling","eval_id":"1","deck_desc":"Data handling helps learners interpret and understand the various pieces of information that may be collected when looking at data as well as different ways to summarise and read data. ","deck_brief":"","deckStatus":"Draft","version":"1","parentid":"","childid":""}}
[02/Feb/2026:18:34:33] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:34:33] (root_api-) Query~SELECT course_image_id, course_image, sequence, status FROM tbl_course_images where course_id = 25 ORDER BY sequence DESC~2026-02-02 18:34:33:0233~2026-02-02 18:34:33~success
[02/Feb/2026:18:34:33] (root_api-) op => get-my-contents-card-info ,user_id => 184 ,course_id => 25 ,deckId => 83 ,cardId => 2464 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:18:34:33] (root_api-) OP= get-my-contents-card-info of page root_api.php
[02/Feb/2026:18:34:33] (root_api-) Query~select course_id as prev_course_id from tbl_course where course_parent_id = 25 AND version = 0 AND status NOT IN('Discard')~2026-02-02 18:34:33:0233~2026-02-02 18:34:33~success
[02/Feb/2026:18:34:33] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:34:33:0233~2026-02-02 18:34:33~success
[02/Feb/2026:18:34:33] (root_api-) serviceName course_data
[02/Feb/2026:18:34:33] (root_api-) Query~select course_id as next_course_id from tbl_course where course_parent_id = 25 AND version = 2 AND status NOT IN('Discard')~2026-02-02 18:34:33:0233~2026-02-02 18:34:33~success
[02/Feb/2026:18:34:33] (root_api-) Final JSON =  {"status":"ok","message":"Course Details fetched Successfully","Errorcode":"","data":[{"course_id":"25","course_parent_id":"25","version":"1","org_id":"2","course_name":"Grade 8 Mathematics","short_name":"","status":"Draft","eval_id":"1","course_desc":"Grade 8 Mathematics aims to build strong foundational skills required to prepare learners for higher grades of mathematics and develop strong, appropriate mathematical reasoning and logical thinking. ","amount":"0","currency":null,"pay_type":"paid","course_brief":null,"course_duration":"16","background_color":"","text_color":"","creation_date":"2025-07-16 13:21:03","created_by":"184","updation_date":"2026-01-07 12:53:22","updated_by":"184","images":[],"parentid":"","childid":""}]}
[02/Feb/2026:18:34:33] (root_api-) Query~SELECT tc.card_id,tc.card_style,tc.card_title,tc.card_image_url,tc.card_video_url, CASE WHEN tc.card_style = 0 THEN 'Text' ELSE 'Image' END AS card_styleText  , tc.question_text, tc.status AS cardStatus, tc.answer_text, dc.deck_id,dc.sequence as cardSequence, tc.version, tc.card_parent_id
            FROM tbl_card tc
            INNER JOIN tbl_deck_card dc ON dc.card_id = tc.card_id
            Where dc.deck_id = '83' AND tc.card_id = '2464' AND tc.card_type = 'main' /*AND tc.created_by = '184'*/~2026-02-02 18:34:33:0233~2026-02-02 18:34:33~success
[02/Feb/2026:18:34:33] (root_api-) Query~select tc.card_parent_id, dc.deck_id as card_parent_deckid, tcd.course_id as card_parent_courseid from tbl_card tc, tbl_deck_card dc, tbl_course_deck tcd WHERE tc.card_parent_id=2464 AND tc.version = 0 AND tc.card_parent_id=dc.card_id AND dc.deck_id=tcd.deck_id~2026-02-02 18:34:33:0233~2026-02-02 18:34:33~success
[02/Feb/2026:18:34:33] (root_api-) Query~select tc.card_id as card_child_id, dc.deck_id as card_child_deckid, tcd.course_id as card_child_courseid from tbl_card tc, tbl_deck_card dc, tbl_course_deck tcd WHERE tc.card_parent_id=2464 AND tc.version = 2 AND tc.card_parent_id=dc.card_id AND dc.deck_id=tcd.deck_id~2026-02-02 18:34:33:0233~2026-02-02 18:34:33~success
[02/Feb/2026:18:34:33] (root_api-) Final JSON =  {"status":"ok",
                    "message":"",
                    "Errorcode":"",
                    "data":{"card_id":"2464","card_style":"0","card_title":"Card#2464","card_image_url":"","card_video_url":"","card_styleText":"Text","question_text":"","cardStatus":"Draft","answer_text":"","deck_id":"83","cardSequence":"6","version":"1","card_parent_id":null,"card_parent_deckid":null,"card_parent_courseid":null,"card_child_id":null,"card_child_deckid":null,"card_child_courseid":null}}
[02/Feb/2026:18:34:34] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:34:34] (root_api-) op => api-refresh ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => common_data ,
[02/Feb/2026:18:34:34] (root_api-) OP= api-refresh of page root_api.php
[02/Feb/2026:18:34:34] (root_api-) serviceName common_data
[02/Feb/2026:18:34:34] (root_api-) Final JSON =  {"status":"ok","message":"","Errorcode":"","data":""}
[02/Feb/2026:18:35:24] (root_api-) token =  IP = 169.0.141.180
[02/Feb/2026:18:35:24] (root_api-) 
[02/Feb/2026:18:35:24] (root_api-) OP=  of page root_api.php
[02/Feb/2026:18:35:24] (root_api-) Final JSON =  { "status":"error",
					"message":"Invalid Session",
					"Errorcode":"err100",
					"data":{}}
[02/Feb/2026:18:35:24] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:35:24] (root_api-) op => user-card-operation ,userId => 184 ,courseId => 25 ,cardDeckMode => edit ,cardDeckId => 83 ,questionText => <p>Would the following be considered an example of a sample:</p><p>There are over 1 000 learners at Shantu High School. Loral wants to find out how the kids get to school everyday. </p><p>She is unable to ask every pupil at the school so she decides to ask 10 children in each class to gather a rough estimate of the modes of transport most used.</p> ,answerText => <p>Yes, the example given would be a sample.</p><p><br></p> ,editCardId => 2464 ,action => SAVE_AND_NEXT ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => deck_data ,
[02/Feb/2026:18:35:24] (root_api-) OP= user-card-operation of page root_api.php
[02/Feb/2026:18:35:24] (root_api-) serviceName deck_data
[02/Feb/2026:18:35:24] (root_api-) Query~SELECT count(1) as deckCardCount FROM tbl_deck_card WHERE deck_id = '83' AND card_id = '2464'~2026-02-02 18:35:24:0224~2026-02-02 18:35:24~success
[02/Feb/2026:18:35:24] (root_api-) Query~SELECT question_text, answer_text FROM tbl_card  WHERE card_id = '2464'~2026-02-02 18:35:24:0224~2026-02-02 18:35:24~success
[02/Feb/2026:18:35:24] (root_api-) In case Card Updated query = UPDATE tbl_card SET card_style = '0' , question_text = '<p>Would the following be considered an example of a sample:</p><p>There are over 1 000 learners at Shantu High School. Loral wants to find out how the kids get to school everyday. </p><p>She is unable to ask every pupil at the school so she decides to ask 10 children in each class to gather a rough estimate of the modes of transport most used.</p>', answer_text = '<p>Yes, the example given would be a sample.</p><p><br></p>', card_type='main', updation_date = NOW(), updated_by = '184', card_title = '', card_image_url = '', 
                    onlyTextQuestion = '', onlyTextAnswer = '' 
                    WHERE card_id = '2464'
[02/Feb/2026:18:35:24] (root_api-) Query~UPDATE tbl_card SET card_style = '0' , question_text = '<p>Would the following be considered an example of a sample:</p><p>There are over 1 000 learners at Shantu High School. Loral wants to find out how the kids get to school everyday. </p><p>She is unable to ask every pupil at the school so she decides to ask 10 children in each class to gather a rough estimate of the modes of transport most used.</p>', answer_text = '<p>Yes, the example given would be a sample.</p><p><br></p>', card_type='main', updation_date = NOW(), updated_by = '184', card_title = '', card_image_url = '', 
                    onlyTextQuestion = '', onlyTextAnswer = '' 
                    WHERE card_id = '2464'~2026-02-02 18:35:24:0224~2026-02-02 18:35:24~success
[02/Feb/2026:18:35:24] (root_api-) Final JSON =  {"status":"ok","message":"Card Created Successfully!!","Errorcode":"","data":"","action":"SAVE_AND_NEXT"}
[02/Feb/2026:18:35:26] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:35:26] (root_api-) op => getSwitchRoles ,user_id => 184 ,org_id => 1 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => user_data ,
[02/Feb/2026:18:35:26] (root_api-) OP= getSwitchRoles of page root_api.php
[02/Feb/2026:18:35:26] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:35:26:0226~2026-02-02 18:35:26~success
[02/Feb/2026:18:35:26] (root_api-) Query~SELECT count(1) as cnt FROM tbl_org  WHERE status = 'Active' AND org_id ='1'~2026-02-02 18:35:26:0226~2026-02-02 18:35:26~success
[02/Feb/2026:18:35:26] (root_api-) Query~SELECT count(1) as cnt FROM tbl_user_org u WHERE u.status = 'Active' AND u.user_id ='184' AND  org_id ='1'~2026-02-02 18:35:26:0226~2026-02-02 18:35:26~success
[02/Feb/2026:18:35:26] (root_api-) serviceName user_data
[02/Feb/2026:18:35:26] (root_api-) Query~SELECT u.user_org_id, u.org_id, u.role_id, um.email,o.org_name,r.role_name,o.short_name,CONCAT(u.role_id,'_',u.org_id) as user_org_role
            FROM tbl_user_org u 
            inner join tbl_org o on u.org_id=o.org_id
            inner join tbl_role_master r on r.role_id=u.role_id
            inner join tbl_user_master um on u.user_id = um.user_id
            where u.user_id= 184~2026-02-02 18:35:26:0226~2026-02-02 18:35:26~success
[02/Feb/2026:18:35:26] (root_api-) Final JSON =  {"status":"ok","message":"User Details fetched Successfully!!","Errorcode":"","data":[{"user_org_id":"225","org_id":"1","role_id":"3","email":"alhenaude20@gmail.com","org_name":"University Of Cape Town","role_name":"Learner","short_name":"UCT","user_org_role":"3_1"},{"user_org_id":"226","org_id":"2","role_id":"2","email":"alhenaude20@gmail.com","org_name":"C-Institute","role_name":"Educator","short_name":"C-Institute","user_org_role":"2_2"}]}
[02/Feb/2026:18:35:26] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:35:26] (root_api-) op => createBlankCard ,course_id => 25 ,cardDeckId => 83 ,userId => 184 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => deck_data ,
[02/Feb/2026:18:35:26] (root_api-) OP= createBlankCard of page root_api.php
[02/Feb/2026:18:35:26] (root_api-) serviceName deck_data
[02/Feb/2026:18:35:26] (root_api-) Query~SELECT count(1) as deckCount FROM tbl_deck WHERE deck_id = '83'~2026-02-02 18:35:26:0226~2026-02-02 18:35:26~success
[02/Feb/2026:18:35:26] (root_api-) Query~select ifnull(max(card_parent_id),0)+1 as maxId from tbl_card_parent~2026-02-02 18:35:26:0226~2026-02-02 18:35:26~success
[02/Feb/2026:18:35:26] (root_api-) In case tbl_card_parent Insert query = INSERT into tbl_card_parent (card_parent_id, last_version, draft_version, published_version, creation_date, created_by) 
                    VALUES (2465,'1','1','0', NOW(), '184')
[02/Feb/2026:18:35:26] (root_api-) Query~INSERT into tbl_card_parent (card_parent_id, last_version, draft_version, published_version, creation_date, created_by) 
                    VALUES (2465,'1','1','0', NOW(), '184')~2026-02-02 18:35:26:0226~2026-02-02 18:35:26~success
[02/Feb/2026:18:35:26] (root_api-) Query~select ifnull(max(card_parent_id),0) as lastInsertedId from tbl_card_parent~2026-02-02 18:35:26:0226~2026-02-02 18:35:26~success
[02/Feb/2026:18:35:26] (root_api-) Query~select ifnull(max(card_id),0)+1 as maxId from tbl_card~2026-02-02 18:35:26:0226~2026-02-02 18:35:26~success
[02/Feb/2026:18:35:26] (root_api-) In case tbl_card Insert query = INSERT into tbl_card (card_id, card_parent_id, version, card_style, status, card_type, question_text, answer_text, creation_date, created_by) 
                     VALUES (2465, 2465,  1, '0','Draft','main','','', NOW(), '184')
[02/Feb/2026:18:35:26] (root_api-) Query~INSERT into tbl_card (card_id, card_parent_id, version, card_style, status, card_type, question_text, answer_text, creation_date, created_by) 
                     VALUES (2465, 2465,  1, '0','Draft','main','','', NOW(), '184')~2026-02-02 18:35:26:0226~2026-02-02 18:35:26~success
[02/Feb/2026:18:35:26] (root_api-) Query~select ifnull(max(card_id),0) as lastInsertedId from tbl_card~2026-02-02 18:35:26:0226~2026-02-02 18:35:26~success
[02/Feb/2026:18:35:26] (root_api-) Query~UPDATE tbl_card set card_title = 'Card#2465' WHERE card_id= 2465~2026-02-02 18:35:26:0226~2026-02-02 18:35:26~success
[02/Feb/2026:18:35:26] (root_api-) Query~SELECT IFNULL(MAX(sequence), 0) as lastSequenceNumber FROM tbl_deck_card WHERE deck_id = '83'~2026-02-02 18:35:26:0226~2026-02-02 18:35:26~success
[02/Feb/2026:18:35:26] (root_api-) Query~select ifnull(max(deck_card_id),0)+1 as maxId from tbl_deck_card~2026-02-02 18:35:26:0226~2026-02-02 18:35:26~success
[02/Feb/2026:18:35:26] (root_api-) In case tbl_deck_card Insert query = INSERT into tbl_deck_card (deck_card_id, deck_id, card_id, sequence, creation_date, created_by) 
                        VALUES (2465,'83','2465','7', NOW(), '184')
[02/Feb/2026:18:35:26] (root_api-) Query~INSERT into tbl_deck_card (deck_card_id, deck_id, card_id, sequence, creation_date, created_by) 
                        VALUES (2465,'83','2465','7', NOW(), '184')~2026-02-02 18:35:26:0226~2026-02-02 18:35:26~success
[02/Feb/2026:18:35:26] (root_api-) Final JSON =  {"status":"ok","message":"Card inserted Successfully!!","Errorcode":"","data":"2465"}
[02/Feb/2026:18:35:26] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:35:26] (root_api-) op => getSwitchRoles ,user_id => 184 ,org_id => 1 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => user_data ,
[02/Feb/2026:18:35:26] (root_api-) OP= getSwitchRoles of page root_api.php
[02/Feb/2026:18:35:26] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:35:26:0226~2026-02-02 18:35:26~success
[02/Feb/2026:18:35:26] (root_api-) Query~SELECT count(1) as cnt FROM tbl_org  WHERE status = 'Active' AND org_id ='1'~2026-02-02 18:35:26:0226~2026-02-02 18:35:26~success
[02/Feb/2026:18:35:26] (root_api-) Query~SELECT count(1) as cnt FROM tbl_user_org u WHERE u.status = 'Active' AND u.user_id ='184' AND  org_id ='1'~2026-02-02 18:35:26:0226~2026-02-02 18:35:26~success
[02/Feb/2026:18:35:26] (root_api-) serviceName user_data
[02/Feb/2026:18:35:26] (root_api-) Query~SELECT u.user_org_id, u.org_id, u.role_id, um.email,o.org_name,r.role_name,o.short_name,CONCAT(u.role_id,'_',u.org_id) as user_org_role
            FROM tbl_user_org u 
            inner join tbl_org o on u.org_id=o.org_id
            inner join tbl_role_master r on r.role_id=u.role_id
            inner join tbl_user_master um on u.user_id = um.user_id
            where u.user_id= 184~2026-02-02 18:35:26:0226~2026-02-02 18:35:26~success
[02/Feb/2026:18:35:26] (root_api-) Final JSON =  {"status":"ok","message":"User Details fetched Successfully!!","Errorcode":"","data":[{"user_org_id":"225","org_id":"1","role_id":"3","email":"alhenaude20@gmail.com","org_name":"University Of Cape Town","role_name":"Learner","short_name":"UCT","user_org_role":"3_1"},{"user_org_id":"226","org_id":"2","role_id":"2","email":"alhenaude20@gmail.com","org_name":"C-Institute","role_name":"Educator","short_name":"C-Institute","user_org_role":"2_2"}]}
[02/Feb/2026:18:35:26] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:35:26] (root_api-) op => getUsersCourseRole ,user_id => 184 ,course_id => 25 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:18:35:26] (root_api-) OP= getUsersCourseRole of page root_api.php
[02/Feb/2026:18:35:26] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:35:26:0226~2026-02-02 18:35:26~success
[02/Feb/2026:18:35:26] (root_api-) serviceName course_data
[02/Feb/2026:18:35:26] (root_api-) Query~SELECT ed_role FROM tbl_course_educator WHERE  course_id = '25' AND user_id = 184~2026-02-02 18:35:26:0226~2026-02-02 18:35:26~success
[02/Feb/2026:18:35:26] (root_api-) Final JSON =  {"status":"ok","message":"","Errorcode":"","data":{"ed_role":"author"}}
[02/Feb/2026:18:35:26] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:35:26] (root_api-) op => getCourseDetail ,course_id => 25 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:18:35:26] (root_api-) OP= getCourseDetail of page root_api.php
[02/Feb/2026:18:35:26] (root_api-) serviceName course_data
[02/Feb/2026:18:35:26] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:35:26] (root_api-) op => get-my-contents-deck-info ,user_id => 184 ,course_id => 25 ,deckId => 83 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:18:35:26] (root_api-) OP= get-my-contents-deck-info of page root_api.php
[02/Feb/2026:18:35:26] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:35:26:0226~2026-02-02 18:35:26~success
[02/Feb/2026:18:35:26] (root_api-) Query~SELECT * FROM tbl_course where course_id = '25' AND status NOT IN('Discard')~2026-02-02 18:35:26:0226~2026-02-02 18:35:26~success
[02/Feb/2026:18:35:26] (root_api-) serviceName course_data
[02/Feb/2026:18:35:26] (root_api-) Query~SELECT course_image_id, course_image, sequence, status FROM tbl_course_images where course_id = 25 ORDER BY sequence DESC~2026-02-02 18:35:26:0226~2026-02-02 18:35:26~success
[02/Feb/2026:18:35:26] (root_api-) Query~SELECT td.deck_id, td.created_by, tcd.course_id, 
            ifnull(tcd.deck_name,td.deck_name) deck_name,
            ifnull(tcd.short_name,td.short_name) short_name,
            ifnull(tcd.eval_id,td.eval_id) eval_id,
            ifnull(tcd.deck_desc,td.deck_desc) deck_desc,
            ifnull(tcd.deck_brief,td.deck_brief) deck_brief,
            td.status AS deckStatus,
            td.version
            FROM tbl_deck td 
            INNER JOIN tbl_course_deck tcd ON tcd.deck_id = td.deck_id AND course_id = '25' AND tcd.created_by = '184'
            Where td.deck_id = '83' AND td.deck_type = 'main' AND td.created_by = '184'~2026-02-02 18:35:26:0226~2026-02-02 18:35:26~success
[02/Feb/2026:18:35:26] (root_api-) Query~select course_id as prev_course_id from tbl_course where course_parent_id = 25 AND version = 0 AND status NOT IN('Discard')~2026-02-02 18:35:26:0226~2026-02-02 18:35:26~success
[02/Feb/2026:18:35:26] (root_api-) Query~select td.deck_parent_id, cd.course_id as parent_courseid from tbl_deck td, tbl_course_deck cd where td.deck_id = 83 AND td.deck_parent_id <> 83 AND td.deck_parent_id = cd.deck_id~2026-02-02 18:35:26:0226~2026-02-02 18:35:26~success
[02/Feb/2026:18:35:26] (root_api-) Query~select course_id as next_course_id from tbl_course where course_parent_id = 25 AND version = 2 AND status NOT IN('Discard')~2026-02-02 18:35:26:0226~2026-02-02 18:35:26~success
[02/Feb/2026:18:35:26] (root_api-) Final JSON =  {"status":"ok","message":"Course Details fetched Successfully","Errorcode":"","data":[{"course_id":"25","course_parent_id":"25","version":"1","org_id":"2","course_name":"Grade 8 Mathematics","short_name":"","status":"Draft","eval_id":"1","course_desc":"Grade 8 Mathematics aims to build strong foundational skills required to prepare learners for higher grades of mathematics and develop strong, appropriate mathematical reasoning and logical thinking. ","amount":"0","currency":null,"pay_type":"paid","course_brief":null,"course_duration":"16","background_color":"","text_color":"","creation_date":"2025-07-16 13:21:03","created_by":"184","updation_date":"2026-01-07 12:53:22","updated_by":"184","images":[],"parentid":"","childid":""}]}
[02/Feb/2026:18:35:26] (root_api-) Query~select td.deck_id as deck_child_id, cd.course_id as child_courseid from tbl_deck td, tbl_course_deck cd where td.deck_parent_id = 83 AND td.deck_id <> 83 AND td.deck_id = cd.deck_id~2026-02-02 18:35:26:0226~2026-02-02 18:35:26~success
[02/Feb/2026:18:35:26] (root_api-) Final JSON =  {"status":"ok",
                    "message":"",
                    "Errorcode":"",
                    "data":{"deck_id":"83","created_by":"184","course_id":"25","deck_name":"Data Handling ","short_name":"Data Handling","eval_id":"1","deck_desc":"Data handling helps learners interpret and understand the various pieces of information that may be collected when looking at data as well as different ways to summarise and read data. ","deck_brief":"","deckStatus":"Draft","version":"1","parentid":"","childid":""}}
[02/Feb/2026:18:35:26] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:35:26] (root_api-) op => get-my-contents-card-info ,user_id => 184 ,course_id => 25 ,deckId => 83 ,cardId => 2465 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:18:35:26] (root_api-) OP= get-my-contents-card-info of page root_api.php
[02/Feb/2026:18:35:26] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:35:26:0226~2026-02-02 18:35:26~success
[02/Feb/2026:18:35:26] (root_api-) serviceName course_data
[02/Feb/2026:18:35:26] (root_api-) Query~SELECT tc.card_id,tc.card_style,tc.card_title,tc.card_image_url,tc.card_video_url, CASE WHEN tc.card_style = 0 THEN 'Text' ELSE 'Image' END AS card_styleText  , tc.question_text, tc.status AS cardStatus, tc.answer_text, dc.deck_id,dc.sequence as cardSequence, tc.version, tc.card_parent_id
            FROM tbl_card tc
            INNER JOIN tbl_deck_card dc ON dc.card_id = tc.card_id
            Where dc.deck_id = '83' AND tc.card_id = '2465' AND tc.card_type = 'main' /*AND tc.created_by = '184'*/~2026-02-02 18:35:26:0226~2026-02-02 18:35:26~success
[02/Feb/2026:18:35:26] (root_api-) Query~select tc.card_parent_id, dc.deck_id as card_parent_deckid, tcd.course_id as card_parent_courseid from tbl_card tc, tbl_deck_card dc, tbl_course_deck tcd WHERE tc.card_parent_id=2465 AND tc.version = 0 AND tc.card_parent_id=dc.card_id AND dc.deck_id=tcd.deck_id~2026-02-02 18:35:26:0226~2026-02-02 18:35:26~success
[02/Feb/2026:18:35:26] (root_api-) Query~select tc.card_id as card_child_id, dc.deck_id as card_child_deckid, tcd.course_id as card_child_courseid from tbl_card tc, tbl_deck_card dc, tbl_course_deck tcd WHERE tc.card_parent_id=2465 AND tc.version = 2 AND tc.card_parent_id=dc.card_id AND dc.deck_id=tcd.deck_id~2026-02-02 18:35:26:0226~2026-02-02 18:35:26~success
[02/Feb/2026:18:35:26] (root_api-) Final JSON =  {"status":"ok",
                    "message":"",
                    "Errorcode":"",
                    "data":{"card_id":"2465","card_style":"0","card_title":"Card#2465","card_image_url":"","card_video_url":"","card_styleText":"Text","question_text":"","cardStatus":"Draft","answer_text":"","deck_id":"83","cardSequence":"7","version":"1","card_parent_id":null,"card_parent_deckid":null,"card_parent_courseid":null,"card_child_id":null,"card_child_deckid":null,"card_child_courseid":null}}
[02/Feb/2026:18:35:27] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:35:27] (root_api-) op => api-refresh ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => common_data ,
[02/Feb/2026:18:35:27] (root_api-) OP= api-refresh of page root_api.php
[02/Feb/2026:18:35:27] (root_api-) serviceName common_data
[02/Feb/2026:18:35:27] (root_api-) Final JSON =  {"status":"ok","message":"","Errorcode":"","data":""}
[02/Feb/2026:18:36:06] (root_api-) token =  IP = 169.0.141.180
[02/Feb/2026:18:36:06] (root_api-) 
[02/Feb/2026:18:36:06] (root_api-) OP=  of page root_api.php
[02/Feb/2026:18:36:06] (root_api-) Final JSON =  { "status":"error",
					"message":"Invalid Session",
					"Errorcode":"err100",
					"data":{}}
[02/Feb/2026:18:36:06] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:36:06] (root_api-) op => user-card-operation ,userId => 184 ,courseId => 25 ,cardDeckMode => edit ,cardDeckId => 83 ,questionText => <p>True or false: </p><p>A sample must be representative, meaning accurate characteristics of the population must be shown in the sample. &nbsp;</p> ,answerText => <p>True.</p><p>Why?</p><p>To avoid bias within the sample othwrwise it's not a true reflection of the population.&nbsp;</p> ,editCardId => 2465 ,action => SAVE_AND_NEXT ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => deck_data ,
[02/Feb/2026:18:36:06] (root_api-) OP= user-card-operation of page root_api.php
[02/Feb/2026:18:36:06] (root_api-) serviceName deck_data
[02/Feb/2026:18:36:06] (root_api-) Query~SELECT count(1) as deckCardCount FROM tbl_deck_card WHERE deck_id = '83' AND card_id = '2465'~2026-02-02 18:36:06:0206~2026-02-02 18:36:06~success
[02/Feb/2026:18:36:06] (root_api-) Query~SELECT question_text, answer_text FROM tbl_card  WHERE card_id = '2465'~2026-02-02 18:36:06:0206~2026-02-02 18:36:06~success
[02/Feb/2026:18:36:06] (root_api-) In case Card Updated query = UPDATE tbl_card SET card_style = '0' , question_text = '<p>True or false: </p><p>A sample must be representative, meaning accurate characteristics of the population must be shown in the sample. &nbsp;</p>', answer_text = '<p>True.</p><p>Why?</p><p>To avoid bias within the sample othwrwise it\'s not a true reflection of the population.&nbsp;</p>', card_type='main', updation_date = NOW(), updated_by = '184', card_title = '', card_image_url = '', 
                    onlyTextQuestion = '', onlyTextAnswer = '' 
                    WHERE card_id = '2465'
[02/Feb/2026:18:36:06] (root_api-) Query~UPDATE tbl_card SET card_style = '0' , question_text = '<p>True or false: </p><p>A sample must be representative, meaning accurate characteristics of the population must be shown in the sample. &nbsp;</p>', answer_text = '<p>True.</p><p>Why?</p><p>To avoid bias within the sample othwrwise it\'s not a true reflection of the population.&nbsp;</p>', card_type='main', updation_date = NOW(), updated_by = '184', card_title = '', card_image_url = '', 
                    onlyTextQuestion = '', onlyTextAnswer = '' 
                    WHERE card_id = '2465'~2026-02-02 18:36:06:0206~2026-02-02 18:36:06~success
[02/Feb/2026:18:36:06] (root_api-) Final JSON =  {"status":"ok","message":"Card Created Successfully!!","Errorcode":"","data":"","action":"SAVE_AND_NEXT"}
[02/Feb/2026:18:36:07] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:36:07] (root_api-) op => getSwitchRoles ,user_id => 184 ,org_id => 1 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => user_data ,
[02/Feb/2026:18:36:07] (root_api-) OP= getSwitchRoles of page root_api.php
[02/Feb/2026:18:36:07] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:36:07:0207~2026-02-02 18:36:07~success
[02/Feb/2026:18:36:07] (root_api-) Query~SELECT count(1) as cnt FROM tbl_org  WHERE status = 'Active' AND org_id ='1'~2026-02-02 18:36:07:0207~2026-02-02 18:36:07~success
[02/Feb/2026:18:36:07] (root_api-) Query~SELECT count(1) as cnt FROM tbl_user_org u WHERE u.status = 'Active' AND u.user_id ='184' AND  org_id ='1'~2026-02-02 18:36:07:0207~2026-02-02 18:36:07~success
[02/Feb/2026:18:36:07] (root_api-) serviceName user_data
[02/Feb/2026:18:36:07] (root_api-) Query~SELECT u.user_org_id, u.org_id, u.role_id, um.email,o.org_name,r.role_name,o.short_name,CONCAT(u.role_id,'_',u.org_id) as user_org_role
            FROM tbl_user_org u 
            inner join tbl_org o on u.org_id=o.org_id
            inner join tbl_role_master r on r.role_id=u.role_id
            inner join tbl_user_master um on u.user_id = um.user_id
            where u.user_id= 184~2026-02-02 18:36:07:0207~2026-02-02 18:36:07~success
[02/Feb/2026:18:36:07] (root_api-) Final JSON =  {"status":"ok","message":"User Details fetched Successfully!!","Errorcode":"","data":[{"user_org_id":"225","org_id":"1","role_id":"3","email":"alhenaude20@gmail.com","org_name":"University Of Cape Town","role_name":"Learner","short_name":"UCT","user_org_role":"3_1"},{"user_org_id":"226","org_id":"2","role_id":"2","email":"alhenaude20@gmail.com","org_name":"C-Institute","role_name":"Educator","short_name":"C-Institute","user_org_role":"2_2"}]}
[02/Feb/2026:18:36:07] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:36:07] (root_api-) op => createBlankCard ,course_id => 25 ,cardDeckId => 83 ,userId => 184 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => deck_data ,
[02/Feb/2026:18:36:07] (root_api-) OP= createBlankCard of page root_api.php
[02/Feb/2026:18:36:07] (root_api-) serviceName deck_data
[02/Feb/2026:18:36:07] (root_api-) Query~SELECT count(1) as deckCount FROM tbl_deck WHERE deck_id = '83'~2026-02-02 18:36:07:0207~2026-02-02 18:36:07~success
[02/Feb/2026:18:36:07] (root_api-) Query~select ifnull(max(card_parent_id),0)+1 as maxId from tbl_card_parent~2026-02-02 18:36:07:0207~2026-02-02 18:36:07~success
[02/Feb/2026:18:36:07] (root_api-) In case tbl_card_parent Insert query = INSERT into tbl_card_parent (card_parent_id, last_version, draft_version, published_version, creation_date, created_by) 
                    VALUES (2466,'1','1','0', NOW(), '184')
[02/Feb/2026:18:36:07] (root_api-) Query~INSERT into tbl_card_parent (card_parent_id, last_version, draft_version, published_version, creation_date, created_by) 
                    VALUES (2466,'1','1','0', NOW(), '184')~2026-02-02 18:36:07:0207~2026-02-02 18:36:07~success
[02/Feb/2026:18:36:07] (root_api-) Query~select ifnull(max(card_parent_id),0) as lastInsertedId from tbl_card_parent~2026-02-02 18:36:07:0207~2026-02-02 18:36:07~success
[02/Feb/2026:18:36:07] (root_api-) Query~select ifnull(max(card_id),0)+1 as maxId from tbl_card~2026-02-02 18:36:07:0207~2026-02-02 18:36:07~success
[02/Feb/2026:18:36:07] (root_api-) In case tbl_card Insert query = INSERT into tbl_card (card_id, card_parent_id, version, card_style, status, card_type, question_text, answer_text, creation_date, created_by) 
                     VALUES (2466, 2466,  1, '0','Draft','main','','', NOW(), '184')
[02/Feb/2026:18:36:07] (root_api-) Query~INSERT into tbl_card (card_id, card_parent_id, version, card_style, status, card_type, question_text, answer_text, creation_date, created_by) 
                     VALUES (2466, 2466,  1, '0','Draft','main','','', NOW(), '184')~2026-02-02 18:36:07:0207~2026-02-02 18:36:07~success
[02/Feb/2026:18:36:07] (root_api-) Query~select ifnull(max(card_id),0) as lastInsertedId from tbl_card~2026-02-02 18:36:07:0207~2026-02-02 18:36:07~success
[02/Feb/2026:18:36:07] (root_api-) Query~UPDATE tbl_card set card_title = 'Card#2466' WHERE card_id= 2466~2026-02-02 18:36:07:0207~2026-02-02 18:36:07~success
[02/Feb/2026:18:36:07] (root_api-) Query~SELECT IFNULL(MAX(sequence), 0) as lastSequenceNumber FROM tbl_deck_card WHERE deck_id = '83'~2026-02-02 18:36:07:0207~2026-02-02 18:36:07~success
[02/Feb/2026:18:36:07] (root_api-) Query~select ifnull(max(deck_card_id),0)+1 as maxId from tbl_deck_card~2026-02-02 18:36:07:0207~2026-02-02 18:36:07~success
[02/Feb/2026:18:36:07] (root_api-) In case tbl_deck_card Insert query = INSERT into tbl_deck_card (deck_card_id, deck_id, card_id, sequence, creation_date, created_by) 
                        VALUES (2466,'83','2466','8', NOW(), '184')
[02/Feb/2026:18:36:07] (root_api-) Query~INSERT into tbl_deck_card (deck_card_id, deck_id, card_id, sequence, creation_date, created_by) 
                        VALUES (2466,'83','2466','8', NOW(), '184')~2026-02-02 18:36:07:0207~2026-02-02 18:36:07~success
[02/Feb/2026:18:36:07] (root_api-) Final JSON =  {"status":"ok","message":"Card inserted Successfully!!","Errorcode":"","data":"2466"}
[02/Feb/2026:18:36:07] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:36:07] (root_api-) op => getSwitchRoles ,user_id => 184 ,org_id => 1 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => user_data ,
[02/Feb/2026:18:36:07] (root_api-) OP= getSwitchRoles of page root_api.php
[02/Feb/2026:18:36:07] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:36:07:0207~2026-02-02 18:36:07~success
[02/Feb/2026:18:36:07] (root_api-) Query~SELECT count(1) as cnt FROM tbl_org  WHERE status = 'Active' AND org_id ='1'~2026-02-02 18:36:07:0207~2026-02-02 18:36:07~success
[02/Feb/2026:18:36:07] (root_api-) Query~SELECT count(1) as cnt FROM tbl_user_org u WHERE u.status = 'Active' AND u.user_id ='184' AND  org_id ='1'~2026-02-02 18:36:07:0207~2026-02-02 18:36:07~success
[02/Feb/2026:18:36:07] (root_api-) serviceName user_data
[02/Feb/2026:18:36:07] (root_api-) Query~SELECT u.user_org_id, u.org_id, u.role_id, um.email,o.org_name,r.role_name,o.short_name,CONCAT(u.role_id,'_',u.org_id) as user_org_role
            FROM tbl_user_org u 
            inner join tbl_org o on u.org_id=o.org_id
            inner join tbl_role_master r on r.role_id=u.role_id
            inner join tbl_user_master um on u.user_id = um.user_id
            where u.user_id= 184~2026-02-02 18:36:07:0207~2026-02-02 18:36:07~success
[02/Feb/2026:18:36:07] (root_api-) Final JSON =  {"status":"ok","message":"User Details fetched Successfully!!","Errorcode":"","data":[{"user_org_id":"225","org_id":"1","role_id":"3","email":"alhenaude20@gmail.com","org_name":"University Of Cape Town","role_name":"Learner","short_name":"UCT","user_org_role":"3_1"},{"user_org_id":"226","org_id":"2","role_id":"2","email":"alhenaude20@gmail.com","org_name":"C-Institute","role_name":"Educator","short_name":"C-Institute","user_org_role":"2_2"}]}
[02/Feb/2026:18:36:08] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:36:08] (root_api-) op => getUsersCourseRole ,user_id => 184 ,course_id => 25 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:18:36:08] (root_api-) OP= getUsersCourseRole of page root_api.php
[02/Feb/2026:18:36:08] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:36:08:0208~2026-02-02 18:36:08~success
[02/Feb/2026:18:36:08] (root_api-) serviceName course_data
[02/Feb/2026:18:36:08] (root_api-) Query~SELECT ed_role FROM tbl_course_educator WHERE  course_id = '25' AND user_id = 184~2026-02-02 18:36:08:0208~2026-02-02 18:36:08~success
[02/Feb/2026:18:36:08] (root_api-) Final JSON =  {"status":"ok","message":"","Errorcode":"","data":{"ed_role":"author"}}
[02/Feb/2026:18:36:08] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:36:08] (root_api-) op => getCourseDetail ,course_id => 25 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:18:36:08] (root_api-) OP= getCourseDetail of page root_api.php
[02/Feb/2026:18:36:08] (root_api-) serviceName course_data
[02/Feb/2026:18:36:08] (root_api-) Query~SELECT * FROM tbl_course where course_id = '25' AND status NOT IN('Discard')~2026-02-02 18:36:08:0208~2026-02-02 18:36:08~success
[02/Feb/2026:18:36:08] (root_api-) Query~SELECT course_image_id, course_image, sequence, status FROM tbl_course_images where course_id = 25 ORDER BY sequence DESC~2026-02-02 18:36:08:0208~2026-02-02 18:36:08~success
[02/Feb/2026:18:36:08] (root_api-) Query~select course_id as prev_course_id from tbl_course where course_parent_id = 25 AND version = 0 AND status NOT IN('Discard')~2026-02-02 18:36:08:0208~2026-02-02 18:36:08~success
[02/Feb/2026:18:36:08] (root_api-) Query~select course_id as next_course_id from tbl_course where course_parent_id = 25 AND version = 2 AND status NOT IN('Discard')~2026-02-02 18:36:08:0208~2026-02-02 18:36:08~success
[02/Feb/2026:18:36:08] (root_api-) Final JSON =  {"status":"ok","message":"Course Details fetched Successfully","Errorcode":"","data":[{"course_id":"25","course_parent_id":"25","version":"1","org_id":"2","course_name":"Grade 8 Mathematics","short_name":"","status":"Draft","eval_id":"1","course_desc":"Grade 8 Mathematics aims to build strong foundational skills required to prepare learners for higher grades of mathematics and develop strong, appropriate mathematical reasoning and logical thinking. ","amount":"0","currency":null,"pay_type":"paid","course_brief":null,"course_duration":"16","background_color":"","text_color":"","creation_date":"2025-07-16 13:21:03","created_by":"184","updation_date":"2026-01-07 12:53:22","updated_by":"184","images":[],"parentid":"","childid":""}]}
[02/Feb/2026:18:36:08] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:36:08] (root_api-) op => get-my-contents-deck-info ,user_id => 184 ,course_id => 25 ,deckId => 83 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:18:36:08] (root_api-) OP= get-my-contents-deck-info of page root_api.php
[02/Feb/2026:18:36:08] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:36:08:0208~2026-02-02 18:36:08~success
[02/Feb/2026:18:36:08] (root_api-) serviceName course_data
[02/Feb/2026:18:36:08] (root_api-) Query~SELECT td.deck_id, td.created_by, tcd.course_id, 
            ifnull(tcd.deck_name,td.deck_name) deck_name,
            ifnull(tcd.short_name,td.short_name) short_name,
            ifnull(tcd.eval_id,td.eval_id) eval_id,
            ifnull(tcd.deck_desc,td.deck_desc) deck_desc,
            ifnull(tcd.deck_brief,td.deck_brief) deck_brief,
            td.status AS deckStatus,
            td.version
            FROM tbl_deck td 
            INNER JOIN tbl_course_deck tcd ON tcd.deck_id = td.deck_id AND course_id = '25' AND tcd.created_by = '184'
            Where td.deck_id = '83' AND td.deck_type = 'main' AND td.created_by = '184'~2026-02-02 18:36:08:0208~2026-02-02 18:36:08~success
[02/Feb/2026:18:36:08] (root_api-) Query~select td.deck_parent_id, cd.course_id as parent_courseid from tbl_deck td, tbl_course_deck cd where td.deck_id = 83 AND td.deck_parent_id <> 83 AND td.deck_parent_id = cd.deck_id~2026-02-02 18:36:08:0208~2026-02-02 18:36:08~success
[02/Feb/2026:18:36:08] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:36:08] (root_api-) op => get-my-contents-card-info ,user_id => 184 ,course_id => 25 ,deckId => 83 ,cardId => 2466 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:18:36:08] (root_api-) OP= get-my-contents-card-info of page root_api.php
[02/Feb/2026:18:36:08] (root_api-) Query~select td.deck_id as deck_child_id, cd.course_id as child_courseid from tbl_deck td, tbl_course_deck cd where td.deck_parent_id = 83 AND td.deck_id <> 83 AND td.deck_id = cd.deck_id~2026-02-02 18:36:08:0208~2026-02-02 18:36:08~success
[02/Feb/2026:18:36:08] (root_api-) Final JSON =  {"status":"ok",
                    "message":"",
                    "Errorcode":"",
                    "data":{"deck_id":"83","created_by":"184","course_id":"25","deck_name":"Data Handling ","short_name":"Data Handling","eval_id":"1","deck_desc":"Data handling helps learners interpret and understand the various pieces of information that may be collected when looking at data as well as different ways to summarise and read data. ","deck_brief":"","deckStatus":"Draft","version":"1","parentid":"","childid":""}}
[02/Feb/2026:18:36:08] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:36:08:0208~2026-02-02 18:36:08~success
[02/Feb/2026:18:36:08] (root_api-) serviceName course_data
[02/Feb/2026:18:36:08] (root_api-) Query~SELECT tc.card_id,tc.card_style,tc.card_title,tc.card_image_url,tc.card_video_url, CASE WHEN tc.card_style = 0 THEN 'Text' ELSE 'Image' END AS card_styleText  , tc.question_text, tc.status AS cardStatus, tc.answer_text, dc.deck_id,dc.sequence as cardSequence, tc.version, tc.card_parent_id
            FROM tbl_card tc
            INNER JOIN tbl_deck_card dc ON dc.card_id = tc.card_id
            Where dc.deck_id = '83' AND tc.card_id = '2466' AND tc.card_type = 'main' /*AND tc.created_by = '184'*/~2026-02-02 18:36:08:0208~2026-02-02 18:36:08~success
[02/Feb/2026:18:36:08] (root_api-) Query~select tc.card_parent_id, dc.deck_id as card_parent_deckid, tcd.course_id as card_parent_courseid from tbl_card tc, tbl_deck_card dc, tbl_course_deck tcd WHERE tc.card_parent_id=2466 AND tc.version = 0 AND tc.card_parent_id=dc.card_id AND dc.deck_id=tcd.deck_id~2026-02-02 18:36:08:0208~2026-02-02 18:36:08~success
[02/Feb/2026:18:36:08] (root_api-) Query~select tc.card_id as card_child_id, dc.deck_id as card_child_deckid, tcd.course_id as card_child_courseid from tbl_card tc, tbl_deck_card dc, tbl_course_deck tcd WHERE tc.card_parent_id=2466 AND tc.version = 2 AND tc.card_parent_id=dc.card_id AND dc.deck_id=tcd.deck_id~2026-02-02 18:36:08:0208~2026-02-02 18:36:08~success
[02/Feb/2026:18:36:08] (root_api-) Final JSON =  {"status":"ok",
                    "message":"",
                    "Errorcode":"",
                    "data":{"card_id":"2466","card_style":"0","card_title":"Card#2466","card_image_url":"","card_video_url":"","card_styleText":"Text","question_text":"","cardStatus":"Draft","answer_text":"","deck_id":"83","cardSequence":"8","version":"1","card_parent_id":null,"card_parent_deckid":null,"card_parent_courseid":null,"card_child_id":null,"card_child_deckid":null,"card_child_courseid":null}}
[02/Feb/2026:18:36:09] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:36:09] (root_api-) op => api-refresh ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => common_data ,
[02/Feb/2026:18:36:09] (root_api-) OP= api-refresh of page root_api.php
[02/Feb/2026:18:36:09] (root_api-) serviceName common_data
[02/Feb/2026:18:36:09] (root_api-) Final JSON =  {"status":"ok","message":"","Errorcode":"","data":""}
[02/Feb/2026:18:37:29] (root_api-) token =  IP = 169.0.141.180
[02/Feb/2026:18:37:29] (root_api-) 
[02/Feb/2026:18:37:29] (root_api-) OP=  of page root_api.php
[02/Feb/2026:18:37:29] (root_api-) Final JSON =  { "status":"error",
					"message":"Invalid Session",
					"Errorcode":"err100",
					"data":{}}
[02/Feb/2026:18:37:29] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:37:29] (root_api-) op => user-card-operation ,userId => 184 ,courseId => 25 ,cardDeckMode => edit ,cardDeckId => 83 ,questionText => <p>Which sample appropriately represents the population given the following scenario. Choose either A or B and give a reason for your answer. </p><p>Lawrence wants to find out how much pocket money teenagers in the southern suburbs receive on average.</p><p>A: He asks 45 teenagers that live in Constantia.</p><p>B: He asks 150 teenagers that live across different areas including Bergvliet, Diep RIver etc...</p> ,answerText => <p>B</p><p>Why?</p><p>Lawrence is taking a sample from not only one area in the southern suburbs but multiple. He also asks more teens in option B.&nbsp;</p> ,editCardId => 2466 ,action => SAVE_AND_NEXT ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => deck_data ,
[02/Feb/2026:18:37:29] (root_api-) OP= user-card-operation of page root_api.php
[02/Feb/2026:18:37:29] (root_api-) serviceName deck_data
[02/Feb/2026:18:37:29] (root_api-) Query~SELECT count(1) as deckCardCount FROM tbl_deck_card WHERE deck_id = '83' AND card_id = '2466'~2026-02-02 18:37:29:0229~2026-02-02 18:37:29~success
[02/Feb/2026:18:37:29] (root_api-) Query~SELECT question_text, answer_text FROM tbl_card  WHERE card_id = '2466'~2026-02-02 18:37:29:0229~2026-02-02 18:37:29~success
[02/Feb/2026:18:37:29] (root_api-) In case Card Updated query = UPDATE tbl_card SET card_style = '0' , question_text = '<p>Which sample appropriately represents the population given the following scenario. Choose either A or B and give a reason for your answer. </p><p>Lawrence wants to find out how much pocket money teenagers in the southern suburbs receive on average.</p><p>A: He asks 45 teenagers that live in Constantia.</p><p>B: He asks 150 teenagers that live across different areas including Bergvliet, Diep RIver etc...</p>', answer_text = '<p>B</p><p>Why?</p><p>Lawrence is taking a sample from not only one area in the southern suburbs but multiple. He also asks more teens in option B.&nbsp;</p>', card_type='main', updation_date = NOW(), updated_by = '184', card_title = '', card_image_url = '', 
                    onlyTextQuestion = '', onlyTextAnswer = '' 
                    WHERE card_id = '2466'
[02/Feb/2026:18:37:29] (root_api-) Query~UPDATE tbl_card SET card_style = '0' , question_text = '<p>Which sample appropriately represents the population given the following scenario. Choose either A or B and give a reason for your answer. </p><p>Lawrence wants to find out how much pocket money teenagers in the southern suburbs receive on average.</p><p>A: He asks 45 teenagers that live in Constantia.</p><p>B: He asks 150 teenagers that live across different areas including Bergvliet, Diep RIver etc...</p>', answer_text = '<p>B</p><p>Why?</p><p>Lawrence is taking a sample from not only one area in the southern suburbs but multiple. He also asks more teens in option B.&nbsp;</p>', card_type='main', updation_date = NOW(), updated_by = '184', card_title = '', card_image_url = '', 
                    onlyTextQuestion = '', onlyTextAnswer = '' 
                    WHERE card_id = '2466'~2026-02-02 18:37:29:0229~2026-02-02 18:37:29~success
[02/Feb/2026:18:37:29] (root_api-) Final JSON =  {"status":"ok","message":"Card Created Successfully!!","Errorcode":"","data":"","action":"SAVE_AND_NEXT"}
[02/Feb/2026:18:37:33] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:37:33] (root_api-) op => getSwitchRoles ,user_id => 184 ,org_id => 1 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => user_data ,
[02/Feb/2026:18:37:33] (root_api-) OP= getSwitchRoles of page root_api.php
[02/Feb/2026:18:37:33] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:37:33:0233~2026-02-02 18:37:33~success
[02/Feb/2026:18:37:33] (root_api-) Query~SELECT count(1) as cnt FROM tbl_org  WHERE status = 'Active' AND org_id ='1'~2026-02-02 18:37:33:0233~2026-02-02 18:37:33~success
[02/Feb/2026:18:37:33] (root_api-) Query~SELECT count(1) as cnt FROM tbl_user_org u WHERE u.status = 'Active' AND u.user_id ='184' AND  org_id ='1'~2026-02-02 18:37:33:0233~2026-02-02 18:37:33~success
[02/Feb/2026:18:37:33] (root_api-) serviceName user_data
[02/Feb/2026:18:37:33] (root_api-) Query~SELECT u.user_org_id, u.org_id, u.role_id, um.email,o.org_name,r.role_name,o.short_name,CONCAT(u.role_id,'_',u.org_id) as user_org_role
            FROM tbl_user_org u 
            inner join tbl_org o on u.org_id=o.org_id
            inner join tbl_role_master r on r.role_id=u.role_id
            inner join tbl_user_master um on u.user_id = um.user_id
            where u.user_id= 184~2026-02-02 18:37:33:0233~2026-02-02 18:37:33~success
[02/Feb/2026:18:37:33] (root_api-) Final JSON =  {"status":"ok","message":"User Details fetched Successfully!!","Errorcode":"","data":[{"user_org_id":"225","org_id":"1","role_id":"3","email":"alhenaude20@gmail.com","org_name":"University Of Cape Town","role_name":"Learner","short_name":"UCT","user_org_role":"3_1"},{"user_org_id":"226","org_id":"2","role_id":"2","email":"alhenaude20@gmail.com","org_name":"C-Institute","role_name":"Educator","short_name":"C-Institute","user_org_role":"2_2"}]}
[02/Feb/2026:18:37:34] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:37:34] (root_api-) op => createBlankCard ,course_id => 25 ,cardDeckId => 83 ,userId => 184 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => deck_data ,
[02/Feb/2026:18:37:34] (root_api-) OP= createBlankCard of page root_api.php
[02/Feb/2026:18:37:34] (root_api-) serviceName deck_data
[02/Feb/2026:18:37:34] (root_api-) Query~SELECT count(1) as deckCount FROM tbl_deck WHERE deck_id = '83'~2026-02-02 18:37:34:0234~2026-02-02 18:37:34~success
[02/Feb/2026:18:37:34] (root_api-) Query~select ifnull(max(card_parent_id),0)+1 as maxId from tbl_card_parent~2026-02-02 18:37:34:0234~2026-02-02 18:37:34~success
[02/Feb/2026:18:37:34] (root_api-) In case tbl_card_parent Insert query = INSERT into tbl_card_parent (card_parent_id, last_version, draft_version, published_version, creation_date, created_by) 
                    VALUES (2467,'1','1','0', NOW(), '184')
[02/Feb/2026:18:37:34] (root_api-) Query~INSERT into tbl_card_parent (card_parent_id, last_version, draft_version, published_version, creation_date, created_by) 
                    VALUES (2467,'1','1','0', NOW(), '184')~2026-02-02 18:37:34:0234~2026-02-02 18:37:34~success
[02/Feb/2026:18:37:34] (root_api-) Query~select ifnull(max(card_parent_id),0) as lastInsertedId from tbl_card_parent~2026-02-02 18:37:34:0234~2026-02-02 18:37:34~success
[02/Feb/2026:18:37:34] (root_api-) Query~select ifnull(max(card_id),0)+1 as maxId from tbl_card~2026-02-02 18:37:34:0234~2026-02-02 18:37:34~success
[02/Feb/2026:18:37:34] (root_api-) In case tbl_card Insert query = INSERT into tbl_card (card_id, card_parent_id, version, card_style, status, card_type, question_text, answer_text, creation_date, created_by) 
                     VALUES (2467, 2467,  1, '0','Draft','main','','', NOW(), '184')
[02/Feb/2026:18:37:34] (root_api-) Query~INSERT into tbl_card (card_id, card_parent_id, version, card_style, status, card_type, question_text, answer_text, creation_date, created_by) 
                     VALUES (2467, 2467,  1, '0','Draft','main','','', NOW(), '184')~2026-02-02 18:37:34:0234~2026-02-02 18:37:34~success
[02/Feb/2026:18:37:34] (root_api-) Query~select ifnull(max(card_id),0) as lastInsertedId from tbl_card~2026-02-02 18:37:34:0234~2026-02-02 18:37:34~success
[02/Feb/2026:18:37:34] (root_api-) Query~UPDATE tbl_card set card_title = 'Card#2467' WHERE card_id= 2467~2026-02-02 18:37:34:0234~2026-02-02 18:37:34~success
[02/Feb/2026:18:37:34] (root_api-) Query~SELECT IFNULL(MAX(sequence), 0) as lastSequenceNumber FROM tbl_deck_card WHERE deck_id = '83'~2026-02-02 18:37:34:0234~2026-02-02 18:37:34~success
[02/Feb/2026:18:37:34] (root_api-) Query~select ifnull(max(deck_card_id),0)+1 as maxId from tbl_deck_card~2026-02-02 18:37:34:0234~2026-02-02 18:37:34~success
[02/Feb/2026:18:37:34] (root_api-) In case tbl_deck_card Insert query = INSERT into tbl_deck_card (deck_card_id, deck_id, card_id, sequence, creation_date, created_by) 
                        VALUES (2467,'83','2467','9', NOW(), '184')
[02/Feb/2026:18:37:34] (root_api-) Query~INSERT into tbl_deck_card (deck_card_id, deck_id, card_id, sequence, creation_date, created_by) 
                        VALUES (2467,'83','2467','9', NOW(), '184')~2026-02-02 18:37:34:0234~2026-02-02 18:37:34~success
[02/Feb/2026:18:37:34] (root_api-) Final JSON =  {"status":"ok","message":"Card inserted Successfully!!","Errorcode":"","data":"2467"}
[02/Feb/2026:18:37:35] (root_api-) token =  IP = 169.0.141.180
[02/Feb/2026:18:37:35] (root_api-) 
[02/Feb/2026:18:37:35] (root_api-) OP=  of page root_api.php
[02/Feb/2026:18:37:35] (root_api-) Final JSON =  { "status":"error",
					"message":"Invalid Session",
					"Errorcode":"err100",
					"data":{}}
[02/Feb/2026:18:37:35] (root_api-) token =  IP = 169.0.141.180
[02/Feb/2026:18:37:35] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:37:35] (root_api-) 
[02/Feb/2026:18:37:35] (root_api-) op => getSwitchRoles ,user_id => 184 ,org_id => 1 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => user_data ,
[02/Feb/2026:18:37:35] (root_api-) OP=  of page root_api.php
[02/Feb/2026:18:37:35] (root_api-) OP= getSwitchRoles of page root_api.php
[02/Feb/2026:18:37:35] (root_api-) Final JSON =  { "status":"error",
					"message":"Invalid Session",
					"Errorcode":"err100",
					"data":{}}
[02/Feb/2026:18:37:35] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:37:35:0235~2026-02-02 18:37:35~success
[02/Feb/2026:18:37:35] (root_api-) Query~SELECT count(1) as cnt FROM tbl_org  WHERE status = 'Active' AND org_id ='1'~2026-02-02 18:37:35:0235~2026-02-02 18:37:35~success
[02/Feb/2026:18:37:35] (root_api-) Query~SELECT count(1) as cnt FROM tbl_user_org u WHERE u.status = 'Active' AND u.user_id ='184' AND  org_id ='1'~2026-02-02 18:37:35:0235~2026-02-02 18:37:35~success
[02/Feb/2026:18:37:35] (root_api-) serviceName user_data
[02/Feb/2026:18:37:35] (root_api-) Query~SELECT u.user_org_id, u.org_id, u.role_id, um.email,o.org_name,r.role_name,o.short_name,CONCAT(u.role_id,'_',u.org_id) as user_org_role
            FROM tbl_user_org u 
            inner join tbl_org o on u.org_id=o.org_id
            inner join tbl_role_master r on r.role_id=u.role_id
            inner join tbl_user_master um on u.user_id = um.user_id
            where u.user_id= 184~2026-02-02 18:37:35:0235~2026-02-02 18:37:35~success
[02/Feb/2026:18:37:35] (root_api-) Final JSON =  {"status":"ok","message":"User Details fetched Successfully!!","Errorcode":"","data":[{"user_org_id":"225","org_id":"1","role_id":"3","email":"alhenaude20@gmail.com","org_name":"University Of Cape Town","role_name":"Learner","short_name":"UCT","user_org_role":"3_1"},{"user_org_id":"226","org_id":"2","role_id":"2","email":"alhenaude20@gmail.com","org_name":"C-Institute","role_name":"Educator","short_name":"C-Institute","user_org_role":"2_2"}]}
[02/Feb/2026:18:37:35] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:37:35] (root_api-) op => getUsersCourseRole ,user_id => 184 ,course_id => 25 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:18:37:35] (root_api-) token =  IP = 169.0.141.180
[02/Feb/2026:18:37:35] (root_api-) OP= getUsersCourseRole of page root_api.php
[02/Feb/2026:18:37:35] (root_api-) 
[02/Feb/2026:18:37:35] (root_api-) OP=  of page root_api.php
[02/Feb/2026:18:37:35] (root_api-) Final JSON =  { "status":"error",
					"message":"Invalid Session",
					"Errorcode":"err100",
					"data":{}}
[02/Feb/2026:18:37:35] (root_api-) token =  IP = 169.0.141.180
[02/Feb/2026:18:37:35] (root_api-) 
[02/Feb/2026:18:37:35] (root_api-) OP=  of page root_api.php
[02/Feb/2026:18:37:35] (root_api-) Final JSON =  { "status":"error",
					"message":"Invalid Session",
					"Errorcode":"err100",
					"data":{}}
[02/Feb/2026:18:37:35] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:37:35:0235~2026-02-02 18:37:35~success
[02/Feb/2026:18:37:35] (root_api-) serviceName course_data
[02/Feb/2026:18:37:35] (root_api-) Query~SELECT ed_role FROM tbl_course_educator WHERE  course_id = '25' AND user_id = 184~2026-02-02 18:37:35:0235~2026-02-02 18:37:35~success
[02/Feb/2026:18:37:35] (root_api-) Final JSON =  {"status":"ok","message":"","Errorcode":"","data":{"ed_role":"author"}}
[02/Feb/2026:18:37:35] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:37:35] (root_api-) op => get-my-contents-card-info ,user_id => 184 ,course_id => 25 ,deckId => 83 ,cardId => 2467 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:18:37:35] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:37:35] (root_api-) OP= get-my-contents-card-info of page root_api.php
[02/Feb/2026:18:37:35] (root_api-) op => getCourseDetail ,course_id => 25 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:18:37:35] (root_api-) OP= getCourseDetail of page root_api.php
[02/Feb/2026:18:37:35] (root_api-) serviceName course_data
[02/Feb/2026:18:37:35] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:37:35:0235~2026-02-02 18:37:35~success
[02/Feb/2026:18:37:35] (root_api-) serviceName course_data
[02/Feb/2026:18:37:35] (root_api-) Query~SELECT * FROM tbl_course where course_id = '25' AND status NOT IN('Discard')~2026-02-02 18:37:35:0235~2026-02-02 18:37:35~success
[02/Feb/2026:18:37:35] (root_api-) Query~SELECT tc.card_id,tc.card_style,tc.card_title,tc.card_image_url,tc.card_video_url, CASE WHEN tc.card_style = 0 THEN 'Text' ELSE 'Image' END AS card_styleText  , tc.question_text, tc.status AS cardStatus, tc.answer_text, dc.deck_id,dc.sequence as cardSequence, tc.version, tc.card_parent_id
            FROM tbl_card tc
            INNER JOIN tbl_deck_card dc ON dc.card_id = tc.card_id
            Where dc.deck_id = '83' AND tc.card_id = '2467' AND tc.card_type = 'main' /*AND tc.created_by = '184'*/~2026-02-02 18:37:35:0235~2026-02-02 18:37:35~success
[02/Feb/2026:18:37:35] (root_api-) Query~SELECT course_image_id, course_image, sequence, status FROM tbl_course_images where course_id = 25 ORDER BY sequence DESC~2026-02-02 18:37:35:0235~2026-02-02 18:37:35~success
[02/Feb/2026:18:37:35] (root_api-) Query~select tc.card_parent_id, dc.deck_id as card_parent_deckid, tcd.course_id as card_parent_courseid from tbl_card tc, tbl_deck_card dc, tbl_course_deck tcd WHERE tc.card_parent_id=2467 AND tc.version = 0 AND tc.card_parent_id=dc.card_id AND dc.deck_id=tcd.deck_id~2026-02-02 18:37:35:0235~2026-02-02 18:37:35~success
[02/Feb/2026:18:37:35] (root_api-) Query~select course_id as prev_course_id from tbl_course where course_parent_id = 25 AND version = 0 AND status NOT IN('Discard')~2026-02-02 18:37:35:0235~2026-02-02 18:37:35~success
[02/Feb/2026:18:37:35] (root_api-) Query~select tc.card_id as card_child_id, dc.deck_id as card_child_deckid, tcd.course_id as card_child_courseid from tbl_card tc, tbl_deck_card dc, tbl_course_deck tcd WHERE tc.card_parent_id=2467 AND tc.version = 2 AND tc.card_parent_id=dc.card_id AND dc.deck_id=tcd.deck_id~2026-02-02 18:37:35:0235~2026-02-02 18:37:35~success
[02/Feb/2026:18:37:35] (root_api-) Final JSON =  {"status":"ok",
                    "message":"",
                    "Errorcode":"",
                    "data":{"card_id":"2467","card_style":"0","card_title":"Card#2467","card_image_url":"","card_video_url":"","card_styleText":"Text","question_text":"","cardStatus":"Draft","answer_text":"","deck_id":"83","cardSequence":"9","version":"1","card_parent_id":null,"card_parent_deckid":null,"card_parent_courseid":null,"card_child_id":null,"card_child_deckid":null,"card_child_courseid":null}}
[02/Feb/2026:18:37:35] (root_api-) Query~select course_id as next_course_id from tbl_course where course_parent_id = 25 AND version = 2 AND status NOT IN('Discard')~2026-02-02 18:37:35:0235~2026-02-02 18:37:35~success
[02/Feb/2026:18:37:35] (root_api-) Final JSON =  {"status":"ok","message":"Course Details fetched Successfully","Errorcode":"","data":[{"course_id":"25","course_parent_id":"25","version":"1","org_id":"2","course_name":"Grade 8 Mathematics","short_name":"","status":"Draft","eval_id":"1","course_desc":"Grade 8 Mathematics aims to build strong foundational skills required to prepare learners for higher grades of mathematics and develop strong, appropriate mathematical reasoning and logical thinking. ","amount":"0","currency":null,"pay_type":"paid","course_brief":null,"course_duration":"16","background_color":"","text_color":"","creation_date":"2025-07-16 13:21:03","created_by":"184","updation_date":"2026-01-07 12:53:22","updated_by":"184","images":[],"parentid":"","childid":""}]}
[02/Feb/2026:18:37:35] (root_api-) token =  IP = 169.0.141.180
[02/Feb/2026:18:37:35] (root_api-) 
[02/Feb/2026:18:37:35] (root_api-) OP=  of page root_api.php
[02/Feb/2026:18:37:35] (root_api-) Final JSON =  { "status":"error",
					"message":"Invalid Session",
					"Errorcode":"err100",
					"data":{}}
[02/Feb/2026:18:37:36] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:37:36] (root_api-) op => get-my-contents-deck-info ,user_id => 184 ,course_id => 25 ,deckId => 83 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:18:37:36] (root_api-) OP= get-my-contents-deck-info of page root_api.php
[02/Feb/2026:18:37:36] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:37:36:0236~2026-02-02 18:37:36~success
[02/Feb/2026:18:37:36] (root_api-) serviceName course_data
[02/Feb/2026:18:37:36] (root_api-) Query~SELECT td.deck_id, td.created_by, tcd.course_id, 
            ifnull(tcd.deck_name,td.deck_name) deck_name,
            ifnull(tcd.short_name,td.short_name) short_name,
            ifnull(tcd.eval_id,td.eval_id) eval_id,
            ifnull(tcd.deck_desc,td.deck_desc) deck_desc,
            ifnull(tcd.deck_brief,td.deck_brief) deck_brief,
            td.status AS deckStatus,
            td.version
            FROM tbl_deck td 
            INNER JOIN tbl_course_deck tcd ON tcd.deck_id = td.deck_id AND course_id = '25' AND tcd.created_by = '184'
            Where td.deck_id = '83' AND td.deck_type = 'main' AND td.created_by = '184'~2026-02-02 18:37:36:0236~2026-02-02 18:37:36~success
[02/Feb/2026:18:37:36] (root_api-) Query~select td.deck_parent_id, cd.course_id as parent_courseid from tbl_deck td, tbl_course_deck cd where td.deck_id = 83 AND td.deck_parent_id <> 83 AND td.deck_parent_id = cd.deck_id~2026-02-02 18:37:36:0236~2026-02-02 18:37:36~success
[02/Feb/2026:18:37:36] (root_api-) Query~select td.deck_id as deck_child_id, cd.course_id as child_courseid from tbl_deck td, tbl_course_deck cd where td.deck_parent_id = 83 AND td.deck_id <> 83 AND td.deck_id = cd.deck_id~2026-02-02 18:37:36:0236~2026-02-02 18:37:36~success
[02/Feb/2026:18:37:36] (root_api-) Final JSON =  {"status":"ok",
                    "message":"",
                    "Errorcode":"",
                    "data":{"deck_id":"83","created_by":"184","course_id":"25","deck_name":"Data Handling ","short_name":"Data Handling","eval_id":"1","deck_desc":"Data handling helps learners interpret and understand the various pieces of information that may be collected when looking at data as well as different ways to summarise and read data. ","deck_brief":"","deckStatus":"Draft","version":"1","parentid":"","childid":""}}
[02/Feb/2026:18:37:40] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:37:40] (root_api-) op => api-refresh ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => common_data ,
[02/Feb/2026:18:37:40] (root_api-) OP= api-refresh of page root_api.php
[02/Feb/2026:18:37:40] (root_api-) serviceName common_data
[02/Feb/2026:18:37:40] (root_api-) Final JSON =  {"status":"ok","message":"","Errorcode":"","data":""}
[02/Feb/2026:18:40:27] (root_api-) token =  IP = 169.0.141.180
[02/Feb/2026:18:40:27] (root_api-) 
[02/Feb/2026:18:40:27] (root_api-) OP=  of page root_api.php
[02/Feb/2026:18:40:27] (root_api-) Final JSON =  { "status":"error",
					"message":"Invalid Session",
					"Errorcode":"err100",
					"data":{}}
[02/Feb/2026:18:40:27] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:40:27] (root_api-) op => user-card-operation ,userId => 184 ,courseId => 25 ,cardDeckMode => edit ,cardDeckId => 83 ,questionText => <p>Which sample appropriately represents the population given the following scenario. Choose the correct option and provide a reason for your answer.</p><p>Robert works at a petrol station in Area A. Robert notices that a large percentage of people seem to drive a VW Golf car. </p><p>He now wants to find out the actual percentage of VW Golf cars that there are in the whole city ( there are 5 other areas alongside Area A ).</p><p>A: Robert surveys only in Area A for half a day</p><p>B. Robert surveys at 3 different petrol stations in Area A and B for half a day.</p><p>C. &nbsp;Robert surveys the whole city over a period of a few days.&nbsp;</p> ,answerText => <p>C</p><p>Why? </p><p>Robert surveys not only Area A or B but all the areas making up the city. </p><p>He also surveys the over a couple of days meaning he got a bigger sample space that what he would have gotten in half a day.&nbsp;</p> ,editCardId => 2467 ,action => SAVE_AND_NEXT ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => deck_data ,
[02/Feb/2026:18:40:27] (root_api-) OP= user-card-operation of page root_api.php
[02/Feb/2026:18:40:27] (root_api-) serviceName deck_data
[02/Feb/2026:18:40:27] (root_api-) Query~SELECT count(1) as deckCardCount FROM tbl_deck_card WHERE deck_id = '83' AND card_id = '2467'~2026-02-02 18:40:27:0227~2026-02-02 18:40:27~success
[02/Feb/2026:18:40:27] (root_api-) Query~SELECT question_text, answer_text FROM tbl_card  WHERE card_id = '2467'~2026-02-02 18:40:27:0227~2026-02-02 18:40:27~success
[02/Feb/2026:18:40:27] (root_api-) In case Card Updated query = UPDATE tbl_card SET card_style = '0' , question_text = '<p>Which sample appropriately represents the population given the following scenario. Choose the correct option and provide a reason for your answer.</p><p>Robert works at a petrol station in Area A. Robert notices that a large percentage of people seem to drive a VW Golf car. </p><p>He now wants to find out the actual percentage of VW Golf cars that there are in the whole city ( there are 5 other areas alongside Area A ).</p><p>A: Robert surveys only in Area A for half a day</p><p>B. Robert surveys at 3 different petrol stations in Area A and B for half a day.</p><p>C. &nbsp;Robert surveys the whole city over a period of a few days.&nbsp;</p>', answer_text = '<p>C</p><p>Why? </p><p>Robert surveys not only Area A or B but all the areas making up the city. </p><p>He also surveys the over a couple of days meaning he got a bigger sample space that what he would have gotten in half a day.&nbsp;</p>', card_type='main', updation_date = NOW(), updated_by = '184', card_title = '', card_image_url = '', 
                    onlyTextQuestion = '', onlyTextAnswer = '' 
                    WHERE card_id = '2467'
[02/Feb/2026:18:40:27] (root_api-) Query~UPDATE tbl_card SET card_style = '0' , question_text = '<p>Which sample appropriately represents the population given the following scenario. Choose the correct option and provide a reason for your answer.</p><p>Robert works at a petrol station in Area A. Robert notices that a large percentage of people seem to drive a VW Golf car. </p><p>He now wants to find out the actual percentage of VW Golf cars that there are in the whole city ( there are 5 other areas alongside Area A ).</p><p>A: Robert surveys only in Area A for half a day</p><p>B. Robert surveys at 3 different petrol stations in Area A and B for half a day.</p><p>C. &nbsp;Robert surveys the whole city over a period of a few days.&nbsp;</p>', answer_text = '<p>C</p><p>Why? </p><p>Robert surveys not only Area A or B but all the areas making up the city. </p><p>He also surveys the over a couple of days meaning he got a bigger sample space that what he would have gotten in half a day.&nbsp;</p>', card_type='main', updation_date = NOW(), updated_by = '184', card_title = '', card_image_url = '', 
                    onlyTextQuestion = '', onlyTextAnswer = '' 
                    WHERE card_id = '2467'~2026-02-02 18:40:27:0227~2026-02-02 18:40:27~success
[02/Feb/2026:18:40:27] (root_api-) Final JSON =  {"status":"ok","message":"Card Created Successfully!!","Errorcode":"","data":"","action":"SAVE_AND_NEXT"}
[02/Feb/2026:18:40:28] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:40:28] (root_api-) op => getSwitchRoles ,user_id => 184 ,org_id => 1 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => user_data ,
[02/Feb/2026:18:40:28] (root_api-) OP= getSwitchRoles of page root_api.php
[02/Feb/2026:18:40:28] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:40:28:0228~2026-02-02 18:40:28~success
[02/Feb/2026:18:40:28] (root_api-) Query~SELECT count(1) as cnt FROM tbl_org  WHERE status = 'Active' AND org_id ='1'~2026-02-02 18:40:28:0228~2026-02-02 18:40:28~success
[02/Feb/2026:18:40:28] (root_api-) Query~SELECT count(1) as cnt FROM tbl_user_org u WHERE u.status = 'Active' AND u.user_id ='184' AND  org_id ='1'~2026-02-02 18:40:28:0228~2026-02-02 18:40:28~success
[02/Feb/2026:18:40:28] (root_api-) serviceName user_data
[02/Feb/2026:18:40:28] (root_api-) Query~SELECT u.user_org_id, u.org_id, u.role_id, um.email,o.org_name,r.role_name,o.short_name,CONCAT(u.role_id,'_',u.org_id) as user_org_role
            FROM tbl_user_org u 
            inner join tbl_org o on u.org_id=o.org_id
            inner join tbl_role_master r on r.role_id=u.role_id
            inner join tbl_user_master um on u.user_id = um.user_id
            where u.user_id= 184~2026-02-02 18:40:28:0228~2026-02-02 18:40:28~success
[02/Feb/2026:18:40:28] (root_api-) Final JSON =  {"status":"ok","message":"User Details fetched Successfully!!","Errorcode":"","data":[{"user_org_id":"225","org_id":"1","role_id":"3","email":"alhenaude20@gmail.com","org_name":"University Of Cape Town","role_name":"Learner","short_name":"UCT","user_org_role":"3_1"},{"user_org_id":"226","org_id":"2","role_id":"2","email":"alhenaude20@gmail.com","org_name":"C-Institute","role_name":"Educator","short_name":"C-Institute","user_org_role":"2_2"}]}
[02/Feb/2026:18:40:29] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:40:29] (root_api-) op => createBlankCard ,course_id => 25 ,cardDeckId => 83 ,userId => 184 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => deck_data ,
[02/Feb/2026:18:40:29] (root_api-) OP= createBlankCard of page root_api.php
[02/Feb/2026:18:40:29] (root_api-) serviceName deck_data
[02/Feb/2026:18:40:29] (root_api-) Query~SELECT count(1) as deckCount FROM tbl_deck WHERE deck_id = '83'~2026-02-02 18:40:29:0229~2026-02-02 18:40:29~success
[02/Feb/2026:18:40:29] (root_api-) Query~select ifnull(max(card_parent_id),0)+1 as maxId from tbl_card_parent~2026-02-02 18:40:29:0229~2026-02-02 18:40:29~success
[02/Feb/2026:18:40:29] (root_api-) In case tbl_card_parent Insert query = INSERT into tbl_card_parent (card_parent_id, last_version, draft_version, published_version, creation_date, created_by) 
                    VALUES (2468,'1','1','0', NOW(), '184')
[02/Feb/2026:18:40:29] (root_api-) Query~INSERT into tbl_card_parent (card_parent_id, last_version, draft_version, published_version, creation_date, created_by) 
                    VALUES (2468,'1','1','0', NOW(), '184')~2026-02-02 18:40:29:0229~2026-02-02 18:40:29~success
[02/Feb/2026:18:40:29] (root_api-) Query~select ifnull(max(card_parent_id),0) as lastInsertedId from tbl_card_parent~2026-02-02 18:40:29:0229~2026-02-02 18:40:29~success
[02/Feb/2026:18:40:29] (root_api-) Query~select ifnull(max(card_id),0)+1 as maxId from tbl_card~2026-02-02 18:40:29:0229~2026-02-02 18:40:29~success
[02/Feb/2026:18:40:29] (root_api-) In case tbl_card Insert query = INSERT into tbl_card (card_id, card_parent_id, version, card_style, status, card_type, question_text, answer_text, creation_date, created_by) 
                     VALUES (2468, 2468,  1, '0','Draft','main','','', NOW(), '184')
[02/Feb/2026:18:40:29] (root_api-) Query~INSERT into tbl_card (card_id, card_parent_id, version, card_style, status, card_type, question_text, answer_text, creation_date, created_by) 
                     VALUES (2468, 2468,  1, '0','Draft','main','','', NOW(), '184')~2026-02-02 18:40:29:0229~2026-02-02 18:40:29~success
[02/Feb/2026:18:40:29] (root_api-) Query~select ifnull(max(card_id),0) as lastInsertedId from tbl_card~2026-02-02 18:40:29:0229~2026-02-02 18:40:29~success
[02/Feb/2026:18:40:29] (root_api-) Query~UPDATE tbl_card set card_title = 'Card#2468' WHERE card_id= 2468~2026-02-02 18:40:29:0229~2026-02-02 18:40:29~success
[02/Feb/2026:18:40:29] (root_api-) Query~SELECT IFNULL(MAX(sequence), 0) as lastSequenceNumber FROM tbl_deck_card WHERE deck_id = '83'~2026-02-02 18:40:29:0229~2026-02-02 18:40:29~success
[02/Feb/2026:18:40:29] (root_api-) Query~select ifnull(max(deck_card_id),0)+1 as maxId from tbl_deck_card~2026-02-02 18:40:29:0229~2026-02-02 18:40:29~success
[02/Feb/2026:18:40:29] (root_api-) In case tbl_deck_card Insert query = INSERT into tbl_deck_card (deck_card_id, deck_id, card_id, sequence, creation_date, created_by) 
                        VALUES (2468,'83','2468','10', NOW(), '184')
[02/Feb/2026:18:40:29] (root_api-) Query~INSERT into tbl_deck_card (deck_card_id, deck_id, card_id, sequence, creation_date, created_by) 
                        VALUES (2468,'83','2468','10', NOW(), '184')~2026-02-02 18:40:29:0229~2026-02-02 18:40:29~success
[02/Feb/2026:18:40:29] (root_api-) Final JSON =  {"status":"ok","message":"Card inserted Successfully!!","Errorcode":"","data":"2468"}
[02/Feb/2026:18:40:29] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:40:29] (root_api-) op => getSwitchRoles ,user_id => 184 ,org_id => 1 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => user_data ,
[02/Feb/2026:18:40:29] (root_api-) OP= getSwitchRoles of page root_api.php
[02/Feb/2026:18:40:29] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:40:29:0229~2026-02-02 18:40:29~success
[02/Feb/2026:18:40:29] (root_api-) Query~SELECT count(1) as cnt FROM tbl_org  WHERE status = 'Active' AND org_id ='1'~2026-02-02 18:40:29:0229~2026-02-02 18:40:29~success
[02/Feb/2026:18:40:29] (root_api-) Query~SELECT count(1) as cnt FROM tbl_user_org u WHERE u.status = 'Active' AND u.user_id ='184' AND  org_id ='1'~2026-02-02 18:40:29:0229~2026-02-02 18:40:29~success
[02/Feb/2026:18:40:29] (root_api-) serviceName user_data
[02/Feb/2026:18:40:29] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:40:29] (root_api-) op => getUsersCourseRole ,user_id => 184 ,course_id => 25 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:18:40:29] (root_api-) OP= getUsersCourseRole of page root_api.php
[02/Feb/2026:18:40:29] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:40:29:0229~2026-02-02 18:40:29~success
[02/Feb/2026:18:40:29] (root_api-) serviceName course_data
[02/Feb/2026:18:40:29] (root_api-) Query~SELECT u.user_org_id, u.org_id, u.role_id, um.email,o.org_name,r.role_name,o.short_name,CONCAT(u.role_id,'_',u.org_id) as user_org_role
            FROM tbl_user_org u 
            inner join tbl_org o on u.org_id=o.org_id
            inner join tbl_role_master r on r.role_id=u.role_id
            inner join tbl_user_master um on u.user_id = um.user_id
            where u.user_id= 184~2026-02-02 18:40:29:0229~2026-02-02 18:40:29~success
[02/Feb/2026:18:40:29] (root_api-) Final JSON =  {"status":"ok","message":"User Details fetched Successfully!!","Errorcode":"","data":[{"user_org_id":"225","org_id":"1","role_id":"3","email":"alhenaude20@gmail.com","org_name":"University Of Cape Town","role_name":"Learner","short_name":"UCT","user_org_role":"3_1"},{"user_org_id":"226","org_id":"2","role_id":"2","email":"alhenaude20@gmail.com","org_name":"C-Institute","role_name":"Educator","short_name":"C-Institute","user_org_role":"2_2"}]}
[02/Feb/2026:18:40:29] (root_api-) Query~SELECT ed_role FROM tbl_course_educator WHERE  course_id = '25' AND user_id = 184~2026-02-02 18:40:29:0229~2026-02-02 18:40:29~success
[02/Feb/2026:18:40:29] (root_api-) Final JSON =  {"status":"ok","message":"","Errorcode":"","data":{"ed_role":"author"}}
[02/Feb/2026:18:40:29] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:40:29] (root_api-) op => get-my-contents-card-info ,user_id => 184 ,course_id => 25 ,deckId => 83 ,cardId => 2468 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:18:40:29] (root_api-) OP= get-my-contents-card-info of page root_api.php
[02/Feb/2026:18:40:29] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:40:29:0229~2026-02-02 18:40:29~success
[02/Feb/2026:18:40:29] (root_api-) serviceName course_data
[02/Feb/2026:18:40:29] (root_api-) Query~SELECT tc.card_id,tc.card_style,tc.card_title,tc.card_image_url,tc.card_video_url, CASE WHEN tc.card_style = 0 THEN 'Text' ELSE 'Image' END AS card_styleText  , tc.question_text, tc.status AS cardStatus, tc.answer_text, dc.deck_id,dc.sequence as cardSequence, tc.version, tc.card_parent_id
            FROM tbl_card tc
            INNER JOIN tbl_deck_card dc ON dc.card_id = tc.card_id
            Where dc.deck_id = '83' AND tc.card_id = '2468' AND tc.card_type = 'main' /*AND tc.created_by = '184'*/~2026-02-02 18:40:29:0229~2026-02-02 18:40:29~success
[02/Feb/2026:18:40:29] (root_api-) Query~select tc.card_parent_id, dc.deck_id as card_parent_deckid, tcd.course_id as card_parent_courseid from tbl_card tc, tbl_deck_card dc, tbl_course_deck tcd WHERE tc.card_parent_id=2468 AND tc.version = 0 AND tc.card_parent_id=dc.card_id AND dc.deck_id=tcd.deck_id~2026-02-02 18:40:29:0229~2026-02-02 18:40:29~success
[02/Feb/2026:18:40:29] (root_api-) Query~select tc.card_id as card_child_id, dc.deck_id as card_child_deckid, tcd.course_id as card_child_courseid from tbl_card tc, tbl_deck_card dc, tbl_course_deck tcd WHERE tc.card_parent_id=2468 AND tc.version = 2 AND tc.card_parent_id=dc.card_id AND dc.deck_id=tcd.deck_id~2026-02-02 18:40:29:0229~2026-02-02 18:40:29~success
[02/Feb/2026:18:40:29] (root_api-) Final JSON =  {"status":"ok",
                    "message":"",
                    "Errorcode":"",
                    "data":{"card_id":"2468","card_style":"0","card_title":"Card#2468","card_image_url":"","card_video_url":"","card_styleText":"Text","question_text":"","cardStatus":"Draft","answer_text":"","deck_id":"83","cardSequence":"10","version":"1","card_parent_id":null,"card_parent_deckid":null,"card_parent_courseid":null,"card_child_id":null,"card_child_deckid":null,"card_child_courseid":null}}
[02/Feb/2026:18:40:29] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:40:29] (root_api-) op => getCourseDetail ,course_id => 25 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:18:40:29] (root_api-) OP= getCourseDetail of page root_api.php
[02/Feb/2026:18:40:29] (root_api-) serviceName course_data
[02/Feb/2026:18:40:29] (root_api-) Query~SELECT * FROM tbl_course where course_id = '25' AND status NOT IN('Discard')~2026-02-02 18:40:29:0229~2026-02-02 18:40:29~success
[02/Feb/2026:18:40:29] (root_api-) Query~SELECT course_image_id, course_image, sequence, status FROM tbl_course_images where course_id = 25 ORDER BY sequence DESC~2026-02-02 18:40:29:0229~2026-02-02 18:40:29~success
[02/Feb/2026:18:40:29] (root_api-) Query~select course_id as prev_course_id from tbl_course where course_parent_id = 25 AND version = 0 AND status NOT IN('Discard')~2026-02-02 18:40:29:0229~2026-02-02 18:40:29~success
[02/Feb/2026:18:40:29] (root_api-) Query~select course_id as next_course_id from tbl_course where course_parent_id = 25 AND version = 2 AND status NOT IN('Discard')~2026-02-02 18:40:29:0229~2026-02-02 18:40:29~success
[02/Feb/2026:18:40:29] (root_api-) Final JSON =  {"status":"ok","message":"Course Details fetched Successfully","Errorcode":"","data":[{"course_id":"25","course_parent_id":"25","version":"1","org_id":"2","course_name":"Grade 8 Mathematics","short_name":"","status":"Draft","eval_id":"1","course_desc":"Grade 8 Mathematics aims to build strong foundational skills required to prepare learners for higher grades of mathematics and develop strong, appropriate mathematical reasoning and logical thinking. ","amount":"0","currency":null,"pay_type":"paid","course_brief":null,"course_duration":"16","background_color":"","text_color":"","creation_date":"2025-07-16 13:21:03","created_by":"184","updation_date":"2026-01-07 12:53:22","updated_by":"184","images":[],"parentid":"","childid":""}]}
[02/Feb/2026:18:40:29] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:40:29] (root_api-) op => get-my-contents-deck-info ,user_id => 184 ,course_id => 25 ,deckId => 83 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:18:40:29] (root_api-) OP= get-my-contents-deck-info of page root_api.php
[02/Feb/2026:18:40:29] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:40:29:0229~2026-02-02 18:40:29~success
[02/Feb/2026:18:40:29] (root_api-) serviceName course_data
[02/Feb/2026:18:40:29] (root_api-) Query~SELECT td.deck_id, td.created_by, tcd.course_id, 
            ifnull(tcd.deck_name,td.deck_name) deck_name,
            ifnull(tcd.short_name,td.short_name) short_name,
            ifnull(tcd.eval_id,td.eval_id) eval_id,
            ifnull(tcd.deck_desc,td.deck_desc) deck_desc,
            ifnull(tcd.deck_brief,td.deck_brief) deck_brief,
            td.status AS deckStatus,
            td.version
            FROM tbl_deck td 
            INNER JOIN tbl_course_deck tcd ON tcd.deck_id = td.deck_id AND course_id = '25' AND tcd.created_by = '184'
            Where td.deck_id = '83' AND td.deck_type = 'main' AND td.created_by = '184'~2026-02-02 18:40:29:0229~2026-02-02 18:40:29~success
[02/Feb/2026:18:40:29] (root_api-) Query~select td.deck_parent_id, cd.course_id as parent_courseid from tbl_deck td, tbl_course_deck cd where td.deck_id = 83 AND td.deck_parent_id <> 83 AND td.deck_parent_id = cd.deck_id~2026-02-02 18:40:29:0229~2026-02-02 18:40:29~success
[02/Feb/2026:18:40:29] (root_api-) Query~select td.deck_id as deck_child_id, cd.course_id as child_courseid from tbl_deck td, tbl_course_deck cd where td.deck_parent_id = 83 AND td.deck_id <> 83 AND td.deck_id = cd.deck_id~2026-02-02 18:40:29:0229~2026-02-02 18:40:29~success
[02/Feb/2026:18:40:29] (root_api-) Final JSON =  {"status":"ok",
                    "message":"",
                    "Errorcode":"",
                    "data":{"deck_id":"83","created_by":"184","course_id":"25","deck_name":"Data Handling ","short_name":"Data Handling","eval_id":"1","deck_desc":"Data handling helps learners interpret and understand the various pieces of information that may be collected when looking at data as well as different ways to summarise and read data. ","deck_brief":"","deckStatus":"Draft","version":"1","parentid":"","childid":""}}
[02/Feb/2026:18:40:30] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:40:30] (root_api-) op => api-refresh ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => common_data ,
[02/Feb/2026:18:40:30] (root_api-) OP= api-refresh of page root_api.php
[02/Feb/2026:18:40:30] (root_api-) serviceName common_data
[02/Feb/2026:18:40:30] (root_api-) Final JSON =  {"status":"ok","message":"","Errorcode":"","data":""}
[02/Feb/2026:18:42:05] (root_api-) token =  IP = 169.0.141.180
[02/Feb/2026:18:42:05] (root_api-) 
[02/Feb/2026:18:42:05] (root_api-) OP=  of page root_api.php
[02/Feb/2026:18:42:05] (root_api-) Final JSON =  { "status":"error",
					"message":"Invalid Session",
					"Errorcode":"err100",
					"data":{}}
[02/Feb/2026:18:42:06] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:42:06] (root_api-) op => user-card-operation ,userId => 184 ,courseId => 25 ,cardDeckMode => edit ,cardDeckId => 83 ,questionText => <p>What are different ways to collect data?</p><p><br></p> ,answerText => <p>- Questionnaires</p><p>- telephonic interviews</p><p>- face-to-face interviews</p><p><br></p> ,editCardId => 2468 ,action => SAVE_AND_NEXT ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => deck_data ,
[02/Feb/2026:18:42:06] (root_api-) OP= user-card-operation of page root_api.php
[02/Feb/2026:18:42:06] (root_api-) serviceName deck_data
[02/Feb/2026:18:42:06] (root_api-) Query~SELECT count(1) as deckCardCount FROM tbl_deck_card WHERE deck_id = '83' AND card_id = '2468'~2026-02-02 18:42:06:0206~2026-02-02 18:42:06~success
[02/Feb/2026:18:42:06] (root_api-) Query~SELECT question_text, answer_text FROM tbl_card  WHERE card_id = '2468'~2026-02-02 18:42:06:0206~2026-02-02 18:42:06~success
[02/Feb/2026:18:42:06] (root_api-) In case Card Updated query = UPDATE tbl_card SET card_style = '0' , question_text = '<p>What are different ways to collect data?</p><p><br></p>', answer_text = '<p>- Questionnaires</p><p>- telephonic interviews</p><p>- face-to-face interviews</p><p><br></p>', card_type='main', updation_date = NOW(), updated_by = '184', card_title = '', card_image_url = '', 
                    onlyTextQuestion = '', onlyTextAnswer = '' 
                    WHERE card_id = '2468'
[02/Feb/2026:18:42:06] (root_api-) Query~UPDATE tbl_card SET card_style = '0' , question_text = '<p>What are different ways to collect data?</p><p><br></p>', answer_text = '<p>- Questionnaires</p><p>- telephonic interviews</p><p>- face-to-face interviews</p><p><br></p>', card_type='main', updation_date = NOW(), updated_by = '184', card_title = '', card_image_url = '', 
                    onlyTextQuestion = '', onlyTextAnswer = '' 
                    WHERE card_id = '2468'~2026-02-02 18:42:06:0206~2026-02-02 18:42:06~success
[02/Feb/2026:18:42:06] (root_api-) Final JSON =  {"status":"ok","message":"Card Created Successfully!!","Errorcode":"","data":"","action":"SAVE_AND_NEXT"}
[02/Feb/2026:18:42:12] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:42:12] (root_api-) op => createBlankCard ,course_id => 25 ,cardDeckId => 83 ,userId => 184 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => deck_data ,
[02/Feb/2026:18:42:12] (root_api-) OP= createBlankCard of page root_api.php
[02/Feb/2026:18:42:12] (root_api-) serviceName deck_data
[02/Feb/2026:18:42:12] (root_api-) Query~SELECT count(1) as deckCount FROM tbl_deck WHERE deck_id = '83'~2026-02-02 18:42:12:0212~2026-02-02 18:42:12~success
[02/Feb/2026:18:42:12] (root_api-) Query~select ifnull(max(card_parent_id),0)+1 as maxId from tbl_card_parent~2026-02-02 18:42:12:0212~2026-02-02 18:42:12~success
[02/Feb/2026:18:42:12] (root_api-) In case tbl_card_parent Insert query = INSERT into tbl_card_parent (card_parent_id, last_version, draft_version, published_version, creation_date, created_by) 
                    VALUES (2469,'1','1','0', NOW(), '184')
[02/Feb/2026:18:42:12] (root_api-) Query~INSERT into tbl_card_parent (card_parent_id, last_version, draft_version, published_version, creation_date, created_by) 
                    VALUES (2469,'1','1','0', NOW(), '184')~2026-02-02 18:42:12:0212~2026-02-02 18:42:12~success
[02/Feb/2026:18:42:12] (root_api-) Query~select ifnull(max(card_parent_id),0) as lastInsertedId from tbl_card_parent~2026-02-02 18:42:12:0212~2026-02-02 18:42:12~success
[02/Feb/2026:18:42:12] (root_api-) Query~select ifnull(max(card_id),0)+1 as maxId from tbl_card~2026-02-02 18:42:12:0212~2026-02-02 18:42:12~success
[02/Feb/2026:18:42:12] (root_api-) In case tbl_card Insert query = INSERT into tbl_card (card_id, card_parent_id, version, card_style, status, card_type, question_text, answer_text, creation_date, created_by) 
                     VALUES (2469, 2469,  1, '0','Draft','main','','', NOW(), '184')
[02/Feb/2026:18:42:12] (root_api-) Query~INSERT into tbl_card (card_id, card_parent_id, version, card_style, status, card_type, question_text, answer_text, creation_date, created_by) 
                     VALUES (2469, 2469,  1, '0','Draft','main','','', NOW(), '184')~2026-02-02 18:42:12:0212~2026-02-02 18:42:12~success
[02/Feb/2026:18:42:12] (root_api-) Query~select ifnull(max(card_id),0) as lastInsertedId from tbl_card~2026-02-02 18:42:12:0212~2026-02-02 18:42:12~success
[02/Feb/2026:18:42:12] (root_api-) Query~UPDATE tbl_card set card_title = 'Card#2469' WHERE card_id= 2469~2026-02-02 18:42:12:0212~2026-02-02 18:42:12~success
[02/Feb/2026:18:42:12] (root_api-) Query~SELECT IFNULL(MAX(sequence), 0) as lastSequenceNumber FROM tbl_deck_card WHERE deck_id = '83'~2026-02-02 18:42:12:0212~2026-02-02 18:42:12~success
[02/Feb/2026:18:42:12] (root_api-) Query~select ifnull(max(deck_card_id),0)+1 as maxId from tbl_deck_card~2026-02-02 18:42:12:0212~2026-02-02 18:42:12~success
[02/Feb/2026:18:42:12] (root_api-) In case tbl_deck_card Insert query = INSERT into tbl_deck_card (deck_card_id, deck_id, card_id, sequence, creation_date, created_by) 
                        VALUES (2469,'83','2469','11', NOW(), '184')
[02/Feb/2026:18:42:12] (root_api-) Query~INSERT into tbl_deck_card (deck_card_id, deck_id, card_id, sequence, creation_date, created_by) 
                        VALUES (2469,'83','2469','11', NOW(), '184')~2026-02-02 18:42:12:0212~2026-02-02 18:42:12~success
[02/Feb/2026:18:42:12] (root_api-) Final JSON =  {"status":"ok","message":"Card inserted Successfully!!","Errorcode":"","data":"2469"}
[02/Feb/2026:18:42:12] (root_api-) token =  IP = 169.0.141.180
[02/Feb/2026:18:42:12] (root_api-) 
[02/Feb/2026:18:42:12] (root_api-) OP=  of page root_api.php
[02/Feb/2026:18:42:12] (root_api-) Final JSON =  { "status":"error",
					"message":"Invalid Session",
					"Errorcode":"err100",
					"data":{}}
[02/Feb/2026:18:42:12] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:42:12] (root_api-) op => getSwitchRoles ,user_id => 184 ,org_id => 1 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => user_data ,
[02/Feb/2026:18:42:12] (root_api-) OP= getSwitchRoles of page root_api.php
[02/Feb/2026:18:42:12] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:42:12:0212~2026-02-02 18:42:12~success
[02/Feb/2026:18:42:12] (root_api-) Query~SELECT count(1) as cnt FROM tbl_org  WHERE status = 'Active' AND org_id ='1'~2026-02-02 18:42:12:0212~2026-02-02 18:42:12~success
[02/Feb/2026:18:42:12] (root_api-) Query~SELECT count(1) as cnt FROM tbl_user_org u WHERE u.status = 'Active' AND u.user_id ='184' AND  org_id ='1'~2026-02-02 18:42:12:0212~2026-02-02 18:42:12~success
[02/Feb/2026:18:42:12] (root_api-) serviceName user_data
[02/Feb/2026:18:42:12] (root_api-) Query~SELECT u.user_org_id, u.org_id, u.role_id, um.email,o.org_name,r.role_name,o.short_name,CONCAT(u.role_id,'_',u.org_id) as user_org_role
            FROM tbl_user_org u 
            inner join tbl_org o on u.org_id=o.org_id
            inner join tbl_role_master r on r.role_id=u.role_id
            inner join tbl_user_master um on u.user_id = um.user_id
            where u.user_id= 184~2026-02-02 18:42:12:0212~2026-02-02 18:42:12~success
[02/Feb/2026:18:42:12] (root_api-) Final JSON =  {"status":"ok","message":"User Details fetched Successfully!!","Errorcode":"","data":[{"user_org_id":"225","org_id":"1","role_id":"3","email":"alhenaude20@gmail.com","org_name":"University Of Cape Town","role_name":"Learner","short_name":"UCT","user_org_role":"3_1"},{"user_org_id":"226","org_id":"2","role_id":"2","email":"alhenaude20@gmail.com","org_name":"C-Institute","role_name":"Educator","short_name":"C-Institute","user_org_role":"2_2"}]}
[02/Feb/2026:18:42:12] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:42:12] (root_api-) op => getUsersCourseRole ,user_id => 184 ,course_id => 25 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:18:42:12] (root_api-) OP= getUsersCourseRole of page root_api.php
[02/Feb/2026:18:42:12] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:42:12:0212~2026-02-02 18:42:12~success
[02/Feb/2026:18:42:12] (root_api-) serviceName course_data
[02/Feb/2026:18:42:12] (root_api-) Query~SELECT ed_role FROM tbl_course_educator WHERE  course_id = '25' AND user_id = 184~2026-02-02 18:42:12:0212~2026-02-02 18:42:12~success
[02/Feb/2026:18:42:12] (root_api-) Final JSON =  {"status":"ok","message":"","Errorcode":"","data":{"ed_role":"author"}}
[02/Feb/2026:18:42:12] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:42:12] (root_api-) op => get-my-contents-card-info ,user_id => 184 ,course_id => 25 ,deckId => 83 ,cardId => 2469 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:18:42:12] (root_api-) OP= get-my-contents-card-info of page root_api.php
[02/Feb/2026:18:42:12] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:42:12:0212~2026-02-02 18:42:12~success
[02/Feb/2026:18:42:12] (root_api-) serviceName course_data
[02/Feb/2026:18:42:12] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:42:12] (root_api-) op => getCourseDetail ,course_id => 25 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:18:42:12] (root_api-) OP= getCourseDetail of page root_api.php
[02/Feb/2026:18:42:12] (root_api-) serviceName course_data
[02/Feb/2026:18:42:12] (root_api-) Query~SELECT tc.card_id,tc.card_style,tc.card_title,tc.card_image_url,tc.card_video_url, CASE WHEN tc.card_style = 0 THEN 'Text' ELSE 'Image' END AS card_styleText  , tc.question_text, tc.status AS cardStatus, tc.answer_text, dc.deck_id,dc.sequence as cardSequence, tc.version, tc.card_parent_id
            FROM tbl_card tc
            INNER JOIN tbl_deck_card dc ON dc.card_id = tc.card_id
            Where dc.deck_id = '83' AND tc.card_id = '2469' AND tc.card_type = 'main' /*AND tc.created_by = '184'*/~2026-02-02 18:42:12:0212~2026-02-02 18:42:12~success
[02/Feb/2026:18:42:12] (root_api-) Query~select tc.card_parent_id, dc.deck_id as card_parent_deckid, tcd.course_id as card_parent_courseid from tbl_card tc, tbl_deck_card dc, tbl_course_deck tcd WHERE tc.card_parent_id=2469 AND tc.version = 0 AND tc.card_parent_id=dc.card_id AND dc.deck_id=tcd.deck_id~2026-02-02 18:42:12:0212~2026-02-02 18:42:12~success
[02/Feb/2026:18:42:12] (root_api-) Query~SELECT * FROM tbl_course where course_id = '25' AND status NOT IN('Discard')~2026-02-02 18:42:12:0212~2026-02-02 18:42:12~success
[02/Feb/2026:18:42:12] (root_api-) Query~select tc.card_id as card_child_id, dc.deck_id as card_child_deckid, tcd.course_id as card_child_courseid from tbl_card tc, tbl_deck_card dc, tbl_course_deck tcd WHERE tc.card_parent_id=2469 AND tc.version = 2 AND tc.card_parent_id=dc.card_id AND dc.deck_id=tcd.deck_id~2026-02-02 18:42:12:0212~2026-02-02 18:42:12~success
[02/Feb/2026:18:42:12] (root_api-) Final JSON =  {"status":"ok",
                    "message":"",
                    "Errorcode":"",
                    "data":{"card_id":"2469","card_style":"0","card_title":"Card#2469","card_image_url":"","card_video_url":"","card_styleText":"Text","question_text":"","cardStatus":"Draft","answer_text":"","deck_id":"83","cardSequence":"11","version":"1","card_parent_id":null,"card_parent_deckid":null,"card_parent_courseid":null,"card_child_id":null,"card_child_deckid":null,"card_child_courseid":null}}
[02/Feb/2026:18:42:12] (root_api-) Query~SELECT course_image_id, course_image, sequence, status FROM tbl_course_images where course_id = 25 ORDER BY sequence DESC~2026-02-02 18:42:12:0212~2026-02-02 18:42:12~success
[02/Feb/2026:18:42:12] (root_api-) Query~select course_id as prev_course_id from tbl_course where course_parent_id = 25 AND version = 0 AND status NOT IN('Discard')~2026-02-02 18:42:12:0212~2026-02-02 18:42:12~success
[02/Feb/2026:18:42:12] (root_api-) Query~select course_id as next_course_id from tbl_course where course_parent_id = 25 AND version = 2 AND status NOT IN('Discard')~2026-02-02 18:42:12:0212~2026-02-02 18:42:12~success
[02/Feb/2026:18:42:12] (root_api-) Final JSON =  {"status":"ok","message":"Course Details fetched Successfully","Errorcode":"","data":[{"course_id":"25","course_parent_id":"25","version":"1","org_id":"2","course_name":"Grade 8 Mathematics","short_name":"","status":"Draft","eval_id":"1","course_desc":"Grade 8 Mathematics aims to build strong foundational skills required to prepare learners for higher grades of mathematics and develop strong, appropriate mathematical reasoning and logical thinking. ","amount":"0","currency":null,"pay_type":"paid","course_brief":null,"course_duration":"16","background_color":"","text_color":"","creation_date":"2025-07-16 13:21:03","created_by":"184","updation_date":"2026-01-07 12:53:22","updated_by":"184","images":[],"parentid":"","childid":""}]}
[02/Feb/2026:18:42:12] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:42:12] (root_api-) op => get-my-contents-deck-info ,user_id => 184 ,course_id => 25 ,deckId => 83 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:18:42:12] (root_api-) OP= get-my-contents-deck-info of page root_api.php
[02/Feb/2026:18:42:12] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:42:12:0212~2026-02-02 18:42:12~success
[02/Feb/2026:18:42:12] (root_api-) serviceName course_data
[02/Feb/2026:18:42:12] (root_api-) Query~SELECT td.deck_id, td.created_by, tcd.course_id, 
            ifnull(tcd.deck_name,td.deck_name) deck_name,
            ifnull(tcd.short_name,td.short_name) short_name,
            ifnull(tcd.eval_id,td.eval_id) eval_id,
            ifnull(tcd.deck_desc,td.deck_desc) deck_desc,
            ifnull(tcd.deck_brief,td.deck_brief) deck_brief,
            td.status AS deckStatus,
            td.version
            FROM tbl_deck td 
            INNER JOIN tbl_course_deck tcd ON tcd.deck_id = td.deck_id AND course_id = '25' AND tcd.created_by = '184'
            Where td.deck_id = '83' AND td.deck_type = 'main' AND td.created_by = '184'~2026-02-02 18:42:12:0212~2026-02-02 18:42:12~success
[02/Feb/2026:18:42:12] (root_api-) Query~select td.deck_parent_id, cd.course_id as parent_courseid from tbl_deck td, tbl_course_deck cd where td.deck_id = 83 AND td.deck_parent_id <> 83 AND td.deck_parent_id = cd.deck_id~2026-02-02 18:42:12:0212~2026-02-02 18:42:12~success
[02/Feb/2026:18:42:12] (root_api-) Query~select td.deck_id as deck_child_id, cd.course_id as child_courseid from tbl_deck td, tbl_course_deck cd where td.deck_parent_id = 83 AND td.deck_id <> 83 AND td.deck_id = cd.deck_id~2026-02-02 18:42:12:0212~2026-02-02 18:42:12~success
[02/Feb/2026:18:42:12] (root_api-) Final JSON =  {"status":"ok",
                    "message":"",
                    "Errorcode":"",
                    "data":{"deck_id":"83","created_by":"184","course_id":"25","deck_name":"Data Handling ","short_name":"Data Handling","eval_id":"1","deck_desc":"Data handling helps learners interpret and understand the various pieces of information that may be collected when looking at data as well as different ways to summarise and read data. ","deck_brief":"","deckStatus":"Draft","version":"1","parentid":"","childid":""}}
[02/Feb/2026:18:42:13] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:42:13] (root_api-) op => api-refresh ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => common_data ,
[02/Feb/2026:18:42:13] (root_api-) OP= api-refresh of page root_api.php
[02/Feb/2026:18:42:13] (root_api-) serviceName common_data
[02/Feb/2026:18:42:13] (root_api-) Final JSON =  {"status":"ok","message":"","Errorcode":"","data":""}
[02/Feb/2026:18:42:13] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:42:13] (root_api-) op => getSwitchRoles ,user_id => 184 ,org_id => 1 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => user_data ,
[02/Feb/2026:18:42:13] (root_api-) OP= getSwitchRoles of page root_api.php
[02/Feb/2026:18:42:13] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:42:13:0213~2026-02-02 18:42:13~success
[02/Feb/2026:18:42:13] (root_api-) Query~SELECT count(1) as cnt FROM tbl_org  WHERE status = 'Active' AND org_id ='1'~2026-02-02 18:42:13:0213~2026-02-02 18:42:13~success
[02/Feb/2026:18:42:13] (root_api-) Query~SELECT count(1) as cnt FROM tbl_user_org u WHERE u.status = 'Active' AND u.user_id ='184' AND  org_id ='1'~2026-02-02 18:42:13:0213~2026-02-02 18:42:13~success
[02/Feb/2026:18:42:13] (root_api-) serviceName user_data
[02/Feb/2026:18:42:13] (root_api-) Query~SELECT u.user_org_id, u.org_id, u.role_id, um.email,o.org_name,r.role_name,o.short_name,CONCAT(u.role_id,'_',u.org_id) as user_org_role
            FROM tbl_user_org u 
            inner join tbl_org o on u.org_id=o.org_id
            inner join tbl_role_master r on r.role_id=u.role_id
            inner join tbl_user_master um on u.user_id = um.user_id
            where u.user_id= 184~2026-02-02 18:42:13:0213~2026-02-02 18:42:13~success
[02/Feb/2026:18:42:13] (root_api-) Final JSON =  {"status":"ok","message":"User Details fetched Successfully!!","Errorcode":"","data":[{"user_org_id":"225","org_id":"1","role_id":"3","email":"alhenaude20@gmail.com","org_name":"University Of Cape Town","role_name":"Learner","short_name":"UCT","user_org_role":"3_1"},{"user_org_id":"226","org_id":"2","role_id":"2","email":"alhenaude20@gmail.com","org_name":"C-Institute","role_name":"Educator","short_name":"C-Institute","user_org_role":"2_2"}]}
[02/Feb/2026:18:42:27] (root_api-) token =  IP = 169.0.141.180
[02/Feb/2026:18:42:27] (root_api-) 
[02/Feb/2026:18:42:27] (root_api-) OP=  of page root_api.php
[02/Feb/2026:18:42:27] (root_api-) Final JSON =  { "status":"error",
					"message":"Invalid Session",
					"Errorcode":"err100",
					"data":{}}
[02/Feb/2026:18:42:27] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:42:27] (root_api-) op => user-card-operation ,userId => 184 ,courseId => 25 ,cardDeckMode => edit ,cardDeckId => 83 ,questionText => <p>What is a questionnaire?</p><p><br></p> ,answerText => <p>A questionnaire is a list of questions used to gather data from respondents.&nbsp;</p><p><br></p> ,editCardId => 2469 ,action => SAVE_AND_NEXT ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => deck_data ,
[02/Feb/2026:18:42:27] (root_api-) OP= user-card-operation of page root_api.php
[02/Feb/2026:18:42:27] (root_api-) serviceName deck_data
[02/Feb/2026:18:42:27] (root_api-) Query~SELECT count(1) as deckCardCount FROM tbl_deck_card WHERE deck_id = '83' AND card_id = '2469'~2026-02-02 18:42:27:0227~2026-02-02 18:42:27~success
[02/Feb/2026:18:42:27] (root_api-) Query~SELECT question_text, answer_text FROM tbl_card  WHERE card_id = '2469'~2026-02-02 18:42:27:0227~2026-02-02 18:42:27~success
[02/Feb/2026:18:42:27] (root_api-) In case Card Updated query = UPDATE tbl_card SET card_style = '0' , question_text = '<p>What is a questionnaire?</p><p><br></p>', answer_text = '<p>A questionnaire is a list of questions used to gather data from respondents.&nbsp;</p><p><br></p>', card_type='main', updation_date = NOW(), updated_by = '184', card_title = '', card_image_url = '', 
                    onlyTextQuestion = '', onlyTextAnswer = '' 
                    WHERE card_id = '2469'
[02/Feb/2026:18:42:27] (root_api-) Query~UPDATE tbl_card SET card_style = '0' , question_text = '<p>What is a questionnaire?</p><p><br></p>', answer_text = '<p>A questionnaire is a list of questions used to gather data from respondents.&nbsp;</p><p><br></p>', card_type='main', updation_date = NOW(), updated_by = '184', card_title = '', card_image_url = '', 
                    onlyTextQuestion = '', onlyTextAnswer = '' 
                    WHERE card_id = '2469'~2026-02-02 18:42:27:0227~2026-02-02 18:42:27~success
[02/Feb/2026:18:42:27] (root_api-) Final JSON =  {"status":"ok","message":"Card Created Successfully!!","Errorcode":"","data":"","action":"SAVE_AND_NEXT"}
[02/Feb/2026:18:42:28] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:42:28] (root_api-) op => getSwitchRoles ,user_id => 184 ,org_id => 1 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => user_data ,
[02/Feb/2026:18:42:28] (root_api-) OP= getSwitchRoles of page root_api.php
[02/Feb/2026:18:42:28] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:42:28:0228~2026-02-02 18:42:28~success
[02/Feb/2026:18:42:28] (root_api-) Query~SELECT count(1) as cnt FROM tbl_org  WHERE status = 'Active' AND org_id ='1'~2026-02-02 18:42:28:0228~2026-02-02 18:42:28~success
[02/Feb/2026:18:42:28] (root_api-) Query~SELECT count(1) as cnt FROM tbl_user_org u WHERE u.status = 'Active' AND u.user_id ='184' AND  org_id ='1'~2026-02-02 18:42:28:0228~2026-02-02 18:42:28~success
[02/Feb/2026:18:42:28] (root_api-) serviceName user_data
[02/Feb/2026:18:42:28] (root_api-) Query~SELECT u.user_org_id, u.org_id, u.role_id, um.email,o.org_name,r.role_name,o.short_name,CONCAT(u.role_id,'_',u.org_id) as user_org_role
            FROM tbl_user_org u 
            inner join tbl_org o on u.org_id=o.org_id
            inner join tbl_role_master r on r.role_id=u.role_id
            inner join tbl_user_master um on u.user_id = um.user_id
            where u.user_id= 184~2026-02-02 18:42:28:0228~2026-02-02 18:42:28~success
[02/Feb/2026:18:42:28] (root_api-) Final JSON =  {"status":"ok","message":"User Details fetched Successfully!!","Errorcode":"","data":[{"user_org_id":"225","org_id":"1","role_id":"3","email":"alhenaude20@gmail.com","org_name":"University Of Cape Town","role_name":"Learner","short_name":"UCT","user_org_role":"3_1"},{"user_org_id":"226","org_id":"2","role_id":"2","email":"alhenaude20@gmail.com","org_name":"C-Institute","role_name":"Educator","short_name":"C-Institute","user_org_role":"2_2"}]}
[02/Feb/2026:18:42:29] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:42:29] (root_api-) op => createBlankCard ,course_id => 25 ,cardDeckId => 83 ,userId => 184 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => deck_data ,
[02/Feb/2026:18:42:29] (root_api-) OP= createBlankCard of page root_api.php
[02/Feb/2026:18:42:29] (root_api-) serviceName deck_data
[02/Feb/2026:18:42:29] (root_api-) Query~SELECT count(1) as deckCount FROM tbl_deck WHERE deck_id = '83'~2026-02-02 18:42:29:0229~2026-02-02 18:42:29~success
[02/Feb/2026:18:42:29] (root_api-) Query~select ifnull(max(card_parent_id),0)+1 as maxId from tbl_card_parent~2026-02-02 18:42:29:0229~2026-02-02 18:42:29~success
[02/Feb/2026:18:42:29] (root_api-) In case tbl_card_parent Insert query = INSERT into tbl_card_parent (card_parent_id, last_version, draft_version, published_version, creation_date, created_by) 
                    VALUES (2470,'1','1','0', NOW(), '184')
[02/Feb/2026:18:42:29] (root_api-) Query~INSERT into tbl_card_parent (card_parent_id, last_version, draft_version, published_version, creation_date, created_by) 
                    VALUES (2470,'1','1','0', NOW(), '184')~2026-02-02 18:42:29:0229~2026-02-02 18:42:29~success
[02/Feb/2026:18:42:29] (root_api-) Query~select ifnull(max(card_parent_id),0) as lastInsertedId from tbl_card_parent~2026-02-02 18:42:29:0229~2026-02-02 18:42:29~success
[02/Feb/2026:18:42:29] (root_api-) Query~select ifnull(max(card_id),0)+1 as maxId from tbl_card~2026-02-02 18:42:29:0229~2026-02-02 18:42:29~success
[02/Feb/2026:18:42:29] (root_api-) In case tbl_card Insert query = INSERT into tbl_card (card_id, card_parent_id, version, card_style, status, card_type, question_text, answer_text, creation_date, created_by) 
                     VALUES (2470, 2470,  1, '0','Draft','main','','', NOW(), '184')
[02/Feb/2026:18:42:29] (root_api-) Query~INSERT into tbl_card (card_id, card_parent_id, version, card_style, status, card_type, question_text, answer_text, creation_date, created_by) 
                     VALUES (2470, 2470,  1, '0','Draft','main','','', NOW(), '184')~2026-02-02 18:42:29:0229~2026-02-02 18:42:29~success
[02/Feb/2026:18:42:29] (root_api-) Query~select ifnull(max(card_id),0) as lastInsertedId from tbl_card~2026-02-02 18:42:29:0229~2026-02-02 18:42:29~success
[02/Feb/2026:18:42:29] (root_api-) Query~UPDATE tbl_card set card_title = 'Card#2470' WHERE card_id= 2470~2026-02-02 18:42:29:0229~2026-02-02 18:42:29~success
[02/Feb/2026:18:42:29] (root_api-) Query~SELECT IFNULL(MAX(sequence), 0) as lastSequenceNumber FROM tbl_deck_card WHERE deck_id = '83'~2026-02-02 18:42:29:0229~2026-02-02 18:42:29~success
[02/Feb/2026:18:42:29] (root_api-) Query~select ifnull(max(deck_card_id),0)+1 as maxId from tbl_deck_card~2026-02-02 18:42:29:0229~2026-02-02 18:42:29~success
[02/Feb/2026:18:42:29] (root_api-) In case tbl_deck_card Insert query = INSERT into tbl_deck_card (deck_card_id, deck_id, card_id, sequence, creation_date, created_by) 
                        VALUES (2470,'83','2470','12', NOW(), '184')
[02/Feb/2026:18:42:29] (root_api-) Query~INSERT into tbl_deck_card (deck_card_id, deck_id, card_id, sequence, creation_date, created_by) 
                        VALUES (2470,'83','2470','12', NOW(), '184')~2026-02-02 18:42:29:0229~2026-02-02 18:42:29~success
[02/Feb/2026:18:42:29] (root_api-) Final JSON =  {"status":"ok","message":"Card inserted Successfully!!","Errorcode":"","data":"2470"}
[02/Feb/2026:18:42:29] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:42:29] (root_api-) op => getSwitchRoles ,user_id => 184 ,org_id => 1 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => user_data ,
[02/Feb/2026:18:42:29] (root_api-) OP= getSwitchRoles of page root_api.php
[02/Feb/2026:18:42:29] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:42:29:0229~2026-02-02 18:42:29~success
[02/Feb/2026:18:42:29] (root_api-) Query~SELECT count(1) as cnt FROM tbl_org  WHERE status = 'Active' AND org_id ='1'~2026-02-02 18:42:29:0229~2026-02-02 18:42:29~success
[02/Feb/2026:18:42:29] (root_api-) Query~SELECT count(1) as cnt FROM tbl_user_org u WHERE u.status = 'Active' AND u.user_id ='184' AND  org_id ='1'~2026-02-02 18:42:29:0229~2026-02-02 18:42:29~success
[02/Feb/2026:18:42:29] (root_api-) serviceName user_data
[02/Feb/2026:18:42:29] (root_api-) Query~SELECT u.user_org_id, u.org_id, u.role_id, um.email,o.org_name,r.role_name,o.short_name,CONCAT(u.role_id,'_',u.org_id) as user_org_role
            FROM tbl_user_org u 
            inner join tbl_org o on u.org_id=o.org_id
            inner join tbl_role_master r on r.role_id=u.role_id
            inner join tbl_user_master um on u.user_id = um.user_id
            where u.user_id= 184~2026-02-02 18:42:29:0229~2026-02-02 18:42:29~success
[02/Feb/2026:18:42:29] (root_api-) Final JSON =  {"status":"ok","message":"User Details fetched Successfully!!","Errorcode":"","data":[{"user_org_id":"225","org_id":"1","role_id":"3","email":"alhenaude20@gmail.com","org_name":"University Of Cape Town","role_name":"Learner","short_name":"UCT","user_org_role":"3_1"},{"user_org_id":"226","org_id":"2","role_id":"2","email":"alhenaude20@gmail.com","org_name":"C-Institute","role_name":"Educator","short_name":"C-Institute","user_org_role":"2_2"}]}
[02/Feb/2026:18:42:29] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:42:29] (root_api-) op => getUsersCourseRole ,user_id => 184 ,course_id => 25 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:18:42:29] (root_api-) OP= getUsersCourseRole of page root_api.php
[02/Feb/2026:18:42:29] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:42:29:0229~2026-02-02 18:42:29~success
[02/Feb/2026:18:42:29] (root_api-) serviceName course_data
[02/Feb/2026:18:42:29] (root_api-) Query~SELECT ed_role FROM tbl_course_educator WHERE  course_id = '25' AND user_id = 184~2026-02-02 18:42:29:0229~2026-02-02 18:42:29~success
[02/Feb/2026:18:42:29] (root_api-) Final JSON =  {"status":"ok","message":"","Errorcode":"","data":{"ed_role":"author"}}
[02/Feb/2026:18:42:30] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:42:30] (root_api-) op => getCourseDetail ,course_id => 25 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:18:42:30] (root_api-) OP= getCourseDetail of page root_api.php
[02/Feb/2026:18:42:30] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:42:30] (root_api-) serviceName course_data
[02/Feb/2026:18:42:30] (root_api-) op => get-my-contents-deck-info ,user_id => 184 ,course_id => 25 ,deckId => 83 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:18:42:30] (root_api-) OP= get-my-contents-deck-info of page root_api.php
[02/Feb/2026:18:42:30] (root_api-) Query~SELECT * FROM tbl_course where course_id = '25' AND status NOT IN('Discard')~2026-02-02 18:42:30:0230~2026-02-02 18:42:30~success
[02/Feb/2026:18:42:30] (root_api-) Query~SELECT course_image_id, course_image, sequence, status FROM tbl_course_images where course_id = 25 ORDER BY sequence DESC~2026-02-02 18:42:30:0230~2026-02-02 18:42:30~success
[02/Feb/2026:18:42:30] (root_api-) Query~select course_id as prev_course_id from tbl_course where course_parent_id = 25 AND version = 0 AND status NOT IN('Discard')~2026-02-02 18:42:30:0230~2026-02-02 18:42:30~success
[02/Feb/2026:18:42:30] (root_api-) Query~select course_id as next_course_id from tbl_course where course_parent_id = 25 AND version = 2 AND status NOT IN('Discard')~2026-02-02 18:42:30:0230~2026-02-02 18:42:30~success
[02/Feb/2026:18:42:30] (root_api-) Final JSON =  {"status":"ok","message":"Course Details fetched Successfully","Errorcode":"","data":[{"course_id":"25","course_parent_id":"25","version":"1","org_id":"2","course_name":"Grade 8 Mathematics","short_name":"","status":"Draft","eval_id":"1","course_desc":"Grade 8 Mathematics aims to build strong foundational skills required to prepare learners for higher grades of mathematics and develop strong, appropriate mathematical reasoning and logical thinking. ","amount":"0","currency":null,"pay_type":"paid","course_brief":null,"course_duration":"16","background_color":"","text_color":"","creation_date":"2025-07-16 13:21:03","created_by":"184","updation_date":"2026-01-07 12:53:22","updated_by":"184","images":[],"parentid":"","childid":""}]}
[02/Feb/2026:18:42:30] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:42:30] (root_api-) op => get-my-contents-card-info ,user_id => 184 ,course_id => 25 ,deckId => 83 ,cardId => 2470 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:18:42:30] (root_api-) OP= get-my-contents-card-info of page root_api.php
[02/Feb/2026:18:42:30] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:42:30:0230~2026-02-02 18:42:30~success
[02/Feb/2026:18:42:30] (root_api-) serviceName course_data
[02/Feb/2026:18:42:30] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:42:30:0230~2026-02-02 18:42:30~success
[02/Feb/2026:18:42:30] (root_api-) serviceName course_data
[02/Feb/2026:18:42:30] (root_api-) Query~SELECT td.deck_id, td.created_by, tcd.course_id, 
            ifnull(tcd.deck_name,td.deck_name) deck_name,
            ifnull(tcd.short_name,td.short_name) short_name,
            ifnull(tcd.eval_id,td.eval_id) eval_id,
            ifnull(tcd.deck_desc,td.deck_desc) deck_desc,
            ifnull(tcd.deck_brief,td.deck_brief) deck_brief,
            td.status AS deckStatus,
            td.version
            FROM tbl_deck td 
            INNER JOIN tbl_course_deck tcd ON tcd.deck_id = td.deck_id AND course_id = '25' AND tcd.created_by = '184'
            Where td.deck_id = '83' AND td.deck_type = 'main' AND td.created_by = '184'~2026-02-02 18:42:30:0230~2026-02-02 18:42:30~success
[02/Feb/2026:18:42:30] (root_api-) Query~select td.deck_parent_id, cd.course_id as parent_courseid from tbl_deck td, tbl_course_deck cd where td.deck_id = 83 AND td.deck_parent_id <> 83 AND td.deck_parent_id = cd.deck_id~2026-02-02 18:42:30:0230~2026-02-02 18:42:30~success
[02/Feb/2026:18:42:30] (root_api-) Query~SELECT tc.card_id,tc.card_style,tc.card_title,tc.card_image_url,tc.card_video_url, CASE WHEN tc.card_style = 0 THEN 'Text' ELSE 'Image' END AS card_styleText  , tc.question_text, tc.status AS cardStatus, tc.answer_text, dc.deck_id,dc.sequence as cardSequence, tc.version, tc.card_parent_id
            FROM tbl_card tc
            INNER JOIN tbl_deck_card dc ON dc.card_id = tc.card_id
            Where dc.deck_id = '83' AND tc.card_id = '2470' AND tc.card_type = 'main' /*AND tc.created_by = '184'*/~2026-02-02 18:42:30:0230~2026-02-02 18:42:30~success
[02/Feb/2026:18:42:30] (root_api-) Query~select tc.card_parent_id, dc.deck_id as card_parent_deckid, tcd.course_id as card_parent_courseid from tbl_card tc, tbl_deck_card dc, tbl_course_deck tcd WHERE tc.card_parent_id=2470 AND tc.version = 0 AND tc.card_parent_id=dc.card_id AND dc.deck_id=tcd.deck_id~2026-02-02 18:42:30:0230~2026-02-02 18:42:30~success
[02/Feb/2026:18:42:30] (root_api-) Query~select td.deck_id as deck_child_id, cd.course_id as child_courseid from tbl_deck td, tbl_course_deck cd where td.deck_parent_id = 83 AND td.deck_id <> 83 AND td.deck_id = cd.deck_id~2026-02-02 18:42:30:0230~2026-02-02 18:42:30~success
[02/Feb/2026:18:42:30] (root_api-) Final JSON =  {"status":"ok",
                    "message":"",
                    "Errorcode":"",
                    "data":{"deck_id":"83","created_by":"184","course_id":"25","deck_name":"Data Handling ","short_name":"Data Handling","eval_id":"1","deck_desc":"Data handling helps learners interpret and understand the various pieces of information that may be collected when looking at data as well as different ways to summarise and read data. ","deck_brief":"","deckStatus":"Draft","version":"1","parentid":"","childid":""}}
[02/Feb/2026:18:42:30] (root_api-) Query~select tc.card_id as card_child_id, dc.deck_id as card_child_deckid, tcd.course_id as card_child_courseid from tbl_card tc, tbl_deck_card dc, tbl_course_deck tcd WHERE tc.card_parent_id=2470 AND tc.version = 2 AND tc.card_parent_id=dc.card_id AND dc.deck_id=tcd.deck_id~2026-02-02 18:42:30:0230~2026-02-02 18:42:30~success
[02/Feb/2026:18:42:30] (root_api-) Final JSON =  {"status":"ok",
                    "message":"",
                    "Errorcode":"",
                    "data":{"card_id":"2470","card_style":"0","card_title":"Card#2470","card_image_url":"","card_video_url":"","card_styleText":"Text","question_text":"","cardStatus":"Draft","answer_text":"","deck_id":"83","cardSequence":"12","version":"1","card_parent_id":null,"card_parent_deckid":null,"card_parent_courseid":null,"card_child_id":null,"card_child_deckid":null,"card_child_courseid":null}}
[02/Feb/2026:18:42:30] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:42:30] (root_api-) op => api-refresh ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => common_data ,
[02/Feb/2026:18:42:30] (root_api-) OP= api-refresh of page root_api.php
[02/Feb/2026:18:42:30] (root_api-) serviceName common_data
[02/Feb/2026:18:42:30] (root_api-) Final JSON =  {"status":"ok","message":"","Errorcode":"","data":""}
[02/Feb/2026:18:42:48] (root_api-) token =  IP = 169.0.141.180
[02/Feb/2026:18:42:48] (root_api-) 
[02/Feb/2026:18:42:48] (root_api-) OP=  of page root_api.php
[02/Feb/2026:18:42:48] (root_api-) Final JSON =  { "status":"error",
					"message":"Invalid Session",
					"Errorcode":"err100",
					"data":{}}
[02/Feb/2026:18:42:48] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:42:48] (root_api-) op => user-card-operation ,userId => 184 ,courseId => 25 ,cardDeckMode => edit ,cardDeckId => 83 ,questionText => <p>What is a respondent?</p><p><br></p> ,answerText => <p>A respondent is the person who answers/responds to the questions.</p><p><br></p> ,editCardId => 2470 ,action => SAVE_AND_NEXT ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => deck_data ,
[02/Feb/2026:18:42:48] (root_api-) OP= user-card-operation of page root_api.php
[02/Feb/2026:18:42:48] (root_api-) serviceName deck_data
[02/Feb/2026:18:42:48] (root_api-) Query~SELECT count(1) as deckCardCount FROM tbl_deck_card WHERE deck_id = '83' AND card_id = '2470'~2026-02-02 18:42:48:0248~2026-02-02 18:42:48~success
[02/Feb/2026:18:42:48] (root_api-) Query~SELECT question_text, answer_text FROM tbl_card  WHERE card_id = '2470'~2026-02-02 18:42:48:0248~2026-02-02 18:42:48~success
[02/Feb/2026:18:42:48] (root_api-) In case Card Updated query = UPDATE tbl_card SET card_style = '0' , question_text = '<p>What is a respondent?</p><p><br></p>', answer_text = '<p>A respondent is the person who answers/responds to the questions.</p><p><br></p>', card_type='main', updation_date = NOW(), updated_by = '184', card_title = '', card_image_url = '', 
                    onlyTextQuestion = '', onlyTextAnswer = '' 
                    WHERE card_id = '2470'
[02/Feb/2026:18:42:48] (root_api-) Query~UPDATE tbl_card SET card_style = '0' , question_text = '<p>What is a respondent?</p><p><br></p>', answer_text = '<p>A respondent is the person who answers/responds to the questions.</p><p><br></p>', card_type='main', updation_date = NOW(), updated_by = '184', card_title = '', card_image_url = '', 
                    onlyTextQuestion = '', onlyTextAnswer = '' 
                    WHERE card_id = '2470'~2026-02-02 18:42:48:0248~2026-02-02 18:42:48~success
[02/Feb/2026:18:42:48] (root_api-) Final JSON =  {"status":"ok","message":"Card Created Successfully!!","Errorcode":"","data":"","action":"SAVE_AND_NEXT"}
[02/Feb/2026:18:42:50] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:42:50] (root_api-) op => getSwitchRoles ,user_id => 184 ,org_id => 1 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => user_data ,
[02/Feb/2026:18:42:50] (root_api-) OP= getSwitchRoles of page root_api.php
[02/Feb/2026:18:42:50] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:42:50:0250~2026-02-02 18:42:50~success
[02/Feb/2026:18:42:50] (root_api-) Query~SELECT count(1) as cnt FROM tbl_org  WHERE status = 'Active' AND org_id ='1'~2026-02-02 18:42:50:0250~2026-02-02 18:42:50~success
[02/Feb/2026:18:42:50] (root_api-) Query~SELECT count(1) as cnt FROM tbl_user_org u WHERE u.status = 'Active' AND u.user_id ='184' AND  org_id ='1'~2026-02-02 18:42:50:0250~2026-02-02 18:42:50~success
[02/Feb/2026:18:42:50] (root_api-) serviceName user_data
[02/Feb/2026:18:42:50] (root_api-) Query~SELECT u.user_org_id, u.org_id, u.role_id, um.email,o.org_name,r.role_name,o.short_name,CONCAT(u.role_id,'_',u.org_id) as user_org_role
            FROM tbl_user_org u 
            inner join tbl_org o on u.org_id=o.org_id
            inner join tbl_role_master r on r.role_id=u.role_id
            inner join tbl_user_master um on u.user_id = um.user_id
            where u.user_id= 184~2026-02-02 18:42:50:0250~2026-02-02 18:42:50~success
[02/Feb/2026:18:42:50] (root_api-) Final JSON =  {"status":"ok","message":"User Details fetched Successfully!!","Errorcode":"","data":[{"user_org_id":"225","org_id":"1","role_id":"3","email":"alhenaude20@gmail.com","org_name":"University Of Cape Town","role_name":"Learner","short_name":"UCT","user_org_role":"3_1"},{"user_org_id":"226","org_id":"2","role_id":"2","email":"alhenaude20@gmail.com","org_name":"C-Institute","role_name":"Educator","short_name":"C-Institute","user_org_role":"2_2"}]}
[02/Feb/2026:18:42:51] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:42:51] (root_api-) op => createBlankCard ,course_id => 25 ,cardDeckId => 83 ,userId => 184 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => deck_data ,
[02/Feb/2026:18:42:51] (root_api-) OP= createBlankCard of page root_api.php
[02/Feb/2026:18:42:51] (root_api-) serviceName deck_data
[02/Feb/2026:18:42:51] (root_api-) Query~SELECT count(1) as deckCount FROM tbl_deck WHERE deck_id = '83'~2026-02-02 18:42:51:0251~2026-02-02 18:42:51~success
[02/Feb/2026:18:42:51] (root_api-) Query~select ifnull(max(card_parent_id),0)+1 as maxId from tbl_card_parent~2026-02-02 18:42:51:0251~2026-02-02 18:42:51~success
[02/Feb/2026:18:42:51] (root_api-) In case tbl_card_parent Insert query = INSERT into tbl_card_parent (card_parent_id, last_version, draft_version, published_version, creation_date, created_by) 
                    VALUES (2471,'1','1','0', NOW(), '184')
[02/Feb/2026:18:42:51] (root_api-) Query~INSERT into tbl_card_parent (card_parent_id, last_version, draft_version, published_version, creation_date, created_by) 
                    VALUES (2471,'1','1','0', NOW(), '184')~2026-02-02 18:42:51:0251~2026-02-02 18:42:51~success
[02/Feb/2026:18:42:51] (root_api-) Query~select ifnull(max(card_parent_id),0) as lastInsertedId from tbl_card_parent~2026-02-02 18:42:51:0251~2026-02-02 18:42:51~success
[02/Feb/2026:18:42:51] (root_api-) Query~select ifnull(max(card_id),0)+1 as maxId from tbl_card~2026-02-02 18:42:51:0251~2026-02-02 18:42:51~success
[02/Feb/2026:18:42:51] (root_api-) In case tbl_card Insert query = INSERT into tbl_card (card_id, card_parent_id, version, card_style, status, card_type, question_text, answer_text, creation_date, created_by) 
                     VALUES (2471, 2471,  1, '0','Draft','main','','', NOW(), '184')
[02/Feb/2026:18:42:51] (root_api-) Query~INSERT into tbl_card (card_id, card_parent_id, version, card_style, status, card_type, question_text, answer_text, creation_date, created_by) 
                     VALUES (2471, 2471,  1, '0','Draft','main','','', NOW(), '184')~2026-02-02 18:42:51:0251~2026-02-02 18:42:51~success
[02/Feb/2026:18:42:51] (root_api-) Query~select ifnull(max(card_id),0) as lastInsertedId from tbl_card~2026-02-02 18:42:51:0251~2026-02-02 18:42:51~success
[02/Feb/2026:18:42:51] (root_api-) Query~UPDATE tbl_card set card_title = 'Card#2471' WHERE card_id= 2471~2026-02-02 18:42:51:0251~2026-02-02 18:42:51~success
[02/Feb/2026:18:42:51] (root_api-) Query~SELECT IFNULL(MAX(sequence), 0) as lastSequenceNumber FROM tbl_deck_card WHERE deck_id = '83'~2026-02-02 18:42:51:0251~2026-02-02 18:42:51~success
[02/Feb/2026:18:42:51] (root_api-) Query~select ifnull(max(deck_card_id),0)+1 as maxId from tbl_deck_card~2026-02-02 18:42:51:0251~2026-02-02 18:42:51~success
[02/Feb/2026:18:42:51] (root_api-) In case tbl_deck_card Insert query = INSERT into tbl_deck_card (deck_card_id, deck_id, card_id, sequence, creation_date, created_by) 
                        VALUES (2471,'83','2471','13', NOW(), '184')
[02/Feb/2026:18:42:51] (root_api-) Query~INSERT into tbl_deck_card (deck_card_id, deck_id, card_id, sequence, creation_date, created_by) 
                        VALUES (2471,'83','2471','13', NOW(), '184')~2026-02-02 18:42:51:0251~2026-02-02 18:42:51~success
[02/Feb/2026:18:42:51] (root_api-) Final JSON =  {"status":"ok","message":"Card inserted Successfully!!","Errorcode":"","data":"2471"}
[02/Feb/2026:18:42:51] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:42:51] (root_api-) op => getSwitchRoles ,user_id => 184 ,org_id => 1 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => user_data ,
[02/Feb/2026:18:42:51] (root_api-) OP= getSwitchRoles of page root_api.php
[02/Feb/2026:18:42:51] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:42:51:0251~2026-02-02 18:42:51~success
[02/Feb/2026:18:42:51] (root_api-) Query~SELECT count(1) as cnt FROM tbl_org  WHERE status = 'Active' AND org_id ='1'~2026-02-02 18:42:51:0251~2026-02-02 18:42:51~success
[02/Feb/2026:18:42:51] (root_api-) Query~SELECT count(1) as cnt FROM tbl_user_org u WHERE u.status = 'Active' AND u.user_id ='184' AND  org_id ='1'~2026-02-02 18:42:51:0251~2026-02-02 18:42:51~success
[02/Feb/2026:18:42:51] (root_api-) serviceName user_data
[02/Feb/2026:18:42:51] (root_api-) Query~SELECT u.user_org_id, u.org_id, u.role_id, um.email,o.org_name,r.role_name,o.short_name,CONCAT(u.role_id,'_',u.org_id) as user_org_role
            FROM tbl_user_org u 
            inner join tbl_org o on u.org_id=o.org_id
            inner join tbl_role_master r on r.role_id=u.role_id
            inner join tbl_user_master um on u.user_id = um.user_id
            where u.user_id= 184~2026-02-02 18:42:51:0251~2026-02-02 18:42:51~success
[02/Feb/2026:18:42:51] (root_api-) Final JSON =  {"status":"ok","message":"User Details fetched Successfully!!","Errorcode":"","data":[{"user_org_id":"225","org_id":"1","role_id":"3","email":"alhenaude20@gmail.com","org_name":"University Of Cape Town","role_name":"Learner","short_name":"UCT","user_org_role":"3_1"},{"user_org_id":"226","org_id":"2","role_id":"2","email":"alhenaude20@gmail.com","org_name":"C-Institute","role_name":"Educator","short_name":"C-Institute","user_org_role":"2_2"}]}
[02/Feb/2026:18:42:51] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:42:51] (root_api-) op => getUsersCourseRole ,user_id => 184 ,course_id => 25 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:18:42:51] (root_api-) OP= getUsersCourseRole of page root_api.php
[02/Feb/2026:18:42:51] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:42:51:0251~2026-02-02 18:42:51~success
[02/Feb/2026:18:42:51] (root_api-) serviceName course_data
[02/Feb/2026:18:42:51] (root_api-) Query~SELECT ed_role FROM tbl_course_educator WHERE  course_id = '25' AND user_id = 184~2026-02-02 18:42:51:0251~2026-02-02 18:42:51~success
[02/Feb/2026:18:42:51] (root_api-) Final JSON =  {"status":"ok","message":"","Errorcode":"","data":{"ed_role":"author"}}
[02/Feb/2026:18:42:52] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:42:52] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:42:52] (root_api-) op => get-my-contents-card-info ,user_id => 184 ,course_id => 25 ,deckId => 83 ,cardId => 2471 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:18:42:52] (root_api-) op => get-my-contents-deck-info ,user_id => 184 ,course_id => 25 ,deckId => 83 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:18:42:52] (root_api-) OP= get-my-contents-card-info of page root_api.php
[02/Feb/2026:18:42:52] (root_api-) OP= get-my-contents-deck-info of page root_api.php
[02/Feb/2026:18:42:52] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:42:52:0252~2026-02-02 18:42:52~success
[02/Feb/2026:18:42:52] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:42:52:0252~2026-02-02 18:42:52~success
[02/Feb/2026:18:42:52] (root_api-) serviceName course_data
[02/Feb/2026:18:42:52] (root_api-) serviceName course_data
[02/Feb/2026:18:42:52] (root_api-) Query~SELECT tc.card_id,tc.card_style,tc.card_title,tc.card_image_url,tc.card_video_url, CASE WHEN tc.card_style = 0 THEN 'Text' ELSE 'Image' END AS card_styleText  , tc.question_text, tc.status AS cardStatus, tc.answer_text, dc.deck_id,dc.sequence as cardSequence, tc.version, tc.card_parent_id
            FROM tbl_card tc
            INNER JOIN tbl_deck_card dc ON dc.card_id = tc.card_id
            Where dc.deck_id = '83' AND tc.card_id = '2471' AND tc.card_type = 'main' /*AND tc.created_by = '184'*/~2026-02-02 18:42:52:0252~2026-02-02 18:42:52~success
[02/Feb/2026:18:42:52] (root_api-) Query~SELECT td.deck_id, td.created_by, tcd.course_id, 
            ifnull(tcd.deck_name,td.deck_name) deck_name,
            ifnull(tcd.short_name,td.short_name) short_name,
            ifnull(tcd.eval_id,td.eval_id) eval_id,
            ifnull(tcd.deck_desc,td.deck_desc) deck_desc,
            ifnull(tcd.deck_brief,td.deck_brief) deck_brief,
            td.status AS deckStatus,
            td.version
            FROM tbl_deck td 
            INNER JOIN tbl_course_deck tcd ON tcd.deck_id = td.deck_id AND course_id = '25' AND tcd.created_by = '184'
            Where td.deck_id = '83' AND td.deck_type = 'main' AND td.created_by = '184'~2026-02-02 18:42:52:0252~2026-02-02 18:42:52~success
[02/Feb/2026:18:42:52] (root_api-) Query~select tc.card_parent_id, dc.deck_id as card_parent_deckid, tcd.course_id as card_parent_courseid from tbl_card tc, tbl_deck_card dc, tbl_course_deck tcd WHERE tc.card_parent_id=2471 AND tc.version = 0 AND tc.card_parent_id=dc.card_id AND dc.deck_id=tcd.deck_id~2026-02-02 18:42:52:0252~2026-02-02 18:42:52~success
[02/Feb/2026:18:42:52] (root_api-) Query~select td.deck_parent_id, cd.course_id as parent_courseid from tbl_deck td, tbl_course_deck cd where td.deck_id = 83 AND td.deck_parent_id <> 83 AND td.deck_parent_id = cd.deck_id~2026-02-02 18:42:52:0252~2026-02-02 18:42:52~success
[02/Feb/2026:18:42:52] (root_api-) Query~select tc.card_id as card_child_id, dc.deck_id as card_child_deckid, tcd.course_id as card_child_courseid from tbl_card tc, tbl_deck_card dc, tbl_course_deck tcd WHERE tc.card_parent_id=2471 AND tc.version = 2 AND tc.card_parent_id=dc.card_id AND dc.deck_id=tcd.deck_id~2026-02-02 18:42:52:0252~2026-02-02 18:42:52~success
[02/Feb/2026:18:42:52] (root_api-) Final JSON =  {"status":"ok",
                    "message":"",
                    "Errorcode":"",
                    "data":{"card_id":"2471","card_style":"0","card_title":"Card#2471","card_image_url":"","card_video_url":"","card_styleText":"Text","question_text":"","cardStatus":"Draft","answer_text":"","deck_id":"83","cardSequence":"13","version":"1","card_parent_id":null,"card_parent_deckid":null,"card_parent_courseid":null,"card_child_id":null,"card_child_deckid":null,"card_child_courseid":null}}
[02/Feb/2026:18:42:52] (root_api-) Query~select td.deck_id as deck_child_id, cd.course_id as child_courseid from tbl_deck td, tbl_course_deck cd where td.deck_parent_id = 83 AND td.deck_id <> 83 AND td.deck_id = cd.deck_id~2026-02-02 18:42:52:0252~2026-02-02 18:42:52~success
[02/Feb/2026:18:42:52] (root_api-) Final JSON =  {"status":"ok",
                    "message":"",
                    "Errorcode":"",
                    "data":{"deck_id":"83","created_by":"184","course_id":"25","deck_name":"Data Handling ","short_name":"Data Handling","eval_id":"1","deck_desc":"Data handling helps learners interpret and understand the various pieces of information that may be collected when looking at data as well as different ways to summarise and read data. ","deck_brief":"","deckStatus":"Draft","version":"1","parentid":"","childid":""}}
[02/Feb/2026:18:42:52] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:42:52] (root_api-) op => getCourseDetail ,course_id => 25 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:18:42:52] (root_api-) OP= getCourseDetail of page root_api.php
[02/Feb/2026:18:42:52] (root_api-) serviceName course_data
[02/Feb/2026:18:42:52] (root_api-) Query~SELECT * FROM tbl_course where course_id = '25' AND status NOT IN('Discard')~2026-02-02 18:42:52:0252~2026-02-02 18:42:52~success
[02/Feb/2026:18:42:52] (root_api-) Query~SELECT course_image_id, course_image, sequence, status FROM tbl_course_images where course_id = 25 ORDER BY sequence DESC~2026-02-02 18:42:52:0252~2026-02-02 18:42:52~success
[02/Feb/2026:18:42:52] (root_api-) Query~select course_id as prev_course_id from tbl_course where course_parent_id = 25 AND version = 0 AND status NOT IN('Discard')~2026-02-02 18:42:52:0252~2026-02-02 18:42:52~success
[02/Feb/2026:18:42:52] (root_api-) Query~select course_id as next_course_id from tbl_course where course_parent_id = 25 AND version = 2 AND status NOT IN('Discard')~2026-02-02 18:42:52:0252~2026-02-02 18:42:52~success
[02/Feb/2026:18:42:52] (root_api-) Final JSON =  {"status":"ok","message":"Course Details fetched Successfully","Errorcode":"","data":[{"course_id":"25","course_parent_id":"25","version":"1","org_id":"2","course_name":"Grade 8 Mathematics","short_name":"","status":"Draft","eval_id":"1","course_desc":"Grade 8 Mathematics aims to build strong foundational skills required to prepare learners for higher grades of mathematics and develop strong, appropriate mathematical reasoning and logical thinking. ","amount":"0","currency":null,"pay_type":"paid","course_brief":null,"course_duration":"16","background_color":"","text_color":"","creation_date":"2025-07-16 13:21:03","created_by":"184","updation_date":"2026-01-07 12:53:22","updated_by":"184","images":[],"parentid":"","childid":""}]}
[02/Feb/2026:18:42:52] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:42:52] (root_api-) op => api-refresh ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => common_data ,
[02/Feb/2026:18:42:52] (root_api-) OP= api-refresh of page root_api.php
[02/Feb/2026:18:42:52] (root_api-) serviceName common_data
[02/Feb/2026:18:42:52] (root_api-) Final JSON =  {"status":"ok","message":"","Errorcode":"","data":""}
[02/Feb/2026:18:46:02] (root_api-) token =  IP = 169.0.141.180
[02/Feb/2026:18:46:02] (root_api-) deckId => 83 ,cardId => 2471 ,courseId => 25 ,mediafor => A ,userId => 184 ,action => cardImage ,op => updateCardImage ,serviceName => course_data ,clid => 66bbc87451ad3590b670daae13ee0619 ,
[02/Feb/2026:18:46:02] (root_api-) OP= updateCardImage of page root_api.php
[02/Feb/2026:18:46:02] (root_api-) serviceName course_data
[02/Feb/2026:18:46:02] (root_api-) Final JSON =  {"status":"ok","message":"","Errorcode":"","data":{"mediafor":"A","img_url":"https:\/\/bo.coglearn.cioinfotech.com\/upload\/courses\/course_25\/deck_83\/card_2471\/image 1 jpeg..jpg"}}
[02/Feb/2026:18:46:50] (root_api-) token =  IP = 169.0.141.180
[02/Feb/2026:18:46:50] (root_api-) 
[02/Feb/2026:18:46:50] (root_api-) OP=  of page root_api.php
[02/Feb/2026:18:46:50] (root_api-) Final JSON =  { "status":"error",
					"message":"Invalid Session",
					"Errorcode":"err100",
					"data":{}}
[02/Feb/2026:18:46:50] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:46:50] (root_api-) op => user-card-operation ,userId => 184 ,courseId => 25 ,cardDeckMode => edit ,cardDeckId => 83 ,questionText => <p>What is a tally table?</p><p><br></p> ,answerText => <p>A tally table makes use of tally marks (l) to easily count data in groups of five.&nbsp;</p><p>The image below represents different tally marks, <font color="#ff0000">not a tally table.</font></p><p><img src="https://bo.coglearn.cioinfotech.com/upload/courses/course_25/deck_83/card_2471/image 1 jpeg..jpg" style="width: 387px;"><br></p><p><br></p><p><br></p> ,editCardId => 2471 ,action => SAVE_AND_NEXT ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => deck_data ,
[02/Feb/2026:18:46:50] (root_api-) OP= user-card-operation of page root_api.php
[02/Feb/2026:18:46:50] (root_api-) serviceName deck_data
[02/Feb/2026:18:46:50] (root_api-) Query~SELECT count(1) as deckCardCount FROM tbl_deck_card WHERE deck_id = '83' AND card_id = '2471'~2026-02-02 18:46:50:0250~2026-02-02 18:46:50~success
[02/Feb/2026:18:46:50] (root_api-) Query~SELECT question_text, answer_text FROM tbl_card  WHERE card_id = '2471'~2026-02-02 18:46:50:0250~2026-02-02 18:46:50~success
[02/Feb/2026:18:46:50] (root_api-) In case Card Updated query = UPDATE tbl_card SET card_style = '0' , question_text = '<p>What is a tally table?</p><p><br></p>', answer_text = '<p>A tally table makes use of tally marks (l) to easily count data in groups of five.&nbsp;</p><p>The image below represents different tally marks, <font color=\"#ff0000\">not a tally table.</font></p><p><img src=\"https://bo.coglearn.cioinfotech.com/upload/courses/course_25/deck_83/card_2471/image 1 jpeg..jpg\" style=\"width: 387px;\"><br></p><p><br></p><p><br></p>', card_type='main', updation_date = NOW(), updated_by = '184', card_title = '', card_image_url = '', 
                    onlyTextQuestion = '', onlyTextAnswer = '' 
                    WHERE card_id = '2471'
[02/Feb/2026:18:46:50] (root_api-) Query~UPDATE tbl_card SET card_style = '0' , question_text = '<p>What is a tally table?</p><p><br></p>', answer_text = '<p>A tally table makes use of tally marks (l) to easily count data in groups of five.&nbsp;</p><p>The image below represents different tally marks, <font color=\"#ff0000\">not a tally table.</font></p><p><img src=\"https://bo.coglearn.cioinfotech.com/upload/courses/course_25/deck_83/card_2471/image 1 jpeg..jpg\" style=\"width: 387px;\"><br></p><p><br></p><p><br></p>', card_type='main', updation_date = NOW(), updated_by = '184', card_title = '', card_image_url = '', 
                    onlyTextQuestion = '', onlyTextAnswer = '' 
                    WHERE card_id = '2471'~2026-02-02 18:46:50:0250~2026-02-02 18:46:50~success
[02/Feb/2026:18:46:50] (root_api-) Final JSON =  {"status":"ok","message":"Card Created Successfully!!","Errorcode":"","data":"","action":"SAVE_AND_NEXT"}
[02/Feb/2026:18:46:51] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:46:51] (root_api-) op => getSwitchRoles ,user_id => 184 ,org_id => 1 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => user_data ,
[02/Feb/2026:18:46:51] (root_api-) OP= getSwitchRoles of page root_api.php
[02/Feb/2026:18:46:51] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:46:51:0251~2026-02-02 18:46:51~success
[02/Feb/2026:18:46:51] (root_api-) Query~SELECT count(1) as cnt FROM tbl_org  WHERE status = 'Active' AND org_id ='1'~2026-02-02 18:46:51:0251~2026-02-02 18:46:51~success
[02/Feb/2026:18:46:51] (root_api-) Query~SELECT count(1) as cnt FROM tbl_user_org u WHERE u.status = 'Active' AND u.user_id ='184' AND  org_id ='1'~2026-02-02 18:46:51:0251~2026-02-02 18:46:51~success
[02/Feb/2026:18:46:51] (root_api-) serviceName user_data
[02/Feb/2026:18:46:51] (root_api-) Query~SELECT u.user_org_id, u.org_id, u.role_id, um.email,o.org_name,r.role_name,o.short_name,CONCAT(u.role_id,'_',u.org_id) as user_org_role
            FROM tbl_user_org u 
            inner join tbl_org o on u.org_id=o.org_id
            inner join tbl_role_master r on r.role_id=u.role_id
            inner join tbl_user_master um on u.user_id = um.user_id
            where u.user_id= 184~2026-02-02 18:46:51:0251~2026-02-02 18:46:51~success
[02/Feb/2026:18:46:51] (root_api-) Final JSON =  {"status":"ok","message":"User Details fetched Successfully!!","Errorcode":"","data":[{"user_org_id":"225","org_id":"1","role_id":"3","email":"alhenaude20@gmail.com","org_name":"University Of Cape Town","role_name":"Learner","short_name":"UCT","user_org_role":"3_1"},{"user_org_id":"226","org_id":"2","role_id":"2","email":"alhenaude20@gmail.com","org_name":"C-Institute","role_name":"Educator","short_name":"C-Institute","user_org_role":"2_2"}]}
[02/Feb/2026:18:46:51] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:46:51] (root_api-) op => createBlankCard ,course_id => 25 ,cardDeckId => 83 ,userId => 184 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => deck_data ,
[02/Feb/2026:18:46:51] (root_api-) OP= createBlankCard of page root_api.php
[02/Feb/2026:18:46:51] (root_api-) serviceName deck_data
[02/Feb/2026:18:46:51] (root_api-) Query~SELECT count(1) as deckCount FROM tbl_deck WHERE deck_id = '83'~2026-02-02 18:46:51:0251~2026-02-02 18:46:51~success
[02/Feb/2026:18:46:51] (root_api-) Query~select ifnull(max(card_parent_id),0)+1 as maxId from tbl_card_parent~2026-02-02 18:46:51:0251~2026-02-02 18:46:51~success
[02/Feb/2026:18:46:51] (root_api-) In case tbl_card_parent Insert query = INSERT into tbl_card_parent (card_parent_id, last_version, draft_version, published_version, creation_date, created_by) 
                    VALUES (2472,'1','1','0', NOW(), '184')
[02/Feb/2026:18:46:51] (root_api-) Query~INSERT into tbl_card_parent (card_parent_id, last_version, draft_version, published_version, creation_date, created_by) 
                    VALUES (2472,'1','1','0', NOW(), '184')~2026-02-02 18:46:51:0251~2026-02-02 18:46:51~success
[02/Feb/2026:18:46:51] (root_api-) Query~select ifnull(max(card_parent_id),0) as lastInsertedId from tbl_card_parent~2026-02-02 18:46:51:0251~2026-02-02 18:46:51~success
[02/Feb/2026:18:46:51] (root_api-) Query~select ifnull(max(card_id),0)+1 as maxId from tbl_card~2026-02-02 18:46:51:0251~2026-02-02 18:46:51~success
[02/Feb/2026:18:46:51] (root_api-) In case tbl_card Insert query = INSERT into tbl_card (card_id, card_parent_id, version, card_style, status, card_type, question_text, answer_text, creation_date, created_by) 
                     VALUES (2472, 2472,  1, '0','Draft','main','','', NOW(), '184')
[02/Feb/2026:18:46:51] (root_api-) Query~INSERT into tbl_card (card_id, card_parent_id, version, card_style, status, card_type, question_text, answer_text, creation_date, created_by) 
                     VALUES (2472, 2472,  1, '0','Draft','main','','', NOW(), '184')~2026-02-02 18:46:51:0251~2026-02-02 18:46:51~success
[02/Feb/2026:18:46:51] (root_api-) Query~select ifnull(max(card_id),0) as lastInsertedId from tbl_card~2026-02-02 18:46:51:0251~2026-02-02 18:46:51~success
[02/Feb/2026:18:46:51] (root_api-) Query~UPDATE tbl_card set card_title = 'Card#2472' WHERE card_id= 2472~2026-02-02 18:46:51:0251~2026-02-02 18:46:51~success
[02/Feb/2026:18:46:51] (root_api-) Query~SELECT IFNULL(MAX(sequence), 0) as lastSequenceNumber FROM tbl_deck_card WHERE deck_id = '83'~2026-02-02 18:46:51:0251~2026-02-02 18:46:51~success
[02/Feb/2026:18:46:51] (root_api-) Query~select ifnull(max(deck_card_id),0)+1 as maxId from tbl_deck_card~2026-02-02 18:46:51:0251~2026-02-02 18:46:51~success
[02/Feb/2026:18:46:51] (root_api-) In case tbl_deck_card Insert query = INSERT into tbl_deck_card (deck_card_id, deck_id, card_id, sequence, creation_date, created_by) 
                        VALUES (2472,'83','2472','14', NOW(), '184')
[02/Feb/2026:18:46:51] (root_api-) Query~INSERT into tbl_deck_card (deck_card_id, deck_id, card_id, sequence, creation_date, created_by) 
                        VALUES (2472,'83','2472','14', NOW(), '184')~2026-02-02 18:46:51:0251~2026-02-02 18:46:51~success
[02/Feb/2026:18:46:51] (root_api-) Final JSON =  {"status":"ok","message":"Card inserted Successfully!!","Errorcode":"","data":"2472"}
[02/Feb/2026:18:46:52] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:46:52] (root_api-) op => getSwitchRoles ,user_id => 184 ,org_id => 1 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => user_data ,
[02/Feb/2026:18:46:52] (root_api-) OP= getSwitchRoles of page root_api.php
[02/Feb/2026:18:46:52] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:46:52:0252~2026-02-02 18:46:52~success
[02/Feb/2026:18:46:52] (root_api-) Query~SELECT count(1) as cnt FROM tbl_org  WHERE status = 'Active' AND org_id ='1'~2026-02-02 18:46:52:0252~2026-02-02 18:46:52~success
[02/Feb/2026:18:46:52] (root_api-) Query~SELECT count(1) as cnt FROM tbl_user_org u WHERE u.status = 'Active' AND u.user_id ='184' AND  org_id ='1'~2026-02-02 18:46:52:0252~2026-02-02 18:46:52~success
[02/Feb/2026:18:46:52] (root_api-) serviceName user_data
[02/Feb/2026:18:46:52] (root_api-) Query~SELECT u.user_org_id, u.org_id, u.role_id, um.email,o.org_name,r.role_name,o.short_name,CONCAT(u.role_id,'_',u.org_id) as user_org_role
            FROM tbl_user_org u 
            inner join tbl_org o on u.org_id=o.org_id
            inner join tbl_role_master r on r.role_id=u.role_id
            inner join tbl_user_master um on u.user_id = um.user_id
            where u.user_id= 184~2026-02-02 18:46:52:0252~2026-02-02 18:46:52~success
[02/Feb/2026:18:46:52] (root_api-) Final JSON =  {"status":"ok","message":"User Details fetched Successfully!!","Errorcode":"","data":[{"user_org_id":"225","org_id":"1","role_id":"3","email":"alhenaude20@gmail.com","org_name":"University Of Cape Town","role_name":"Learner","short_name":"UCT","user_org_role":"3_1"},{"user_org_id":"226","org_id":"2","role_id":"2","email":"alhenaude20@gmail.com","org_name":"C-Institute","role_name":"Educator","short_name":"C-Institute","user_org_role":"2_2"}]}
[02/Feb/2026:18:46:52] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:46:52] (root_api-) op => getUsersCourseRole ,user_id => 184 ,course_id => 25 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:18:46:52] (root_api-) OP= getUsersCourseRole of page root_api.php
[02/Feb/2026:18:46:52] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:46:52:0252~2026-02-02 18:46:52~success
[02/Feb/2026:18:46:52] (root_api-) serviceName course_data
[02/Feb/2026:18:46:52] (root_api-) Query~SELECT ed_role FROM tbl_course_educator WHERE  course_id = '25' AND user_id = 184~2026-02-02 18:46:52:0252~2026-02-02 18:46:52~success
[02/Feb/2026:18:46:52] (root_api-) Final JSON =  {"status":"ok","message":"","Errorcode":"","data":{"ed_role":"author"}}
[02/Feb/2026:18:46:52] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:46:52] (root_api-) op => get-my-contents-card-info ,user_id => 184 ,course_id => 25 ,deckId => 83 ,cardId => 2472 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:18:46:52] (root_api-) OP= get-my-contents-card-info of page root_api.php
[02/Feb/2026:18:46:52] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:46:52:0252~2026-02-02 18:46:52~success
[02/Feb/2026:18:46:52] (root_api-) serviceName course_data
[02/Feb/2026:18:46:52] (root_api-) Query~SELECT tc.card_id,tc.card_style,tc.card_title,tc.card_image_url,tc.card_video_url, CASE WHEN tc.card_style = 0 THEN 'Text' ELSE 'Image' END AS card_styleText  , tc.question_text, tc.status AS cardStatus, tc.answer_text, dc.deck_id,dc.sequence as cardSequence, tc.version, tc.card_parent_id
            FROM tbl_card tc
            INNER JOIN tbl_deck_card dc ON dc.card_id = tc.card_id
            Where dc.deck_id = '83' AND tc.card_id = '2472' AND tc.card_type = 'main' /*AND tc.created_by = '184'*/~2026-02-02 18:46:52:0252~2026-02-02 18:46:52~success
[02/Feb/2026:18:46:52] (root_api-) Query~select tc.card_parent_id, dc.deck_id as card_parent_deckid, tcd.course_id as card_parent_courseid from tbl_card tc, tbl_deck_card dc, tbl_course_deck tcd WHERE tc.card_parent_id=2472 AND tc.version = 0 AND tc.card_parent_id=dc.card_id AND dc.deck_id=tcd.deck_id~2026-02-02 18:46:52:0252~2026-02-02 18:46:52~success
[02/Feb/2026:18:46:52] (root_api-) Query~select tc.card_id as card_child_id, dc.deck_id as card_child_deckid, tcd.course_id as card_child_courseid from tbl_card tc, tbl_deck_card dc, tbl_course_deck tcd WHERE tc.card_parent_id=2472 AND tc.version = 2 AND tc.card_parent_id=dc.card_id AND dc.deck_id=tcd.deck_id~2026-02-02 18:46:52:0252~2026-02-02 18:46:52~success
[02/Feb/2026:18:46:52] (root_api-) Final JSON =  {"status":"ok",
                    "message":"",
                    "Errorcode":"",
                    "data":{"card_id":"2472","card_style":"0","card_title":"Card#2472","card_image_url":"","card_video_url":"","card_styleText":"Text","question_text":"","cardStatus":"Draft","answer_text":"","deck_id":"83","cardSequence":"14","version":"1","card_parent_id":null,"card_parent_deckid":null,"card_parent_courseid":null,"card_child_id":null,"card_child_deckid":null,"card_child_courseid":null}}
[02/Feb/2026:18:46:52] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:46:52] (root_api-) op => get-my-contents-deck-info ,user_id => 184 ,course_id => 25 ,deckId => 83 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:18:46:52] (root_api-) OP= get-my-contents-deck-info of page root_api.php
[02/Feb/2026:18:46:52] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:46:52:0252~2026-02-02 18:46:52~success
[02/Feb/2026:18:46:52] (root_api-) serviceName course_data
[02/Feb/2026:18:46:52] (root_api-) Query~SELECT td.deck_id, td.created_by, tcd.course_id, 
            ifnull(tcd.deck_name,td.deck_name) deck_name,
            ifnull(tcd.short_name,td.short_name) short_name,
            ifnull(tcd.eval_id,td.eval_id) eval_id,
            ifnull(tcd.deck_desc,td.deck_desc) deck_desc,
            ifnull(tcd.deck_brief,td.deck_brief) deck_brief,
            td.status AS deckStatus,
            td.version
            FROM tbl_deck td 
            INNER JOIN tbl_course_deck tcd ON tcd.deck_id = td.deck_id AND course_id = '25' AND tcd.created_by = '184'
            Where td.deck_id = '83' AND td.deck_type = 'main' AND td.created_by = '184'~2026-02-02 18:46:52:0252~2026-02-02 18:46:52~success
[02/Feb/2026:18:46:52] (root_api-) Query~select td.deck_parent_id, cd.course_id as parent_courseid from tbl_deck td, tbl_course_deck cd where td.deck_id = 83 AND td.deck_parent_id <> 83 AND td.deck_parent_id = cd.deck_id~2026-02-02 18:46:52:0252~2026-02-02 18:46:52~success
[02/Feb/2026:18:46:52] (root_api-) Query~select td.deck_id as deck_child_id, cd.course_id as child_courseid from tbl_deck td, tbl_course_deck cd where td.deck_parent_id = 83 AND td.deck_id <> 83 AND td.deck_id = cd.deck_id~2026-02-02 18:46:52:0252~2026-02-02 18:46:52~success
[02/Feb/2026:18:46:52] (root_api-) Final JSON =  {"status":"ok",
                    "message":"",
                    "Errorcode":"",
                    "data":{"deck_id":"83","created_by":"184","course_id":"25","deck_name":"Data Handling ","short_name":"Data Handling","eval_id":"1","deck_desc":"Data handling helps learners interpret and understand the various pieces of information that may be collected when looking at data as well as different ways to summarise and read data. ","deck_brief":"","deckStatus":"Draft","version":"1","parentid":"","childid":""}}
[02/Feb/2026:18:46:52] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:46:52] (root_api-) op => getCourseDetail ,course_id => 25 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:18:46:52] (root_api-) OP= getCourseDetail of page root_api.php
[02/Feb/2026:18:46:52] (root_api-) serviceName course_data
[02/Feb/2026:18:46:52] (root_api-) Query~SELECT * FROM tbl_course where course_id = '25' AND status NOT IN('Discard')~2026-02-02 18:46:52:0252~2026-02-02 18:46:52~success
[02/Feb/2026:18:46:52] (root_api-) Query~SELECT course_image_id, course_image, sequence, status FROM tbl_course_images where course_id = 25 ORDER BY sequence DESC~2026-02-02 18:46:52:0252~2026-02-02 18:46:52~success
[02/Feb/2026:18:46:52] (root_api-) Query~select course_id as prev_course_id from tbl_course where course_parent_id = 25 AND version = 0 AND status NOT IN('Discard')~2026-02-02 18:46:52:0252~2026-02-02 18:46:52~success
[02/Feb/2026:18:46:52] (root_api-) Query~select course_id as next_course_id from tbl_course where course_parent_id = 25 AND version = 2 AND status NOT IN('Discard')~2026-02-02 18:46:52:0252~2026-02-02 18:46:52~success
[02/Feb/2026:18:46:52] (root_api-) Final JSON =  {"status":"ok","message":"Course Details fetched Successfully","Errorcode":"","data":[{"course_id":"25","course_parent_id":"25","version":"1","org_id":"2","course_name":"Grade 8 Mathematics","short_name":"","status":"Draft","eval_id":"1","course_desc":"Grade 8 Mathematics aims to build strong foundational skills required to prepare learners for higher grades of mathematics and develop strong, appropriate mathematical reasoning and logical thinking. ","amount":"0","currency":null,"pay_type":"paid","course_brief":null,"course_duration":"16","background_color":"","text_color":"","creation_date":"2025-07-16 13:21:03","created_by":"184","updation_date":"2026-01-07 12:53:22","updated_by":"184","images":[],"parentid":"","childid":""}]}
[02/Feb/2026:18:46:53] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:46:53] (root_api-) op => api-refresh ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => common_data ,
[02/Feb/2026:18:46:53] (root_api-) OP= api-refresh of page root_api.php
[02/Feb/2026:18:46:53] (root_api-) serviceName common_data
[02/Feb/2026:18:46:53] (root_api-) Final JSON =  {"status":"ok","message":"","Errorcode":"","data":""}
[02/Feb/2026:18:49:02] (root_api-) token =  IP = 169.0.141.180
[02/Feb/2026:18:49:02] (root_api-) deckId => 83 ,cardId => 2472 ,courseId => 25 ,mediafor => A ,userId => 184 ,action => cardImage ,op => updateCardImage ,serviceName => course_data ,clid => 66bbc87451ad3590b670daae13ee0619 ,
[02/Feb/2026:18:49:02] (root_api-) OP= updateCardImage of page root_api.php
[02/Feb/2026:18:49:02] (root_api-) serviceName course_data
[02/Feb/2026:18:49:02] (root_api-) Final JSON =  {"status":"ok","message":"","Errorcode":"","data":{"mediafor":"A","img_url":"https:\/\/bo.coglearn.cioinfotech.com\/upload\/courses\/course_25\/deck_83\/card_2472\/image 2 jpeg..jpg"}}
[02/Feb/2026:18:49:05] (root_api-) token =  IP = 169.0.141.180
[02/Feb/2026:18:49:05] (root_api-) 
[02/Feb/2026:18:49:05] (root_api-) OP=  of page root_api.php
[02/Feb/2026:18:49:05] (root_api-) Final JSON =  { "status":"error",
					"message":"Invalid Session",
					"Errorcode":"err100",
					"data":{}}
[02/Feb/2026:18:49:05] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:49:05] (root_api-) op => user-card-operation ,userId => 184 ,courseId => 25 ,cardDeckMode => edit ,cardDeckId => 83 ,questionText => <p>Draw a diagram to represent 7 using tally marks.&nbsp;</p><p><br></p> ,answerText => <p><img src="https://bo.coglearn.cioinfotech.com/upload/courses/course_25/deck_83/card_2472/image 2 jpeg..jpg" style="width: 100px;"></p><p><br></p> ,editCardId => 2472 ,action => SAVE_AND_NEXT ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => deck_data ,
[02/Feb/2026:18:49:05] (root_api-) OP= user-card-operation of page root_api.php
[02/Feb/2026:18:49:05] (root_api-) serviceName deck_data
[02/Feb/2026:18:49:05] (root_api-) Query~SELECT count(1) as deckCardCount FROM tbl_deck_card WHERE deck_id = '83' AND card_id = '2472'~2026-02-02 18:49:05:0205~2026-02-02 18:49:05~success
[02/Feb/2026:18:49:05] (root_api-) Query~SELECT question_text, answer_text FROM tbl_card  WHERE card_id = '2472'~2026-02-02 18:49:05:0205~2026-02-02 18:49:05~success
[02/Feb/2026:18:49:05] (root_api-) In case Card Updated query = UPDATE tbl_card SET card_style = '0' , question_text = '<p>Draw a diagram to represent 7 using tally marks.&nbsp;</p><p><br></p>', answer_text = '<p><img src=\"https://bo.coglearn.cioinfotech.com/upload/courses/course_25/deck_83/card_2472/image 2 jpeg..jpg\" style=\"width: 100px;\"></p><p><br></p>', card_type='main', updation_date = NOW(), updated_by = '184', card_title = '', card_image_url = '', 
                    onlyTextQuestion = '', onlyTextAnswer = '' 
                    WHERE card_id = '2472'
[02/Feb/2026:18:49:05] (root_api-) Query~UPDATE tbl_card SET card_style = '0' , question_text = '<p>Draw a diagram to represent 7 using tally marks.&nbsp;</p><p><br></p>', answer_text = '<p><img src=\"https://bo.coglearn.cioinfotech.com/upload/courses/course_25/deck_83/card_2472/image 2 jpeg..jpg\" style=\"width: 100px;\"></p><p><br></p>', card_type='main', updation_date = NOW(), updated_by = '184', card_title = '', card_image_url = '', 
                    onlyTextQuestion = '', onlyTextAnswer = '' 
                    WHERE card_id = '2472'~2026-02-02 18:49:05:0205~2026-02-02 18:49:05~success
[02/Feb/2026:18:49:05] (root_api-) Final JSON =  {"status":"ok","message":"Card Created Successfully!!","Errorcode":"","data":"","action":"SAVE_AND_NEXT"}
[02/Feb/2026:18:49:08] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:49:08] (root_api-) op => getSwitchRoles ,user_id => 184 ,org_id => 1 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => user_data ,
[02/Feb/2026:18:49:08] (root_api-) OP= getSwitchRoles of page root_api.php
[02/Feb/2026:18:49:08] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:49:08:0208~2026-02-02 18:49:08~success
[02/Feb/2026:18:49:08] (root_api-) Query~SELECT count(1) as cnt FROM tbl_org  WHERE status = 'Active' AND org_id ='1'~2026-02-02 18:49:08:0208~2026-02-02 18:49:08~success
[02/Feb/2026:18:49:08] (root_api-) Query~SELECT count(1) as cnt FROM tbl_user_org u WHERE u.status = 'Active' AND u.user_id ='184' AND  org_id ='1'~2026-02-02 18:49:08:0208~2026-02-02 18:49:08~success
[02/Feb/2026:18:49:08] (root_api-) serviceName user_data
[02/Feb/2026:18:49:08] (root_api-) Query~SELECT u.user_org_id, u.org_id, u.role_id, um.email,o.org_name,r.role_name,o.short_name,CONCAT(u.role_id,'_',u.org_id) as user_org_role
            FROM tbl_user_org u 
            inner join tbl_org o on u.org_id=o.org_id
            inner join tbl_role_master r on r.role_id=u.role_id
            inner join tbl_user_master um on u.user_id = um.user_id
            where u.user_id= 184~2026-02-02 18:49:08:0208~2026-02-02 18:49:08~success
[02/Feb/2026:18:49:08] (root_api-) Final JSON =  {"status":"ok","message":"User Details fetched Successfully!!","Errorcode":"","data":[{"user_org_id":"225","org_id":"1","role_id":"3","email":"alhenaude20@gmail.com","org_name":"University Of Cape Town","role_name":"Learner","short_name":"UCT","user_org_role":"3_1"},{"user_org_id":"226","org_id":"2","role_id":"2","email":"alhenaude20@gmail.com","org_name":"C-Institute","role_name":"Educator","short_name":"C-Institute","user_org_role":"2_2"}]}
[02/Feb/2026:18:49:08] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:49:08] (root_api-) op => createBlankCard ,course_id => 25 ,cardDeckId => 83 ,userId => 184 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => deck_data ,
[02/Feb/2026:18:49:08] (root_api-) OP= createBlankCard of page root_api.php
[02/Feb/2026:18:49:08] (root_api-) serviceName deck_data
[02/Feb/2026:18:49:08] (root_api-) Query~SELECT count(1) as deckCount FROM tbl_deck WHERE deck_id = '83'~2026-02-02 18:49:08:0208~2026-02-02 18:49:08~success
[02/Feb/2026:18:49:08] (root_api-) Query~select ifnull(max(card_parent_id),0)+1 as maxId from tbl_card_parent~2026-02-02 18:49:08:0208~2026-02-02 18:49:08~success
[02/Feb/2026:18:49:08] (root_api-) In case tbl_card_parent Insert query = INSERT into tbl_card_parent (card_parent_id, last_version, draft_version, published_version, creation_date, created_by) 
                    VALUES (2473,'1','1','0', NOW(), '184')
[02/Feb/2026:18:49:08] (root_api-) Query~INSERT into tbl_card_parent (card_parent_id, last_version, draft_version, published_version, creation_date, created_by) 
                    VALUES (2473,'1','1','0', NOW(), '184')~2026-02-02 18:49:08:0208~2026-02-02 18:49:08~success
[02/Feb/2026:18:49:08] (root_api-) Query~select ifnull(max(card_parent_id),0) as lastInsertedId from tbl_card_parent~2026-02-02 18:49:08:0208~2026-02-02 18:49:08~success
[02/Feb/2026:18:49:08] (root_api-) Query~select ifnull(max(card_id),0)+1 as maxId from tbl_card~2026-02-02 18:49:08:0208~2026-02-02 18:49:08~success
[02/Feb/2026:18:49:08] (root_api-) In case tbl_card Insert query = INSERT into tbl_card (card_id, card_parent_id, version, card_style, status, card_type, question_text, answer_text, creation_date, created_by) 
                     VALUES (2473, 2473,  1, '0','Draft','main','','', NOW(), '184')
[02/Feb/2026:18:49:08] (root_api-) Query~INSERT into tbl_card (card_id, card_parent_id, version, card_style, status, card_type, question_text, answer_text, creation_date, created_by) 
                     VALUES (2473, 2473,  1, '0','Draft','main','','', NOW(), '184')~2026-02-02 18:49:08:0208~2026-02-02 18:49:08~success
[02/Feb/2026:18:49:08] (root_api-) Query~select ifnull(max(card_id),0) as lastInsertedId from tbl_card~2026-02-02 18:49:08:0208~2026-02-02 18:49:08~success
[02/Feb/2026:18:49:08] (root_api-) Query~UPDATE tbl_card set card_title = 'Card#2473' WHERE card_id= 2473~2026-02-02 18:49:08:0208~2026-02-02 18:49:08~success
[02/Feb/2026:18:49:08] (root_api-) Query~SELECT IFNULL(MAX(sequence), 0) as lastSequenceNumber FROM tbl_deck_card WHERE deck_id = '83'~2026-02-02 18:49:08:0208~2026-02-02 18:49:08~success
[02/Feb/2026:18:49:08] (root_api-) Query~select ifnull(max(deck_card_id),0)+1 as maxId from tbl_deck_card~2026-02-02 18:49:08:0208~2026-02-02 18:49:08~success
[02/Feb/2026:18:49:08] (root_api-) In case tbl_deck_card Insert query = INSERT into tbl_deck_card (deck_card_id, deck_id, card_id, sequence, creation_date, created_by) 
                        VALUES (2473,'83','2473','15', NOW(), '184')
[02/Feb/2026:18:49:08] (root_api-) Query~INSERT into tbl_deck_card (deck_card_id, deck_id, card_id, sequence, creation_date, created_by) 
                        VALUES (2473,'83','2473','15', NOW(), '184')~2026-02-02 18:49:08:0208~2026-02-02 18:49:08~success
[02/Feb/2026:18:49:08] (root_api-) Final JSON =  {"status":"ok","message":"Card inserted Successfully!!","Errorcode":"","data":"2473"}
[02/Feb/2026:18:49:08] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:49:08] (root_api-) op => getSwitchRoles ,user_id => 184 ,org_id => 1 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => user_data ,
[02/Feb/2026:18:49:08] (root_api-) OP= getSwitchRoles of page root_api.php
[02/Feb/2026:18:49:08] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:49:08:0208~2026-02-02 18:49:08~success
[02/Feb/2026:18:49:08] (root_api-) Query~SELECT count(1) as cnt FROM tbl_org  WHERE status = 'Active' AND org_id ='1'~2026-02-02 18:49:08:0208~2026-02-02 18:49:08~success
[02/Feb/2026:18:49:08] (root_api-) Query~SELECT count(1) as cnt FROM tbl_user_org u WHERE u.status = 'Active' AND u.user_id ='184' AND  org_id ='1'~2026-02-02 18:49:08:0208~2026-02-02 18:49:08~success
[02/Feb/2026:18:49:08] (root_api-) serviceName user_data
[02/Feb/2026:18:49:08] (root_api-) Query~SELECT u.user_org_id, u.org_id, u.role_id, um.email,o.org_name,r.role_name,o.short_name,CONCAT(u.role_id,'_',u.org_id) as user_org_role
            FROM tbl_user_org u 
            inner join tbl_org o on u.org_id=o.org_id
            inner join tbl_role_master r on r.role_id=u.role_id
            inner join tbl_user_master um on u.user_id = um.user_id
            where u.user_id= 184~2026-02-02 18:49:08:0208~2026-02-02 18:49:08~success
[02/Feb/2026:18:49:08] (root_api-) Final JSON =  {"status":"ok","message":"User Details fetched Successfully!!","Errorcode":"","data":[{"user_org_id":"225","org_id":"1","role_id":"3","email":"alhenaude20@gmail.com","org_name":"University Of Cape Town","role_name":"Learner","short_name":"UCT","user_org_role":"3_1"},{"user_org_id":"226","org_id":"2","role_id":"2","email":"alhenaude20@gmail.com","org_name":"C-Institute","role_name":"Educator","short_name":"C-Institute","user_org_role":"2_2"}]}
[02/Feb/2026:18:49:09] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:49:09] (root_api-) op => getUsersCourseRole ,user_id => 184 ,course_id => 25 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:18:49:09] (root_api-) OP= getUsersCourseRole of page root_api.php
[02/Feb/2026:18:49:09] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:49:09:0209~2026-02-02 18:49:09~success
[02/Feb/2026:18:49:09] (root_api-) serviceName course_data
[02/Feb/2026:18:49:09] (root_api-) Query~SELECT ed_role FROM tbl_course_educator WHERE  course_id = '25' AND user_id = 184~2026-02-02 18:49:09:0209~2026-02-02 18:49:09~success
[02/Feb/2026:18:49:09] (root_api-) Final JSON =  {"status":"ok","message":"","Errorcode":"","data":{"ed_role":"author"}}
[02/Feb/2026:18:49:09] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:49:09] (root_api-) op => get-my-contents-card-info ,user_id => 184 ,course_id => 25 ,deckId => 83 ,cardId => 2473 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:18:49:09] (root_api-) OP= get-my-contents-card-info of page root_api.php
[02/Feb/2026:18:49:09] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:49:09:0209~2026-02-02 18:49:09~success
[02/Feb/2026:18:49:09] (root_api-) serviceName course_data
[02/Feb/2026:18:49:09] (root_api-) Query~SELECT tc.card_id,tc.card_style,tc.card_title,tc.card_image_url,tc.card_video_url, CASE WHEN tc.card_style = 0 THEN 'Text' ELSE 'Image' END AS card_styleText  , tc.question_text, tc.status AS cardStatus, tc.answer_text, dc.deck_id,dc.sequence as cardSequence, tc.version, tc.card_parent_id
            FROM tbl_card tc
            INNER JOIN tbl_deck_card dc ON dc.card_id = tc.card_id
            Where dc.deck_id = '83' AND tc.card_id = '2473' AND tc.card_type = 'main' /*AND tc.created_by = '184'*/~2026-02-02 18:49:09:0209~2026-02-02 18:49:09~success
[02/Feb/2026:18:49:09] (root_api-) Query~select tc.card_parent_id, dc.deck_id as card_parent_deckid, tcd.course_id as card_parent_courseid from tbl_card tc, tbl_deck_card dc, tbl_course_deck tcd WHERE tc.card_parent_id=2473 AND tc.version = 0 AND tc.card_parent_id=dc.card_id AND dc.deck_id=tcd.deck_id~2026-02-02 18:49:09:0209~2026-02-02 18:49:09~success
[02/Feb/2026:18:49:09] (root_api-) Query~select tc.card_id as card_child_id, dc.deck_id as card_child_deckid, tcd.course_id as card_child_courseid from tbl_card tc, tbl_deck_card dc, tbl_course_deck tcd WHERE tc.card_parent_id=2473 AND tc.version = 2 AND tc.card_parent_id=dc.card_id AND dc.deck_id=tcd.deck_id~2026-02-02 18:49:09:0209~2026-02-02 18:49:09~success
[02/Feb/2026:18:49:09] (root_api-) Final JSON =  {"status":"ok",
                    "message":"",
                    "Errorcode":"",
                    "data":{"card_id":"2473","card_style":"0","card_title":"Card#2473","card_image_url":"","card_video_url":"","card_styleText":"Text","question_text":"","cardStatus":"Draft","answer_text":"","deck_id":"83","cardSequence":"15","version":"1","card_parent_id":null,"card_parent_deckid":null,"card_parent_courseid":null,"card_child_id":null,"card_child_deckid":null,"card_child_courseid":null}}
[02/Feb/2026:18:49:09] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:49:09] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:49:09] (root_api-) op => get-my-contents-deck-info ,user_id => 184 ,course_id => 25 ,deckId => 83 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:18:49:09] (root_api-) op => getCourseDetail ,course_id => 25 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:18:49:09] (root_api-) OP= getCourseDetail of page root_api.php
[02/Feb/2026:18:49:09] (root_api-) OP= get-my-contents-deck-info of page root_api.php
[02/Feb/2026:18:49:09] (root_api-) serviceName course_data
[02/Feb/2026:18:49:09] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:49:09:0209~2026-02-02 18:49:09~success
[02/Feb/2026:18:49:09] (root_api-) serviceName course_data
[02/Feb/2026:18:49:09] (root_api-) Query~SELECT * FROM tbl_course where course_id = '25' AND status NOT IN('Discard')~2026-02-02 18:49:09:0209~2026-02-02 18:49:09~success
[02/Feb/2026:18:49:09] (root_api-) Query~SELECT course_image_id, course_image, sequence, status FROM tbl_course_images where course_id = 25 ORDER BY sequence DESC~2026-02-02 18:49:09:0209~2026-02-02 18:49:09~success
[02/Feb/2026:18:49:09] (root_api-) Query~SELECT td.deck_id, td.created_by, tcd.course_id, 
            ifnull(tcd.deck_name,td.deck_name) deck_name,
            ifnull(tcd.short_name,td.short_name) short_name,
            ifnull(tcd.eval_id,td.eval_id) eval_id,
            ifnull(tcd.deck_desc,td.deck_desc) deck_desc,
            ifnull(tcd.deck_brief,td.deck_brief) deck_brief,
            td.status AS deckStatus,
            td.version
            FROM tbl_deck td 
            INNER JOIN tbl_course_deck tcd ON tcd.deck_id = td.deck_id AND course_id = '25' AND tcd.created_by = '184'
            Where td.deck_id = '83' AND td.deck_type = 'main' AND td.created_by = '184'~2026-02-02 18:49:09:0209~2026-02-02 18:49:09~success
[02/Feb/2026:18:49:09] (root_api-) Query~select course_id as prev_course_id from tbl_course where course_parent_id = 25 AND version = 0 AND status NOT IN('Discard')~2026-02-02 18:49:09:0209~2026-02-02 18:49:09~success
[02/Feb/2026:18:49:09] (root_api-) Query~select td.deck_parent_id, cd.course_id as parent_courseid from tbl_deck td, tbl_course_deck cd where td.deck_id = 83 AND td.deck_parent_id <> 83 AND td.deck_parent_id = cd.deck_id~2026-02-02 18:49:09:0209~2026-02-02 18:49:09~success
[02/Feb/2026:18:49:09] (root_api-) Query~select course_id as next_course_id from tbl_course where course_parent_id = 25 AND version = 2 AND status NOT IN('Discard')~2026-02-02 18:49:09:0209~2026-02-02 18:49:09~success
[02/Feb/2026:18:49:09] (root_api-) Final JSON =  {"status":"ok","message":"Course Details fetched Successfully","Errorcode":"","data":[{"course_id":"25","course_parent_id":"25","version":"1","org_id":"2","course_name":"Grade 8 Mathematics","short_name":"","status":"Draft","eval_id":"1","course_desc":"Grade 8 Mathematics aims to build strong foundational skills required to prepare learners for higher grades of mathematics and develop strong, appropriate mathematical reasoning and logical thinking. ","amount":"0","currency":null,"pay_type":"paid","course_brief":null,"course_duration":"16","background_color":"","text_color":"","creation_date":"2025-07-16 13:21:03","created_by":"184","updation_date":"2026-01-07 12:53:22","updated_by":"184","images":[],"parentid":"","childid":""}]}
[02/Feb/2026:18:49:09] (root_api-) Query~select td.deck_id as deck_child_id, cd.course_id as child_courseid from tbl_deck td, tbl_course_deck cd where td.deck_parent_id = 83 AND td.deck_id <> 83 AND td.deck_id = cd.deck_id~2026-02-02 18:49:09:0209~2026-02-02 18:49:09~success
[02/Feb/2026:18:49:09] (root_api-) Final JSON =  {"status":"ok",
                    "message":"",
                    "Errorcode":"",
                    "data":{"deck_id":"83","created_by":"184","course_id":"25","deck_name":"Data Handling ","short_name":"Data Handling","eval_id":"1","deck_desc":"Data handling helps learners interpret and understand the various pieces of information that may be collected when looking at data as well as different ways to summarise and read data. ","deck_brief":"","deckStatus":"Draft","version":"1","parentid":"","childid":""}}
[02/Feb/2026:18:49:10] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:49:10] (root_api-) op => api-refresh ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => common_data ,
[02/Feb/2026:18:49:10] (root_api-) OP= api-refresh of page root_api.php
[02/Feb/2026:18:49:10] (root_api-) serviceName common_data
[02/Feb/2026:18:49:10] (root_api-) Final JSON =  {"status":"ok","message":"","Errorcode":"","data":""}
[02/Feb/2026:18:49:39] (root_api-) token =  IP = 169.0.141.180
[02/Feb/2026:18:49:39] (root_api-) 
[02/Feb/2026:18:49:39] (root_api-) OP=  of page root_api.php
[02/Feb/2026:18:49:39] (root_api-) Final JSON =  { "status":"error",
					"message":"Invalid Session",
					"Errorcode":"err100",
					"data":{}}
[02/Feb/2026:18:49:39] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:49:39] (root_api-) op => user-card-operation ,userId => 184 ,courseId => 25 ,cardDeckMode => edit ,cardDeckId => 83 ,questionText => <p>What is a stem and leaf display/diagram?</p><p><br></p> ,answerText => <p>A stem and leaf diagram is a way of graphically organising data based on numerical place value of numbers.&nbsp;</p><p><br></p> ,editCardId => 2473 ,action => SAVE_AND_NEXT ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => deck_data ,
[02/Feb/2026:18:49:39] (root_api-) OP= user-card-operation of page root_api.php
[02/Feb/2026:18:49:39] (root_api-) serviceName deck_data
[02/Feb/2026:18:49:39] (root_api-) Query~SELECT count(1) as deckCardCount FROM tbl_deck_card WHERE deck_id = '83' AND card_id = '2473'~2026-02-02 18:49:39:0239~2026-02-02 18:49:39~success
[02/Feb/2026:18:49:39] (root_api-) Query~SELECT question_text, answer_text FROM tbl_card  WHERE card_id = '2473'~2026-02-02 18:49:39:0239~2026-02-02 18:49:39~success
[02/Feb/2026:18:49:39] (root_api-) In case Card Updated query = UPDATE tbl_card SET card_style = '0' , question_text = '<p>What is a stem and leaf display/diagram?</p><p><br></p>', answer_text = '<p>A stem and leaf diagram is a way of graphically organising data based on numerical place value of numbers.&nbsp;</p><p><br></p>', card_type='main', updation_date = NOW(), updated_by = '184', card_title = '', card_image_url = '', 
                    onlyTextQuestion = '', onlyTextAnswer = '' 
                    WHERE card_id = '2473'
[02/Feb/2026:18:49:39] (root_api-) Query~UPDATE tbl_card SET card_style = '0' , question_text = '<p>What is a stem and leaf display/diagram?</p><p><br></p>', answer_text = '<p>A stem and leaf diagram is a way of graphically organising data based on numerical place value of numbers.&nbsp;</p><p><br></p>', card_type='main', updation_date = NOW(), updated_by = '184', card_title = '', card_image_url = '', 
                    onlyTextQuestion = '', onlyTextAnswer = '' 
                    WHERE card_id = '2473'~2026-02-02 18:49:39:0239~2026-02-02 18:49:39~success
[02/Feb/2026:18:49:39] (root_api-) Final JSON =  {"status":"ok","message":"Card Created Successfully!!","Errorcode":"","data":"","action":"SAVE_AND_NEXT"}
[02/Feb/2026:18:49:41] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:49:41] (root_api-) op => getSwitchRoles ,user_id => 184 ,org_id => 1 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => user_data ,
[02/Feb/2026:18:49:41] (root_api-) OP= getSwitchRoles of page root_api.php
[02/Feb/2026:18:49:41] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:49:41:0241~2026-02-02 18:49:41~success
[02/Feb/2026:18:49:41] (root_api-) Query~SELECT count(1) as cnt FROM tbl_org  WHERE status = 'Active' AND org_id ='1'~2026-02-02 18:49:41:0241~2026-02-02 18:49:41~success
[02/Feb/2026:18:49:41] (root_api-) Query~SELECT count(1) as cnt FROM tbl_user_org u WHERE u.status = 'Active' AND u.user_id ='184' AND  org_id ='1'~2026-02-02 18:49:41:0241~2026-02-02 18:49:41~success
[02/Feb/2026:18:49:41] (root_api-) serviceName user_data
[02/Feb/2026:18:49:41] (root_api-) Query~SELECT u.user_org_id, u.org_id, u.role_id, um.email,o.org_name,r.role_name,o.short_name,CONCAT(u.role_id,'_',u.org_id) as user_org_role
            FROM tbl_user_org u 
            inner join tbl_org o on u.org_id=o.org_id
            inner join tbl_role_master r on r.role_id=u.role_id
            inner join tbl_user_master um on u.user_id = um.user_id
            where u.user_id= 184~2026-02-02 18:49:41:0241~2026-02-02 18:49:41~success
[02/Feb/2026:18:49:41] (root_api-) Final JSON =  {"status":"ok","message":"User Details fetched Successfully!!","Errorcode":"","data":[{"user_org_id":"225","org_id":"1","role_id":"3","email":"alhenaude20@gmail.com","org_name":"University Of Cape Town","role_name":"Learner","short_name":"UCT","user_org_role":"3_1"},{"user_org_id":"226","org_id":"2","role_id":"2","email":"alhenaude20@gmail.com","org_name":"C-Institute","role_name":"Educator","short_name":"C-Institute","user_org_role":"2_2"}]}
[02/Feb/2026:18:49:41] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:49:41] (root_api-) op => createBlankCard ,course_id => 25 ,cardDeckId => 83 ,userId => 184 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => deck_data ,
[02/Feb/2026:18:49:41] (root_api-) OP= createBlankCard of page root_api.php
[02/Feb/2026:18:49:41] (root_api-) serviceName deck_data
[02/Feb/2026:18:49:41] (root_api-) Query~SELECT count(1) as deckCount FROM tbl_deck WHERE deck_id = '83'~2026-02-02 18:49:41:0241~2026-02-02 18:49:41~success
[02/Feb/2026:18:49:41] (root_api-) Query~select ifnull(max(card_parent_id),0)+1 as maxId from tbl_card_parent~2026-02-02 18:49:41:0241~2026-02-02 18:49:41~success
[02/Feb/2026:18:49:41] (root_api-) In case tbl_card_parent Insert query = INSERT into tbl_card_parent (card_parent_id, last_version, draft_version, published_version, creation_date, created_by) 
                    VALUES (2474,'1','1','0', NOW(), '184')
[02/Feb/2026:18:49:41] (root_api-) Query~INSERT into tbl_card_parent (card_parent_id, last_version, draft_version, published_version, creation_date, created_by) 
                    VALUES (2474,'1','1','0', NOW(), '184')~2026-02-02 18:49:41:0241~2026-02-02 18:49:41~success
[02/Feb/2026:18:49:41] (root_api-) Query~select ifnull(max(card_parent_id),0) as lastInsertedId from tbl_card_parent~2026-02-02 18:49:41:0241~2026-02-02 18:49:41~success
[02/Feb/2026:18:49:41] (root_api-) Query~select ifnull(max(card_id),0)+1 as maxId from tbl_card~2026-02-02 18:49:41:0241~2026-02-02 18:49:41~success
[02/Feb/2026:18:49:41] (root_api-) In case tbl_card Insert query = INSERT into tbl_card (card_id, card_parent_id, version, card_style, status, card_type, question_text, answer_text, creation_date, created_by) 
                     VALUES (2474, 2474,  1, '0','Draft','main','','', NOW(), '184')
[02/Feb/2026:18:49:41] (root_api-) Query~INSERT into tbl_card (card_id, card_parent_id, version, card_style, status, card_type, question_text, answer_text, creation_date, created_by) 
                     VALUES (2474, 2474,  1, '0','Draft','main','','', NOW(), '184')~2026-02-02 18:49:41:0241~2026-02-02 18:49:41~success
[02/Feb/2026:18:49:41] (root_api-) Query~select ifnull(max(card_id),0) as lastInsertedId from tbl_card~2026-02-02 18:49:41:0241~2026-02-02 18:49:41~success
[02/Feb/2026:18:49:41] (root_api-) Query~UPDATE tbl_card set card_title = 'Card#2474' WHERE card_id= 2474~2026-02-02 18:49:41:0241~2026-02-02 18:49:41~success
[02/Feb/2026:18:49:41] (root_api-) Query~SELECT IFNULL(MAX(sequence), 0) as lastSequenceNumber FROM tbl_deck_card WHERE deck_id = '83'~2026-02-02 18:49:41:0241~2026-02-02 18:49:41~success
[02/Feb/2026:18:49:41] (root_api-) Query~select ifnull(max(deck_card_id),0)+1 as maxId from tbl_deck_card~2026-02-02 18:49:41:0241~2026-02-02 18:49:41~success
[02/Feb/2026:18:49:41] (root_api-) In case tbl_deck_card Insert query = INSERT into tbl_deck_card (deck_card_id, deck_id, card_id, sequence, creation_date, created_by) 
                        VALUES (2474,'83','2474','16', NOW(), '184')
[02/Feb/2026:18:49:41] (root_api-) Query~INSERT into tbl_deck_card (deck_card_id, deck_id, card_id, sequence, creation_date, created_by) 
                        VALUES (2474,'83','2474','16', NOW(), '184')~2026-02-02 18:49:41:0241~2026-02-02 18:49:41~success
[02/Feb/2026:18:49:41] (root_api-) Final JSON =  {"status":"ok","message":"Card inserted Successfully!!","Errorcode":"","data":"2474"}
[02/Feb/2026:18:49:41] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:49:41] (root_api-) op => getSwitchRoles ,user_id => 184 ,org_id => 1 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => user_data ,
[02/Feb/2026:18:49:41] (root_api-) OP= getSwitchRoles of page root_api.php
[02/Feb/2026:18:49:41] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:49:41:0241~2026-02-02 18:49:41~success
[02/Feb/2026:18:49:41] (root_api-) Query~SELECT count(1) as cnt FROM tbl_org  WHERE status = 'Active' AND org_id ='1'~2026-02-02 18:49:41:0241~2026-02-02 18:49:41~success
[02/Feb/2026:18:49:41] (root_api-) Query~SELECT count(1) as cnt FROM tbl_user_org u WHERE u.status = 'Active' AND u.user_id ='184' AND  org_id ='1'~2026-02-02 18:49:41:0241~2026-02-02 18:49:41~success
[02/Feb/2026:18:49:41] (root_api-) serviceName user_data
[02/Feb/2026:18:49:41] (root_api-) Query~SELECT u.user_org_id, u.org_id, u.role_id, um.email,o.org_name,r.role_name,o.short_name,CONCAT(u.role_id,'_',u.org_id) as user_org_role
            FROM tbl_user_org u 
            inner join tbl_org o on u.org_id=o.org_id
            inner join tbl_role_master r on r.role_id=u.role_id
            inner join tbl_user_master um on u.user_id = um.user_id
            where u.user_id= 184~2026-02-02 18:49:41:0241~2026-02-02 18:49:41~success
[02/Feb/2026:18:49:41] (root_api-) Final JSON =  {"status":"ok","message":"User Details fetched Successfully!!","Errorcode":"","data":[{"user_org_id":"225","org_id":"1","role_id":"3","email":"alhenaude20@gmail.com","org_name":"University Of Cape Town","role_name":"Learner","short_name":"UCT","user_org_role":"3_1"},{"user_org_id":"226","org_id":"2","role_id":"2","email":"alhenaude20@gmail.com","org_name":"C-Institute","role_name":"Educator","short_name":"C-Institute","user_org_role":"2_2"}]}
[02/Feb/2026:18:49:41] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:49:41] (root_api-) op => getUsersCourseRole ,user_id => 184 ,course_id => 25 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:18:49:41] (root_api-) OP= getUsersCourseRole of page root_api.php
[02/Feb/2026:18:49:41] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:49:41:0241~2026-02-02 18:49:41~success
[02/Feb/2026:18:49:41] (root_api-) serviceName course_data
[02/Feb/2026:18:49:41] (root_api-) Query~SELECT ed_role FROM tbl_course_educator WHERE  course_id = '25' AND user_id = 184~2026-02-02 18:49:41:0241~2026-02-02 18:49:41~success
[02/Feb/2026:18:49:41] (root_api-) Final JSON =  {"status":"ok","message":"","Errorcode":"","data":{"ed_role":"author"}}
[02/Feb/2026:18:49:41] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:49:41] (root_api-) op => getCourseDetail ,course_id => 25 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:18:49:41] (root_api-) OP= getCourseDetail of page root_api.php
[02/Feb/2026:18:49:41] (root_api-) serviceName course_data
[02/Feb/2026:18:49:41] (root_api-) Query~SELECT * FROM tbl_course where course_id = '25' AND status NOT IN('Discard')~2026-02-02 18:49:41:0241~2026-02-02 18:49:41~success
[02/Feb/2026:18:49:41] (root_api-) Query~SELECT course_image_id, course_image, sequence, status FROM tbl_course_images where course_id = 25 ORDER BY sequence DESC~2026-02-02 18:49:41:0241~2026-02-02 18:49:41~success
[02/Feb/2026:18:49:41] (root_api-) Query~select course_id as prev_course_id from tbl_course where course_parent_id = 25 AND version = 0 AND status NOT IN('Discard')~2026-02-02 18:49:41:0241~2026-02-02 18:49:41~success
[02/Feb/2026:18:49:41] (root_api-) Query~select course_id as next_course_id from tbl_course where course_parent_id = 25 AND version = 2 AND status NOT IN('Discard')~2026-02-02 18:49:41:0241~2026-02-02 18:49:41~success
[02/Feb/2026:18:49:41] (root_api-) Final JSON =  {"status":"ok","message":"Course Details fetched Successfully","Errorcode":"","data":[{"course_id":"25","course_parent_id":"25","version":"1","org_id":"2","course_name":"Grade 8 Mathematics","short_name":"","status":"Draft","eval_id":"1","course_desc":"Grade 8 Mathematics aims to build strong foundational skills required to prepare learners for higher grades of mathematics and develop strong, appropriate mathematical reasoning and logical thinking. ","amount":"0","currency":null,"pay_type":"paid","course_brief":null,"course_duration":"16","background_color":"","text_color":"","creation_date":"2025-07-16 13:21:03","created_by":"184","updation_date":"2026-01-07 12:53:22","updated_by":"184","images":[],"parentid":"","childid":""}]}
[02/Feb/2026:18:49:41] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:49:41] (root_api-) op => get-my-contents-card-info ,user_id => 184 ,course_id => 25 ,deckId => 83 ,cardId => 2474 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:18:49:41] (root_api-) OP= get-my-contents-card-info of page root_api.php
[02/Feb/2026:18:49:41] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:49:41:0241~2026-02-02 18:49:41~success
[02/Feb/2026:18:49:41] (root_api-) serviceName course_data
[02/Feb/2026:18:49:41] (root_api-) Query~SELECT tc.card_id,tc.card_style,tc.card_title,tc.card_image_url,tc.card_video_url, CASE WHEN tc.card_style = 0 THEN 'Text' ELSE 'Image' END AS card_styleText  , tc.question_text, tc.status AS cardStatus, tc.answer_text, dc.deck_id,dc.sequence as cardSequence, tc.version, tc.card_parent_id
            FROM tbl_card tc
            INNER JOIN tbl_deck_card dc ON dc.card_id = tc.card_id
            Where dc.deck_id = '83' AND tc.card_id = '2474' AND tc.card_type = 'main' /*AND tc.created_by = '184'*/~2026-02-02 18:49:41:0241~2026-02-02 18:49:41~success
[02/Feb/2026:18:49:41] (root_api-) Query~select tc.card_parent_id, dc.deck_id as card_parent_deckid, tcd.course_id as card_parent_courseid from tbl_card tc, tbl_deck_card dc, tbl_course_deck tcd WHERE tc.card_parent_id=2474 AND tc.version = 0 AND tc.card_parent_id=dc.card_id AND dc.deck_id=tcd.deck_id~2026-02-02 18:49:41:0241~2026-02-02 18:49:41~success
[02/Feb/2026:18:49:41] (root_api-) Query~select tc.card_id as card_child_id, dc.deck_id as card_child_deckid, tcd.course_id as card_child_courseid from tbl_card tc, tbl_deck_card dc, tbl_course_deck tcd WHERE tc.card_parent_id=2474 AND tc.version = 2 AND tc.card_parent_id=dc.card_id AND dc.deck_id=tcd.deck_id~2026-02-02 18:49:41:0241~2026-02-02 18:49:41~success
[02/Feb/2026:18:49:41] (root_api-) Final JSON =  {"status":"ok",
                    "message":"",
                    "Errorcode":"",
                    "data":{"card_id":"2474","card_style":"0","card_title":"Card#2474","card_image_url":"","card_video_url":"","card_styleText":"Text","question_text":"","cardStatus":"Draft","answer_text":"","deck_id":"83","cardSequence":"16","version":"1","card_parent_id":null,"card_parent_deckid":null,"card_parent_courseid":null,"card_child_id":null,"card_child_deckid":null,"card_child_courseid":null}}
[02/Feb/2026:18:49:41] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:49:41] (root_api-) op => get-my-contents-deck-info ,user_id => 184 ,course_id => 25 ,deckId => 83 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:18:49:41] (root_api-) OP= get-my-contents-deck-info of page root_api.php
[02/Feb/2026:18:49:41] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:49:41:0241~2026-02-02 18:49:41~success
[02/Feb/2026:18:49:41] (root_api-) serviceName course_data
[02/Feb/2026:18:49:41] (root_api-) Query~SELECT td.deck_id, td.created_by, tcd.course_id, 
            ifnull(tcd.deck_name,td.deck_name) deck_name,
            ifnull(tcd.short_name,td.short_name) short_name,
            ifnull(tcd.eval_id,td.eval_id) eval_id,
            ifnull(tcd.deck_desc,td.deck_desc) deck_desc,
            ifnull(tcd.deck_brief,td.deck_brief) deck_brief,
            td.status AS deckStatus,
            td.version
            FROM tbl_deck td 
            INNER JOIN tbl_course_deck tcd ON tcd.deck_id = td.deck_id AND course_id = '25' AND tcd.created_by = '184'
            Where td.deck_id = '83' AND td.deck_type = 'main' AND td.created_by = '184'~2026-02-02 18:49:41:0241~2026-02-02 18:49:41~success
[02/Feb/2026:18:49:41] (root_api-) Query~select td.deck_parent_id, cd.course_id as parent_courseid from tbl_deck td, tbl_course_deck cd where td.deck_id = 83 AND td.deck_parent_id <> 83 AND td.deck_parent_id = cd.deck_id~2026-02-02 18:49:41:0241~2026-02-02 18:49:41~success
[02/Feb/2026:18:49:41] (root_api-) Query~select td.deck_id as deck_child_id, cd.course_id as child_courseid from tbl_deck td, tbl_course_deck cd where td.deck_parent_id = 83 AND td.deck_id <> 83 AND td.deck_id = cd.deck_id~2026-02-02 18:49:41:0241~2026-02-02 18:49:41~success
[02/Feb/2026:18:49:41] (root_api-) Final JSON =  {"status":"ok",
                    "message":"",
                    "Errorcode":"",
                    "data":{"deck_id":"83","created_by":"184","course_id":"25","deck_name":"Data Handling ","short_name":"Data Handling","eval_id":"1","deck_desc":"Data handling helps learners interpret and understand the various pieces of information that may be collected when looking at data as well as different ways to summarise and read data. ","deck_brief":"","deckStatus":"Draft","version":"1","parentid":"","childid":""}}
[02/Feb/2026:18:49:42] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:49:42] (root_api-) op => api-refresh ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => common_data ,
[02/Feb/2026:18:49:42] (root_api-) OP= api-refresh of page root_api.php
[02/Feb/2026:18:49:42] (root_api-) serviceName common_data
[02/Feb/2026:18:49:42] (root_api-) Final JSON =  {"status":"ok","message":"","Errorcode":"","data":""}
[02/Feb/2026:18:58:02] (root_api-) token =  IP = 169.0.141.180
[02/Feb/2026:18:58:02] (root_api-) deckId => 83 ,cardId => 2474 ,courseId => 25 ,mediafor => A ,userId => 184 ,action => cardImage ,op => updateCardImage ,serviceName => course_data ,clid => 66bbc87451ad3590b670daae13ee0619 ,
[02/Feb/2026:18:58:02] (root_api-) OP= updateCardImage of page root_api.php
[02/Feb/2026:18:58:02] (root_api-) serviceName course_data
[02/Feb/2026:18:58:02] (root_api-) Final JSON =  {"status":"ok","message":"","Errorcode":"","data":{"mediafor":"A","img_url":"https:\/\/bo.coglearn.cioinfotech.com\/upload\/courses\/course_25\/deck_83\/card_2474\/image 3 jpeg..jpg"}}
[02/Feb/2026:18:58:04] (root_api-) token =  IP = 169.0.141.180
[02/Feb/2026:18:58:04] (root_api-) deckId => 83 ,cardId => 2474 ,courseId => 25 ,mediafor => A ,userId => 184 ,action => cardImage ,op => updateCardImage ,serviceName => course_data ,clid => 66bbc87451ad3590b670daae13ee0619 ,
[02/Feb/2026:18:58:04] (root_api-) OP= updateCardImage of page root_api.php
[02/Feb/2026:18:58:04] (root_api-) serviceName course_data
[02/Feb/2026:18:58:04] (root_api-) Final JSON =  {"status":"ok","message":"","Errorcode":"","data":{"mediafor":"A","img_url":"https:\/\/bo.coglearn.cioinfotech.com\/upload\/courses\/course_25\/deck_83\/card_2474\/image 3 jpeg..jpg"}}
[02/Feb/2026:18:58:16] (root_api-) token =  IP = 169.0.141.180
[02/Feb/2026:18:58:16] (root_api-) 
[02/Feb/2026:18:58:16] (root_api-) OP=  of page root_api.php
[02/Feb/2026:18:58:16] (root_api-) Final JSON =  { "status":"error",
					"message":"Invalid Session",
					"Errorcode":"err100",
					"data":{}}
[02/Feb/2026:18:58:17] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:58:17] (root_api-) op => user-card-operation ,userId => 184 ,courseId => 25 ,cardDeckMode => edit ,cardDeckId => 83 ,questionText => <p>How do we display data using a stem and lead diagram?</p><p><br></p> ,answerText => <p><img src="https://bo.coglearn.cioinfotech.com/upload/courses/course_25/deck_83/card_2474/image 3 jpeg..jpg" style="width: 466px;"><br></p> ,editCardId => 2474 ,action => SAVE_AND_NEXT ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => deck_data ,
[02/Feb/2026:18:58:17] (root_api-) OP= user-card-operation of page root_api.php
[02/Feb/2026:18:58:17] (root_api-) serviceName deck_data
[02/Feb/2026:18:58:17] (root_api-) Query~SELECT count(1) as deckCardCount FROM tbl_deck_card WHERE deck_id = '83' AND card_id = '2474'~2026-02-02 18:58:17:0217~2026-02-02 18:58:17~success
[02/Feb/2026:18:58:17] (root_api-) Query~SELECT question_text, answer_text FROM tbl_card  WHERE card_id = '2474'~2026-02-02 18:58:17:0217~2026-02-02 18:58:17~success
[02/Feb/2026:18:58:17] (root_api-) In case Card Updated query = UPDATE tbl_card SET card_style = '0' , question_text = '<p>How do we display data using a stem and lead diagram?</p><p><br></p>', answer_text = '<p><img src=\"https://bo.coglearn.cioinfotech.com/upload/courses/course_25/deck_83/card_2474/image 3 jpeg..jpg\" style=\"width: 466px;\"><br></p>', card_type='main', updation_date = NOW(), updated_by = '184', card_title = '', card_image_url = '', 
                    onlyTextQuestion = '', onlyTextAnswer = '' 
                    WHERE card_id = '2474'
[02/Feb/2026:18:58:17] (root_api-) Query~UPDATE tbl_card SET card_style = '0' , question_text = '<p>How do we display data using a stem and lead diagram?</p><p><br></p>', answer_text = '<p><img src=\"https://bo.coglearn.cioinfotech.com/upload/courses/course_25/deck_83/card_2474/image 3 jpeg..jpg\" style=\"width: 466px;\"><br></p>', card_type='main', updation_date = NOW(), updated_by = '184', card_title = '', card_image_url = '', 
                    onlyTextQuestion = '', onlyTextAnswer = '' 
                    WHERE card_id = '2474'~2026-02-02 18:58:17:0217~2026-02-02 18:58:17~success
[02/Feb/2026:18:58:17] (root_api-) Final JSON =  {"status":"ok","message":"Card Created Successfully!!","Errorcode":"","data":"","action":"SAVE_AND_NEXT"}
[02/Feb/2026:18:58:19] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:58:19] (root_api-) op => getSwitchRoles ,user_id => 184 ,org_id => 1 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => user_data ,
[02/Feb/2026:18:58:19] (root_api-) OP= getSwitchRoles of page root_api.php
[02/Feb/2026:18:58:19] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:58:19:0219~2026-02-02 18:58:19~success
[02/Feb/2026:18:58:19] (root_api-) Query~SELECT count(1) as cnt FROM tbl_org  WHERE status = 'Active' AND org_id ='1'~2026-02-02 18:58:19:0219~2026-02-02 18:58:19~success
[02/Feb/2026:18:58:19] (root_api-) Query~SELECT count(1) as cnt FROM tbl_user_org u WHERE u.status = 'Active' AND u.user_id ='184' AND  org_id ='1'~2026-02-02 18:58:19:0219~2026-02-02 18:58:19~success
[02/Feb/2026:18:58:19] (root_api-) serviceName user_data
[02/Feb/2026:18:58:19] (root_api-) Query~SELECT u.user_org_id, u.org_id, u.role_id, um.email,o.org_name,r.role_name,o.short_name,CONCAT(u.role_id,'_',u.org_id) as user_org_role
            FROM tbl_user_org u 
            inner join tbl_org o on u.org_id=o.org_id
            inner join tbl_role_master r on r.role_id=u.role_id
            inner join tbl_user_master um on u.user_id = um.user_id
            where u.user_id= 184~2026-02-02 18:58:19:0219~2026-02-02 18:58:19~success
[02/Feb/2026:18:58:19] (root_api-) Final JSON =  {"status":"ok","message":"User Details fetched Successfully!!","Errorcode":"","data":[{"user_org_id":"225","org_id":"1","role_id":"3","email":"alhenaude20@gmail.com","org_name":"University Of Cape Town","role_name":"Learner","short_name":"UCT","user_org_role":"3_1"},{"user_org_id":"226","org_id":"2","role_id":"2","email":"alhenaude20@gmail.com","org_name":"C-Institute","role_name":"Educator","short_name":"C-Institute","user_org_role":"2_2"}]}
[02/Feb/2026:18:58:20] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:58:20] (root_api-) op => createBlankCard ,course_id => 25 ,cardDeckId => 83 ,userId => 184 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => deck_data ,
[02/Feb/2026:18:58:20] (root_api-) OP= createBlankCard of page root_api.php
[02/Feb/2026:18:58:20] (root_api-) serviceName deck_data
[02/Feb/2026:18:58:20] (root_api-) Query~SELECT count(1) as deckCount FROM tbl_deck WHERE deck_id = '83'~2026-02-02 18:58:20:0220~2026-02-02 18:58:20~success
[02/Feb/2026:18:58:20] (root_api-) Query~select ifnull(max(card_parent_id),0)+1 as maxId from tbl_card_parent~2026-02-02 18:58:20:0220~2026-02-02 18:58:20~success
[02/Feb/2026:18:58:20] (root_api-) In case tbl_card_parent Insert query = INSERT into tbl_card_parent (card_parent_id, last_version, draft_version, published_version, creation_date, created_by) 
                    VALUES (2475,'1','1','0', NOW(), '184')
[02/Feb/2026:18:58:20] (root_api-) Query~INSERT into tbl_card_parent (card_parent_id, last_version, draft_version, published_version, creation_date, created_by) 
                    VALUES (2475,'1','1','0', NOW(), '184')~2026-02-02 18:58:20:0220~2026-02-02 18:58:20~success
[02/Feb/2026:18:58:20] (root_api-) Query~select ifnull(max(card_parent_id),0) as lastInsertedId from tbl_card_parent~2026-02-02 18:58:20:0220~2026-02-02 18:58:20~success
[02/Feb/2026:18:58:20] (root_api-) Query~select ifnull(max(card_id),0)+1 as maxId from tbl_card~2026-02-02 18:58:20:0220~2026-02-02 18:58:20~success
[02/Feb/2026:18:58:20] (root_api-) In case tbl_card Insert query = INSERT into tbl_card (card_id, card_parent_id, version, card_style, status, card_type, question_text, answer_text, creation_date, created_by) 
                     VALUES (2475, 2475,  1, '0','Draft','main','','', NOW(), '184')
[02/Feb/2026:18:58:20] (root_api-) Query~INSERT into tbl_card (card_id, card_parent_id, version, card_style, status, card_type, question_text, answer_text, creation_date, created_by) 
                     VALUES (2475, 2475,  1, '0','Draft','main','','', NOW(), '184')~2026-02-02 18:58:20:0220~2026-02-02 18:58:20~success
[02/Feb/2026:18:58:20] (root_api-) Query~select ifnull(max(card_id),0) as lastInsertedId from tbl_card~2026-02-02 18:58:20:0220~2026-02-02 18:58:20~success
[02/Feb/2026:18:58:20] (root_api-) Query~UPDATE tbl_card set card_title = 'Card#2475' WHERE card_id= 2475~2026-02-02 18:58:20:0220~2026-02-02 18:58:20~success
[02/Feb/2026:18:58:20] (root_api-) Query~SELECT IFNULL(MAX(sequence), 0) as lastSequenceNumber FROM tbl_deck_card WHERE deck_id = '83'~2026-02-02 18:58:20:0220~2026-02-02 18:58:20~success
[02/Feb/2026:18:58:20] (root_api-) Query~select ifnull(max(deck_card_id),0)+1 as maxId from tbl_deck_card~2026-02-02 18:58:20:0220~2026-02-02 18:58:20~success
[02/Feb/2026:18:58:20] (root_api-) In case tbl_deck_card Insert query = INSERT into tbl_deck_card (deck_card_id, deck_id, card_id, sequence, creation_date, created_by) 
                        VALUES (2475,'83','2475','17', NOW(), '184')
[02/Feb/2026:18:58:20] (root_api-) Query~INSERT into tbl_deck_card (deck_card_id, deck_id, card_id, sequence, creation_date, created_by) 
                        VALUES (2475,'83','2475','17', NOW(), '184')~2026-02-02 18:58:20:0220~2026-02-02 18:58:20~success
[02/Feb/2026:18:58:20] (root_api-) Final JSON =  {"status":"ok","message":"Card inserted Successfully!!","Errorcode":"","data":"2475"}
[02/Feb/2026:18:58:20] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:58:20] (root_api-) op => getSwitchRoles ,user_id => 184 ,org_id => 1 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => user_data ,
[02/Feb/2026:18:58:20] (root_api-) OP= getSwitchRoles of page root_api.php
[02/Feb/2026:18:58:20] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:58:20:0220~2026-02-02 18:58:20~success
[02/Feb/2026:18:58:20] (root_api-) Query~SELECT count(1) as cnt FROM tbl_org  WHERE status = 'Active' AND org_id ='1'~2026-02-02 18:58:20:0220~2026-02-02 18:58:20~success
[02/Feb/2026:18:58:20] (root_api-) Query~SELECT count(1) as cnt FROM tbl_user_org u WHERE u.status = 'Active' AND u.user_id ='184' AND  org_id ='1'~2026-02-02 18:58:20:0220~2026-02-02 18:58:20~success
[02/Feb/2026:18:58:20] (root_api-) serviceName user_data
[02/Feb/2026:18:58:20] (root_api-) Query~SELECT u.user_org_id, u.org_id, u.role_id, um.email,o.org_name,r.role_name,o.short_name,CONCAT(u.role_id,'_',u.org_id) as user_org_role
            FROM tbl_user_org u 
            inner join tbl_org o on u.org_id=o.org_id
            inner join tbl_role_master r on r.role_id=u.role_id
            inner join tbl_user_master um on u.user_id = um.user_id
            where u.user_id= 184~2026-02-02 18:58:20:0220~2026-02-02 18:58:20~success
[02/Feb/2026:18:58:20] (root_api-) Final JSON =  {"status":"ok","message":"User Details fetched Successfully!!","Errorcode":"","data":[{"user_org_id":"225","org_id":"1","role_id":"3","email":"alhenaude20@gmail.com","org_name":"University Of Cape Town","role_name":"Learner","short_name":"UCT","user_org_role":"3_1"},{"user_org_id":"226","org_id":"2","role_id":"2","email":"alhenaude20@gmail.com","org_name":"C-Institute","role_name":"Educator","short_name":"C-Institute","user_org_role":"2_2"}]}
[02/Feb/2026:18:58:21] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:58:21] (root_api-) op => getUsersCourseRole ,user_id => 184 ,course_id => 25 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:18:58:21] (root_api-) OP= getUsersCourseRole of page root_api.php
[02/Feb/2026:18:58:21] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:58:21:0221~2026-02-02 18:58:21~success
[02/Feb/2026:18:58:21] (root_api-) serviceName course_data
[02/Feb/2026:18:58:21] (root_api-) Query~SELECT ed_role FROM tbl_course_educator WHERE  course_id = '25' AND user_id = 184~2026-02-02 18:58:21:0221~2026-02-02 18:58:21~success
[02/Feb/2026:18:58:21] (root_api-) Final JSON =  {"status":"ok","message":"","Errorcode":"","data":{"ed_role":"author"}}
[02/Feb/2026:18:58:21] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:58:21] (root_api-) op => get-my-contents-card-info ,user_id => 184 ,course_id => 25 ,deckId => 83 ,cardId => 2475 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:18:58:21] (root_api-) OP= get-my-contents-card-info of page root_api.php
[02/Feb/2026:18:58:21] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:58:21:0221~2026-02-02 18:58:21~success
[02/Feb/2026:18:58:21] (root_api-) serviceName course_data
[02/Feb/2026:18:58:21] (root_api-) Query~SELECT tc.card_id,tc.card_style,tc.card_title,tc.card_image_url,tc.card_video_url, CASE WHEN tc.card_style = 0 THEN 'Text' ELSE 'Image' END AS card_styleText  , tc.question_text, tc.status AS cardStatus, tc.answer_text, dc.deck_id,dc.sequence as cardSequence, tc.version, tc.card_parent_id
            FROM tbl_card tc
            INNER JOIN tbl_deck_card dc ON dc.card_id = tc.card_id
            Where dc.deck_id = '83' AND tc.card_id = '2475' AND tc.card_type = 'main' /*AND tc.created_by = '184'*/~2026-02-02 18:58:21:0221~2026-02-02 18:58:21~success
[02/Feb/2026:18:58:21] (root_api-) Query~select tc.card_parent_id, dc.deck_id as card_parent_deckid, tcd.course_id as card_parent_courseid from tbl_card tc, tbl_deck_card dc, tbl_course_deck tcd WHERE tc.card_parent_id=2475 AND tc.version = 0 AND tc.card_parent_id=dc.card_id AND dc.deck_id=tcd.deck_id~2026-02-02 18:58:21:0221~2026-02-02 18:58:21~success
[02/Feb/2026:18:58:21] (root_api-) Query~select tc.card_id as card_child_id, dc.deck_id as card_child_deckid, tcd.course_id as card_child_courseid from tbl_card tc, tbl_deck_card dc, tbl_course_deck tcd WHERE tc.card_parent_id=2475 AND tc.version = 2 AND tc.card_parent_id=dc.card_id AND dc.deck_id=tcd.deck_id~2026-02-02 18:58:21:0221~2026-02-02 18:58:21~success
[02/Feb/2026:18:58:21] (root_api-) Final JSON =  {"status":"ok",
                    "message":"",
                    "Errorcode":"",
                    "data":{"card_id":"2475","card_style":"0","card_title":"Card#2475","card_image_url":"","card_video_url":"","card_styleText":"Text","question_text":"","cardStatus":"Draft","answer_text":"","deck_id":"83","cardSequence":"17","version":"1","card_parent_id":null,"card_parent_deckid":null,"card_parent_courseid":null,"card_child_id":null,"card_child_deckid":null,"card_child_courseid":null}}
[02/Feb/2026:18:58:21] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:58:21] (root_api-) op => getCourseDetail ,course_id => 25 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:18:58:21] (root_api-) OP= getCourseDetail of page root_api.php
[02/Feb/2026:18:58:21] (root_api-) serviceName course_data
[02/Feb/2026:18:58:21] (root_api-) Query~SELECT * FROM tbl_course where course_id = '25' AND status NOT IN('Discard')~2026-02-02 18:58:21:0221~2026-02-02 18:58:21~success
[02/Feb/2026:18:58:21] (root_api-) Query~SELECT course_image_id, course_image, sequence, status FROM tbl_course_images where course_id = 25 ORDER BY sequence DESC~2026-02-02 18:58:21:0221~2026-02-02 18:58:21~success
[02/Feb/2026:18:58:21] (root_api-) Query~select course_id as prev_course_id from tbl_course where course_parent_id = 25 AND version = 0 AND status NOT IN('Discard')~2026-02-02 18:58:21:0221~2026-02-02 18:58:21~success
[02/Feb/2026:18:58:21] (root_api-) Query~select course_id as next_course_id from tbl_course where course_parent_id = 25 AND version = 2 AND status NOT IN('Discard')~2026-02-02 18:58:21:0221~2026-02-02 18:58:21~success
[02/Feb/2026:18:58:21] (root_api-) Final JSON =  {"status":"ok","message":"Course Details fetched Successfully","Errorcode":"","data":[{"course_id":"25","course_parent_id":"25","version":"1","org_id":"2","course_name":"Grade 8 Mathematics","short_name":"","status":"Draft","eval_id":"1","course_desc":"Grade 8 Mathematics aims to build strong foundational skills required to prepare learners for higher grades of mathematics and develop strong, appropriate mathematical reasoning and logical thinking. ","amount":"0","currency":null,"pay_type":"paid","course_brief":null,"course_duration":"16","background_color":"","text_color":"","creation_date":"2025-07-16 13:21:03","created_by":"184","updation_date":"2026-01-07 12:53:22","updated_by":"184","images":[],"parentid":"","childid":""}]}
[02/Feb/2026:18:58:21] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:58:21] (root_api-) op => get-my-contents-deck-info ,user_id => 184 ,course_id => 25 ,deckId => 83 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:18:58:21] (root_api-) OP= get-my-contents-deck-info of page root_api.php
[02/Feb/2026:18:58:21] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 18:58:21:0221~2026-02-02 18:58:21~success
[02/Feb/2026:18:58:21] (root_api-) serviceName course_data
[02/Feb/2026:18:58:21] (root_api-) Query~SELECT td.deck_id, td.created_by, tcd.course_id, 
            ifnull(tcd.deck_name,td.deck_name) deck_name,
            ifnull(tcd.short_name,td.short_name) short_name,
            ifnull(tcd.eval_id,td.eval_id) eval_id,
            ifnull(tcd.deck_desc,td.deck_desc) deck_desc,
            ifnull(tcd.deck_brief,td.deck_brief) deck_brief,
            td.status AS deckStatus,
            td.version
            FROM tbl_deck td 
            INNER JOIN tbl_course_deck tcd ON tcd.deck_id = td.deck_id AND course_id = '25' AND tcd.created_by = '184'
            Where td.deck_id = '83' AND td.deck_type = 'main' AND td.created_by = '184'~2026-02-02 18:58:21:0221~2026-02-02 18:58:21~success
[02/Feb/2026:18:58:21] (root_api-) Query~select td.deck_parent_id, cd.course_id as parent_courseid from tbl_deck td, tbl_course_deck cd where td.deck_id = 83 AND td.deck_parent_id <> 83 AND td.deck_parent_id = cd.deck_id~2026-02-02 18:58:21:0221~2026-02-02 18:58:21~success
[02/Feb/2026:18:58:21] (root_api-) Query~select td.deck_id as deck_child_id, cd.course_id as child_courseid from tbl_deck td, tbl_course_deck cd where td.deck_parent_id = 83 AND td.deck_id <> 83 AND td.deck_id = cd.deck_id~2026-02-02 18:58:21:0221~2026-02-02 18:58:21~success
[02/Feb/2026:18:58:21] (root_api-) Final JSON =  {"status":"ok",
                    "message":"",
                    "Errorcode":"",
                    "data":{"deck_id":"83","created_by":"184","course_id":"25","deck_name":"Data Handling ","short_name":"Data Handling","eval_id":"1","deck_desc":"Data handling helps learners interpret and understand the various pieces of information that may be collected when looking at data as well as different ways to summarise and read data. ","deck_brief":"","deckStatus":"Draft","version":"1","parentid":"","childid":""}}
[02/Feb/2026:18:58:22] (root_api-) token =  IP = 169.0.141.180
[02/Feb/2026:18:58:22] (root_api-) 
[02/Feb/2026:18:58:22] (root_api-) OP=  of page root_api.php
[02/Feb/2026:18:58:22] (root_api-) Final JSON =  { "status":"error",
					"message":"Invalid Session",
					"Errorcode":"err100",
					"data":{}}
[02/Feb/2026:18:58:22] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:18:58:22] (root_api-) op => api-refresh ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => common_data ,
[02/Feb/2026:18:58:22] (root_api-) OP= api-refresh of page root_api.php
[02/Feb/2026:18:58:22] (root_api-) serviceName common_data
[02/Feb/2026:18:58:22] (root_api-) Final JSON =  {"status":"ok","message":"","Errorcode":"","data":""}
[02/Feb/2026:19:02:15] (root_api-) token =  IP = 169.0.141.180
[02/Feb/2026:19:02:15] (root_api-) deckId => 83 ,cardId => 2475 ,courseId => 25 ,mediafor => Q ,userId => 184 ,action => cardImage ,op => updateCardImage ,serviceName => course_data ,clid => 66bbc87451ad3590b670daae13ee0619 ,
[02/Feb/2026:19:02:15] (root_api-) OP= updateCardImage of page root_api.php
[02/Feb/2026:19:02:15] (root_api-) serviceName course_data
[02/Feb/2026:19:02:15] (root_api-) Final JSON =  {"status":"ok","message":"","Errorcode":"","data":{"mediafor":"Q","img_url":"https:\/\/bo.coglearn.cioinfotech.com\/upload\/courses\/course_25\/deck_83\/card_2475\/image 4 jpeg..jpg"}}
[02/Feb/2026:19:05:10] (root_api-) token =  IP = 169.0.141.180
[02/Feb/2026:19:05:10] (root_api-) deckId => 83 ,cardId => 2475 ,courseId => 25 ,mediafor => A ,userId => 184 ,action => cardImage ,op => updateCardImage ,serviceName => course_data ,clid => 66bbc87451ad3590b670daae13ee0619 ,
[02/Feb/2026:19:05:10] (root_api-) OP= updateCardImage of page root_api.php
[02/Feb/2026:19:05:10] (root_api-) serviceName course_data
[02/Feb/2026:19:05:10] (root_api-) Final JSON =  {"status":"ok","message":"","Errorcode":"","data":{"mediafor":"A","img_url":"https:\/\/bo.coglearn.cioinfotech.com\/upload\/courses\/course_25\/deck_83\/card_2475\/image 5 jpeg..jpg"}}
[02/Feb/2026:19:05:12] (root_api-) token =  IP = 169.0.141.180
[02/Feb/2026:19:05:12] (root_api-) 
[02/Feb/2026:19:05:12] (root_api-) OP=  of page root_api.php
[02/Feb/2026:19:05:12] (root_api-) Final JSON =  { "status":"error",
					"message":"Invalid Session",
					"Errorcode":"err100",
					"data":{}}
[02/Feb/2026:19:05:12] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:19:05:12] (root_api-) op => user-card-operation ,userId => 184 ,courseId => 25 ,cardDeckMode => edit ,cardDeckId => 83 ,questionText => <p>Represent the following numbers as tally marks using the tally table.</p><p>11; 18; 5; 7; 20</p><p><img src="https://bo.coglearn.cioinfotech.com/upload/courses/course_25/deck_83/card_2475/image 4 jpeg..jpg" style="width: 476px;"><br></p> ,answerText => <p><img src="https://bo.coglearn.cioinfotech.com/upload/courses/course_25/deck_83/card_2475/image 5 jpeg..jpg" style="width: 477px;"></p><p><br></p> ,editCardId => 2475 ,action => SAVE_AND_NEXT ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => deck_data ,
[02/Feb/2026:19:05:12] (root_api-) OP= user-card-operation of page root_api.php
[02/Feb/2026:19:05:12] (root_api-) serviceName deck_data
[02/Feb/2026:19:05:12] (root_api-) Query~SELECT count(1) as deckCardCount FROM tbl_deck_card WHERE deck_id = '83' AND card_id = '2475'~2026-02-02 19:05:12:0212~2026-02-02 19:05:12~success
[02/Feb/2026:19:05:12] (root_api-) Query~SELECT question_text, answer_text FROM tbl_card  WHERE card_id = '2475'~2026-02-02 19:05:12:0212~2026-02-02 19:05:12~success
[02/Feb/2026:19:05:12] (root_api-) In case Card Updated query = UPDATE tbl_card SET card_style = '0' , question_text = '<p>Represent the following numbers as tally marks using the tally table.</p><p>11; 18; 5; 7; 20</p><p><img src=\"https://bo.coglearn.cioinfotech.com/upload/courses/course_25/deck_83/card_2475/image 4 jpeg..jpg\" style=\"width: 476px;\"><br></p>', answer_text = '<p><img src=\"https://bo.coglearn.cioinfotech.com/upload/courses/course_25/deck_83/card_2475/image 5 jpeg..jpg\" style=\"width: 477px;\"></p><p><br></p>', card_type='main', updation_date = NOW(), updated_by = '184', card_title = '', card_image_url = '', 
                    onlyTextQuestion = '', onlyTextAnswer = '' 
                    WHERE card_id = '2475'
[02/Feb/2026:19:05:12] (root_api-) Query~UPDATE tbl_card SET card_style = '0' , question_text = '<p>Represent the following numbers as tally marks using the tally table.</p><p>11; 18; 5; 7; 20</p><p><img src=\"https://bo.coglearn.cioinfotech.com/upload/courses/course_25/deck_83/card_2475/image 4 jpeg..jpg\" style=\"width: 476px;\"><br></p>', answer_text = '<p><img src=\"https://bo.coglearn.cioinfotech.com/upload/courses/course_25/deck_83/card_2475/image 5 jpeg..jpg\" style=\"width: 477px;\"></p><p><br></p>', card_type='main', updation_date = NOW(), updated_by = '184', card_title = '', card_image_url = '', 
                    onlyTextQuestion = '', onlyTextAnswer = '' 
                    WHERE card_id = '2475'~2026-02-02 19:05:12:0212~2026-02-02 19:05:12~success
[02/Feb/2026:19:05:12] (root_api-) Final JSON =  {"status":"ok","message":"Card Created Successfully!!","Errorcode":"","data":"","action":"SAVE_AND_NEXT"}
[02/Feb/2026:19:05:15] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:19:05:15] (root_api-) op => getSwitchRoles ,user_id => 184 ,org_id => 1 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => user_data ,
[02/Feb/2026:19:05:15] (root_api-) OP= getSwitchRoles of page root_api.php
[02/Feb/2026:19:05:15] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 19:05:15:0215~2026-02-02 19:05:15~success
[02/Feb/2026:19:05:15] (root_api-) Query~SELECT count(1) as cnt FROM tbl_org  WHERE status = 'Active' AND org_id ='1'~2026-02-02 19:05:15:0215~2026-02-02 19:05:15~success
[02/Feb/2026:19:05:15] (root_api-) Query~SELECT count(1) as cnt FROM tbl_user_org u WHERE u.status = 'Active' AND u.user_id ='184' AND  org_id ='1'~2026-02-02 19:05:15:0215~2026-02-02 19:05:15~success
[02/Feb/2026:19:05:15] (root_api-) serviceName user_data
[02/Feb/2026:19:05:15] (root_api-) Query~SELECT u.user_org_id, u.org_id, u.role_id, um.email,o.org_name,r.role_name,o.short_name,CONCAT(u.role_id,'_',u.org_id) as user_org_role
            FROM tbl_user_org u 
            inner join tbl_org o on u.org_id=o.org_id
            inner join tbl_role_master r on r.role_id=u.role_id
            inner join tbl_user_master um on u.user_id = um.user_id
            where u.user_id= 184~2026-02-02 19:05:15:0215~2026-02-02 19:05:15~success
[02/Feb/2026:19:05:15] (root_api-) Final JSON =  {"status":"ok","message":"User Details fetched Successfully!!","Errorcode":"","data":[{"user_org_id":"225","org_id":"1","role_id":"3","email":"alhenaude20@gmail.com","org_name":"University Of Cape Town","role_name":"Learner","short_name":"UCT","user_org_role":"3_1"},{"user_org_id":"226","org_id":"2","role_id":"2","email":"alhenaude20@gmail.com","org_name":"C-Institute","role_name":"Educator","short_name":"C-Institute","user_org_role":"2_2"}]}
[02/Feb/2026:19:05:15] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:19:05:15] (root_api-) op => createBlankCard ,course_id => 25 ,cardDeckId => 83 ,userId => 184 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => deck_data ,
[02/Feb/2026:19:05:15] (root_api-) OP= createBlankCard of page root_api.php
[02/Feb/2026:19:05:15] (root_api-) serviceName deck_data
[02/Feb/2026:19:05:15] (root_api-) Query~SELECT count(1) as deckCount FROM tbl_deck WHERE deck_id = '83'~2026-02-02 19:05:15:0215~2026-02-02 19:05:15~success
[02/Feb/2026:19:05:15] (root_api-) Query~select ifnull(max(card_parent_id),0)+1 as maxId from tbl_card_parent~2026-02-02 19:05:15:0215~2026-02-02 19:05:15~success
[02/Feb/2026:19:05:15] (root_api-) In case tbl_card_parent Insert query = INSERT into tbl_card_parent (card_parent_id, last_version, draft_version, published_version, creation_date, created_by) 
                    VALUES (2476,'1','1','0', NOW(), '184')
[02/Feb/2026:19:05:15] (root_api-) Query~INSERT into tbl_card_parent (card_parent_id, last_version, draft_version, published_version, creation_date, created_by) 
                    VALUES (2476,'1','1','0', NOW(), '184')~2026-02-02 19:05:15:0215~2026-02-02 19:05:15~success
[02/Feb/2026:19:05:15] (root_api-) Query~select ifnull(max(card_parent_id),0) as lastInsertedId from tbl_card_parent~2026-02-02 19:05:15:0215~2026-02-02 19:05:15~success
[02/Feb/2026:19:05:15] (root_api-) Query~select ifnull(max(card_id),0)+1 as maxId from tbl_card~2026-02-02 19:05:15:0215~2026-02-02 19:05:15~success
[02/Feb/2026:19:05:15] (root_api-) In case tbl_card Insert query = INSERT into tbl_card (card_id, card_parent_id, version, card_style, status, card_type, question_text, answer_text, creation_date, created_by) 
                     VALUES (2476, 2476,  1, '0','Draft','main','','', NOW(), '184')
[02/Feb/2026:19:05:15] (root_api-) Query~INSERT into tbl_card (card_id, card_parent_id, version, card_style, status, card_type, question_text, answer_text, creation_date, created_by) 
                     VALUES (2476, 2476,  1, '0','Draft','main','','', NOW(), '184')~2026-02-02 19:05:15:0215~2026-02-02 19:05:15~success
[02/Feb/2026:19:05:15] (root_api-) Query~select ifnull(max(card_id),0) as lastInsertedId from tbl_card~2026-02-02 19:05:15:0215~2026-02-02 19:05:15~success
[02/Feb/2026:19:05:15] (root_api-) Query~UPDATE tbl_card set card_title = 'Card#2476' WHERE card_id= 2476~2026-02-02 19:05:15:0215~2026-02-02 19:05:15~success
[02/Feb/2026:19:05:15] (root_api-) Query~SELECT IFNULL(MAX(sequence), 0) as lastSequenceNumber FROM tbl_deck_card WHERE deck_id = '83'~2026-02-02 19:05:15:0215~2026-02-02 19:05:15~success
[02/Feb/2026:19:05:15] (root_api-) Query~select ifnull(max(deck_card_id),0)+1 as maxId from tbl_deck_card~2026-02-02 19:05:15:0215~2026-02-02 19:05:15~success
[02/Feb/2026:19:05:15] (root_api-) In case tbl_deck_card Insert query = INSERT into tbl_deck_card (deck_card_id, deck_id, card_id, sequence, creation_date, created_by) 
                        VALUES (2476,'83','2476','18', NOW(), '184')
[02/Feb/2026:19:05:15] (root_api-) Query~INSERT into tbl_deck_card (deck_card_id, deck_id, card_id, sequence, creation_date, created_by) 
                        VALUES (2476,'83','2476','18', NOW(), '184')~2026-02-02 19:05:15:0215~2026-02-02 19:05:15~success
[02/Feb/2026:19:05:15] (root_api-) Final JSON =  {"status":"ok","message":"Card inserted Successfully!!","Errorcode":"","data":"2476"}
[02/Feb/2026:19:05:16] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:19:05:16] (root_api-) op => getSwitchRoles ,user_id => 184 ,org_id => 1 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => user_data ,
[02/Feb/2026:19:05:16] (root_api-) OP= getSwitchRoles of page root_api.php
[02/Feb/2026:19:05:16] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 19:05:16:0216~2026-02-02 19:05:16~success
[02/Feb/2026:19:05:16] (root_api-) Query~SELECT count(1) as cnt FROM tbl_org  WHERE status = 'Active' AND org_id ='1'~2026-02-02 19:05:16:0216~2026-02-02 19:05:16~success
[02/Feb/2026:19:05:16] (root_api-) Query~SELECT count(1) as cnt FROM tbl_user_org u WHERE u.status = 'Active' AND u.user_id ='184' AND  org_id ='1'~2026-02-02 19:05:16:0216~2026-02-02 19:05:16~success
[02/Feb/2026:19:05:16] (root_api-) serviceName user_data
[02/Feb/2026:19:05:16] (root_api-) Query~SELECT u.user_org_id, u.org_id, u.role_id, um.email,o.org_name,r.role_name,o.short_name,CONCAT(u.role_id,'_',u.org_id) as user_org_role
            FROM tbl_user_org u 
            inner join tbl_org o on u.org_id=o.org_id
            inner join tbl_role_master r on r.role_id=u.role_id
            inner join tbl_user_master um on u.user_id = um.user_id
            where u.user_id= 184~2026-02-02 19:05:16:0216~2026-02-02 19:05:16~success
[02/Feb/2026:19:05:16] (root_api-) Final JSON =  {"status":"ok","message":"User Details fetched Successfully!!","Errorcode":"","data":[{"user_org_id":"225","org_id":"1","role_id":"3","email":"alhenaude20@gmail.com","org_name":"University Of Cape Town","role_name":"Learner","short_name":"UCT","user_org_role":"3_1"},{"user_org_id":"226","org_id":"2","role_id":"2","email":"alhenaude20@gmail.com","org_name":"C-Institute","role_name":"Educator","short_name":"C-Institute","user_org_role":"2_2"}]}
[02/Feb/2026:19:05:17] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:19:05:17] (root_api-) op => getUsersCourseRole ,user_id => 184 ,course_id => 25 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:19:05:17] (root_api-) OP= getUsersCourseRole of page root_api.php
[02/Feb/2026:19:05:17] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:19:05:17] (root_api-) op => get-my-contents-card-info ,user_id => 184 ,course_id => 25 ,deckId => 83 ,cardId => 2476 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:19:05:17] (root_api-) OP= get-my-contents-card-info of page root_api.php
[02/Feb/2026:19:05:17] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 19:05:17:0217~2026-02-02 19:05:17~success
[02/Feb/2026:19:05:17] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 19:05:17:0217~2026-02-02 19:05:17~success
[02/Feb/2026:19:05:17] (root_api-) serviceName course_data
[02/Feb/2026:19:05:17] (root_api-) serviceName course_data
[02/Feb/2026:19:05:17] (root_api-) Query~SELECT ed_role FROM tbl_course_educator WHERE  course_id = '25' AND user_id = 184~2026-02-02 19:05:17:0217~2026-02-02 19:05:17~success
[02/Feb/2026:19:05:17] (root_api-) Final JSON =  {"status":"ok","message":"","Errorcode":"","data":{"ed_role":"author"}}
[02/Feb/2026:19:05:17] (root_api-) Query~SELECT tc.card_id,tc.card_style,tc.card_title,tc.card_image_url,tc.card_video_url, CASE WHEN tc.card_style = 0 THEN 'Text' ELSE 'Image' END AS card_styleText  , tc.question_text, tc.status AS cardStatus, tc.answer_text, dc.deck_id,dc.sequence as cardSequence, tc.version, tc.card_parent_id
            FROM tbl_card tc
            INNER JOIN tbl_deck_card dc ON dc.card_id = tc.card_id
            Where dc.deck_id = '83' AND tc.card_id = '2476' AND tc.card_type = 'main' /*AND tc.created_by = '184'*/~2026-02-02 19:05:17:0217~2026-02-02 19:05:17~success
[02/Feb/2026:19:05:17] (root_api-) Query~select tc.card_parent_id, dc.deck_id as card_parent_deckid, tcd.course_id as card_parent_courseid from tbl_card tc, tbl_deck_card dc, tbl_course_deck tcd WHERE tc.card_parent_id=2476 AND tc.version = 0 AND tc.card_parent_id=dc.card_id AND dc.deck_id=tcd.deck_id~2026-02-02 19:05:17:0217~2026-02-02 19:05:17~success
[02/Feb/2026:19:05:17] (root_api-) Query~select tc.card_id as card_child_id, dc.deck_id as card_child_deckid, tcd.course_id as card_child_courseid from tbl_card tc, tbl_deck_card dc, tbl_course_deck tcd WHERE tc.card_parent_id=2476 AND tc.version = 2 AND tc.card_parent_id=dc.card_id AND dc.deck_id=tcd.deck_id~2026-02-02 19:05:17:0217~2026-02-02 19:05:17~success
[02/Feb/2026:19:05:17] (root_api-) Final JSON =  {"status":"ok",
                    "message":"",
                    "Errorcode":"",
                    "data":{"card_id":"2476","card_style":"0","card_title":"Card#2476","card_image_url":"","card_video_url":"","card_styleText":"Text","question_text":"","cardStatus":"Draft","answer_text":"","deck_id":"83","cardSequence":"18","version":"1","card_parent_id":null,"card_parent_deckid":null,"card_parent_courseid":null,"card_child_id":null,"card_child_deckid":null,"card_child_courseid":null}}
[02/Feb/2026:19:05:17] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:19:05:17] (root_api-) op => getCourseDetail ,course_id => 25 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:19:05:17] (root_api-) OP= getCourseDetail of page root_api.php
[02/Feb/2026:19:05:17] (root_api-) serviceName course_data
[02/Feb/2026:19:05:17] (root_api-) Query~SELECT * FROM tbl_course where course_id = '25' AND status NOT IN('Discard')~2026-02-02 19:05:17:0217~2026-02-02 19:05:17~success
[02/Feb/2026:19:05:17] (root_api-) Query~SELECT course_image_id, course_image, sequence, status FROM tbl_course_images where course_id = 25 ORDER BY sequence DESC~2026-02-02 19:05:17:0217~2026-02-02 19:05:17~success
[02/Feb/2026:19:05:17] (root_api-) Query~select course_id as prev_course_id from tbl_course where course_parent_id = 25 AND version = 0 AND status NOT IN('Discard')~2026-02-02 19:05:17:0217~2026-02-02 19:05:17~success
[02/Feb/2026:19:05:17] (root_api-) Query~select course_id as next_course_id from tbl_course where course_parent_id = 25 AND version = 2 AND status NOT IN('Discard')~2026-02-02 19:05:17:0217~2026-02-02 19:05:17~success
[02/Feb/2026:19:05:17] (root_api-) Final JSON =  {"status":"ok","message":"Course Details fetched Successfully","Errorcode":"","data":[{"course_id":"25","course_parent_id":"25","version":"1","org_id":"2","course_name":"Grade 8 Mathematics","short_name":"","status":"Draft","eval_id":"1","course_desc":"Grade 8 Mathematics aims to build strong foundational skills required to prepare learners for higher grades of mathematics and develop strong, appropriate mathematical reasoning and logical thinking. ","amount":"0","currency":null,"pay_type":"paid","course_brief":null,"course_duration":"16","background_color":"","text_color":"","creation_date":"2025-07-16 13:21:03","created_by":"184","updation_date":"2026-01-07 12:53:22","updated_by":"184","images":[],"parentid":"","childid":""}]}
[02/Feb/2026:19:05:17] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:19:05:17] (root_api-) op => get-my-contents-deck-info ,user_id => 184 ,course_id => 25 ,deckId => 83 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:19:05:17] (root_api-) OP= get-my-contents-deck-info of page root_api.php
[02/Feb/2026:19:05:17] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 19:05:17:0217~2026-02-02 19:05:17~success
[02/Feb/2026:19:05:17] (root_api-) serviceName course_data
[02/Feb/2026:19:05:17] (root_api-) Query~SELECT td.deck_id, td.created_by, tcd.course_id, 
            ifnull(tcd.deck_name,td.deck_name) deck_name,
            ifnull(tcd.short_name,td.short_name) short_name,
            ifnull(tcd.eval_id,td.eval_id) eval_id,
            ifnull(tcd.deck_desc,td.deck_desc) deck_desc,
            ifnull(tcd.deck_brief,td.deck_brief) deck_brief,
            td.status AS deckStatus,
            td.version
            FROM tbl_deck td 
            INNER JOIN tbl_course_deck tcd ON tcd.deck_id = td.deck_id AND course_id = '25' AND tcd.created_by = '184'
            Where td.deck_id = '83' AND td.deck_type = 'main' AND td.created_by = '184'~2026-02-02 19:05:17:0217~2026-02-02 19:05:17~success
[02/Feb/2026:19:05:17] (root_api-) Query~select td.deck_parent_id, cd.course_id as parent_courseid from tbl_deck td, tbl_course_deck cd where td.deck_id = 83 AND td.deck_parent_id <> 83 AND td.deck_parent_id = cd.deck_id~2026-02-02 19:05:17:0217~2026-02-02 19:05:17~success
[02/Feb/2026:19:05:17] (root_api-) Query~select td.deck_id as deck_child_id, cd.course_id as child_courseid from tbl_deck td, tbl_course_deck cd where td.deck_parent_id = 83 AND td.deck_id <> 83 AND td.deck_id = cd.deck_id~2026-02-02 19:05:17:0217~2026-02-02 19:05:17~success
[02/Feb/2026:19:05:17] (root_api-) Final JSON =  {"status":"ok",
                    "message":"",
                    "Errorcode":"",
                    "data":{"deck_id":"83","created_by":"184","course_id":"25","deck_name":"Data Handling ","short_name":"Data Handling","eval_id":"1","deck_desc":"Data handling helps learners interpret and understand the various pieces of information that may be collected when looking at data as well as different ways to summarise and read data. ","deck_brief":"","deckStatus":"Draft","version":"1","parentid":"","childid":""}}
[02/Feb/2026:19:05:18] (root_api-) token =  IP = 169.0.141.180
[02/Feb/2026:19:05:18] (root_api-) 
[02/Feb/2026:19:05:18] (root_api-) OP=  of page root_api.php
[02/Feb/2026:19:05:18] (root_api-) Final JSON =  { "status":"error",
					"message":"Invalid Session",
					"Errorcode":"err100",
					"data":{}}
[02/Feb/2026:19:05:18] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:19:05:18] (root_api-) op => api-refresh ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => common_data ,
[02/Feb/2026:19:05:18] (root_api-) OP= api-refresh of page root_api.php
[02/Feb/2026:19:05:18] (root_api-) serviceName common_data
[02/Feb/2026:19:05:18] (root_api-) Final JSON =  {"status":"ok","message":"","Errorcode":"","data":""}
[02/Feb/2026:19:07:39] (root_api-) token =  IP = 169.0.141.180
[02/Feb/2026:19:07:39] (root_api-) deckId => 83 ,cardId => 2476 ,courseId => 25 ,mediafor => Q ,userId => 184 ,action => cardImage ,op => updateCardImage ,serviceName => course_data ,clid => 66bbc87451ad3590b670daae13ee0619 ,
[02/Feb/2026:19:07:39] (root_api-) OP= updateCardImage of page root_api.php
[02/Feb/2026:19:07:39] (root_api-) serviceName course_data
[02/Feb/2026:19:07:39] (root_api-) Final JSON =  {"status":"ok","message":"","Errorcode":"","data":{"mediafor":"Q","img_url":"https:\/\/bo.coglearn.cioinfotech.com\/upload\/courses\/course_25\/deck_83\/card_2476\/image 6 jpeg..jpg"}}
[02/Feb/2026:19:10:19] (root_api-) token =  IP = 169.0.141.180
[02/Feb/2026:19:10:19] (root_api-) deckId => 83 ,cardId => 2476 ,courseId => 25 ,mediafor => A ,userId => 184 ,action => cardImage ,op => updateCardImage ,serviceName => course_data ,clid => 66bbc87451ad3590b670daae13ee0619 ,
[02/Feb/2026:19:10:19] (root_api-) OP= updateCardImage of page root_api.php
[02/Feb/2026:19:10:19] (root_api-) serviceName course_data
[02/Feb/2026:19:10:19] (root_api-) Final JSON =  {"status":"ok","message":"","Errorcode":"","data":{"mediafor":"A","img_url":"https:\/\/bo.coglearn.cioinfotech.com\/upload\/courses\/course_25\/deck_83\/card_2476\/image 7 jpeg..jpg"}}
[02/Feb/2026:19:10:21] (root_api-) token =  IP = 169.0.141.180
[02/Feb/2026:19:10:21] (root_api-) 
[02/Feb/2026:19:10:21] (root_api-) OP=  of page root_api.php
[02/Feb/2026:19:10:21] (root_api-) Final JSON =  { "status":"error",
					"message":"Invalid Session",
					"Errorcode":"err100",
					"data":{}}
[02/Feb/2026:19:10:21] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:19:10:21] (root_api-) op => user-card-operation ,userId => 184 ,courseId => 25 ,cardDeckMode => edit ,cardDeckId => 83 ,questionText => <p>Represent the following set of numbers using a stem and leaf diagram.</p><p>11; 23; 45; 42; 33; 33; 18; 17; 16; 22; 29; 31; 51; 55; 43</p><p>Use the following format to get yourself started.</p><p><img src="https://bo.coglearn.cioinfotech.com/upload/courses/course_25/deck_83/card_2476/image 6 jpeg..jpg" style="width: 249px;"></p><p><br></p> ,answerText => <p><img src="https://bo.coglearn.cioinfotech.com/upload/courses/course_25/deck_83/card_2476/image 7 jpeg..jpg" style="width: 244px;"><br></p> ,editCardId => 2476 ,action => SAVE ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => deck_data ,
[02/Feb/2026:19:10:21] (root_api-) OP= user-card-operation of page root_api.php
[02/Feb/2026:19:10:21] (root_api-) serviceName deck_data
[02/Feb/2026:19:10:21] (root_api-) Query~SELECT count(1) as deckCardCount FROM tbl_deck_card WHERE deck_id = '83' AND card_id = '2476'~2026-02-02 19:10:21:0221~2026-02-02 19:10:21~success
[02/Feb/2026:19:10:21] (root_api-) Query~SELECT question_text, answer_text FROM tbl_card  WHERE card_id = '2476'~2026-02-02 19:10:21:0221~2026-02-02 19:10:21~success
[02/Feb/2026:19:10:21] (root_api-) In case Card Updated query = UPDATE tbl_card SET card_style = '0' , question_text = '<p>Represent the following set of numbers using a stem and leaf diagram.</p><p>11; 23; 45; 42; 33; 33; 18; 17; 16; 22; 29; 31; 51; 55; 43</p><p>Use the following format to get yourself started.</p><p><img src=\"https://bo.coglearn.cioinfotech.com/upload/courses/course_25/deck_83/card_2476/image 6 jpeg..jpg\" style=\"width: 249px;\"></p><p><br></p>', answer_text = '<p><img src=\"https://bo.coglearn.cioinfotech.com/upload/courses/course_25/deck_83/card_2476/image 7 jpeg..jpg\" style=\"width: 244px;\"><br></p>', card_type='main', updation_date = NOW(), updated_by = '184', card_title = '', card_image_url = '', 
                    onlyTextQuestion = '', onlyTextAnswer = '' 
                    WHERE card_id = '2476'
[02/Feb/2026:19:10:21] (root_api-) Query~UPDATE tbl_card SET card_style = '0' , question_text = '<p>Represent the following set of numbers using a stem and leaf diagram.</p><p>11; 23; 45; 42; 33; 33; 18; 17; 16; 22; 29; 31; 51; 55; 43</p><p>Use the following format to get yourself started.</p><p><img src=\"https://bo.coglearn.cioinfotech.com/upload/courses/course_25/deck_83/card_2476/image 6 jpeg..jpg\" style=\"width: 249px;\"></p><p><br></p>', answer_text = '<p><img src=\"https://bo.coglearn.cioinfotech.com/upload/courses/course_25/deck_83/card_2476/image 7 jpeg..jpg\" style=\"width: 244px;\"><br></p>', card_type='main', updation_date = NOW(), updated_by = '184', card_title = '', card_image_url = '', 
                    onlyTextQuestion = '', onlyTextAnswer = '' 
                    WHERE card_id = '2476'~2026-02-02 19:10:21:0221~2026-02-02 19:10:21~success
[02/Feb/2026:19:10:21] (root_api-) Final JSON =  {"status":"ok","message":"Card Created Successfully!!","Errorcode":"","data":"","action":"SAVE"}
[02/Feb/2026:19:10:23] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:19:10:23] (root_api-) op => getSwitchRoles ,user_id => 184 ,org_id => 1 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => user_data ,
[02/Feb/2026:19:10:23] (root_api-) OP= getSwitchRoles of page root_api.php
[02/Feb/2026:19:10:23] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 19:10:23:0223~2026-02-02 19:10:23~success
[02/Feb/2026:19:10:23] (root_api-) Query~SELECT count(1) as cnt FROM tbl_org  WHERE status = 'Active' AND org_id ='1'~2026-02-02 19:10:23:0223~2026-02-02 19:10:23~success
[02/Feb/2026:19:10:23] (root_api-) Query~SELECT count(1) as cnt FROM tbl_user_org u WHERE u.status = 'Active' AND u.user_id ='184' AND  org_id ='1'~2026-02-02 19:10:23:0223~2026-02-02 19:10:23~success
[02/Feb/2026:19:10:23] (root_api-) serviceName user_data
[02/Feb/2026:19:10:23] (root_api-) Query~SELECT u.user_org_id, u.org_id, u.role_id, um.email,o.org_name,r.role_name,o.short_name,CONCAT(u.role_id,'_',u.org_id) as user_org_role
            FROM tbl_user_org u 
            inner join tbl_org o on u.org_id=o.org_id
            inner join tbl_role_master r on r.role_id=u.role_id
            inner join tbl_user_master um on u.user_id = um.user_id
            where u.user_id= 184~2026-02-02 19:10:23:0223~2026-02-02 19:10:23~success
[02/Feb/2026:19:10:23] (root_api-) Final JSON =  {"status":"ok","message":"User Details fetched Successfully!!","Errorcode":"","data":[{"user_org_id":"225","org_id":"1","role_id":"3","email":"alhenaude20@gmail.com","org_name":"University Of Cape Town","role_name":"Learner","short_name":"UCT","user_org_role":"3_1"},{"user_org_id":"226","org_id":"2","role_id":"2","email":"alhenaude20@gmail.com","org_name":"C-Institute","role_name":"Educator","short_name":"C-Institute","user_org_role":"2_2"}]}
[02/Feb/2026:19:10:23] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:19:10:23] (root_api-) op => get-my-contents-card-info ,user_id => 184 ,course_id => 25 ,deckId => 83 ,cardId => 2476 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:19:10:23] (root_api-) OP= get-my-contents-card-info of page root_api.php
[02/Feb/2026:19:10:23] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 19:10:23:0223~2026-02-02 19:10:23~success
[02/Feb/2026:19:10:23] (root_api-) serviceName course_data
[02/Feb/2026:19:10:23] (root_api-) Query~SELECT tc.card_id,tc.card_style,tc.card_title,tc.card_image_url,tc.card_video_url, CASE WHEN tc.card_style = 0 THEN 'Text' ELSE 'Image' END AS card_styleText  , tc.question_text, tc.status AS cardStatus, tc.answer_text, dc.deck_id,dc.sequence as cardSequence, tc.version, tc.card_parent_id
            FROM tbl_card tc
            INNER JOIN tbl_deck_card dc ON dc.card_id = tc.card_id
            Where dc.deck_id = '83' AND tc.card_id = '2476' AND tc.card_type = 'main' /*AND tc.created_by = '184'*/~2026-02-02 19:10:23:0223~2026-02-02 19:10:23~success
[02/Feb/2026:19:10:23] (root_api-) Query~select tc.card_parent_id, dc.deck_id as card_parent_deckid, tcd.course_id as card_parent_courseid from tbl_card tc, tbl_deck_card dc, tbl_course_deck tcd WHERE tc.card_parent_id=2476 AND tc.version = 0 AND tc.card_parent_id=dc.card_id AND dc.deck_id=tcd.deck_id~2026-02-02 19:10:23:0223~2026-02-02 19:10:23~success
[02/Feb/2026:19:10:23] (root_api-) Query~select tc.card_id as card_child_id, dc.deck_id as card_child_deckid, tcd.course_id as card_child_courseid from tbl_card tc, tbl_deck_card dc, tbl_course_deck tcd WHERE tc.card_parent_id=2476 AND tc.version = 2 AND tc.card_parent_id=dc.card_id AND dc.deck_id=tcd.deck_id~2026-02-02 19:10:23:0223~2026-02-02 19:10:23~success
[02/Feb/2026:19:10:23] (root_api-) Final JSON =  {"status":"ok",
                    "message":"",
                    "Errorcode":"",
                    "data":{"card_id":"2476","card_style":"0","card_title":"","card_image_url":"","card_video_url":"","card_styleText":"Text","question_text":"<p>Represent the following set of numbers using a stem and leaf diagram.<\/p><p>11; 23; 45; 42; 33; 33; 18; 17; 16; 22; 29; 31; 51; 55; 43<\/p><p>Use the following format to get yourself started.<\/p><p><img src=\"https:\/\/bo.coglearn.cioinfotech.com\/upload\/courses\/course_25\/deck_83\/card_2476\/image 6 jpeg..jpg\" style=\"width: 249px;\"><\/p><p><br><\/p>","cardStatus":"Draft","answer_text":"<p><img src=\"https:\/\/bo.coglearn.cioinfotech.com\/upload\/courses\/course_25\/deck_83\/card_2476\/image 7 jpeg..jpg\" style=\"width: 244px;\"><br><\/p>","deck_id":"83","cardSequence":"18","version":"1","card_parent_id":null,"card_parent_deckid":null,"card_parent_courseid":null,"card_child_id":null,"card_child_deckid":null,"card_child_courseid":null}}
[02/Feb/2026:19:10:23] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:19:10:23] (root_api-) op => getCourseDetail ,course_id => 25 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:19:10:23] (root_api-) OP= getCourseDetail of page root_api.php
[02/Feb/2026:19:10:23] (root_api-) serviceName course_data
[02/Feb/2026:19:10:23] (root_api-) Query~SELECT * FROM tbl_course where course_id = '25' AND status NOT IN('Discard')~2026-02-02 19:10:23:0223~2026-02-02 19:10:23~success
[02/Feb/2026:19:10:23] (root_api-) Query~SELECT course_image_id, course_image, sequence, status FROM tbl_course_images where course_id = 25 ORDER BY sequence DESC~2026-02-02 19:10:23:0223~2026-02-02 19:10:23~success
[02/Feb/2026:19:10:23] (root_api-) Query~select course_id as prev_course_id from tbl_course where course_parent_id = 25 AND version = 0 AND status NOT IN('Discard')~2026-02-02 19:10:23:0223~2026-02-02 19:10:23~success
[02/Feb/2026:19:10:23] (root_api-) Query~select course_id as next_course_id from tbl_course where course_parent_id = 25 AND version = 2 AND status NOT IN('Discard')~2026-02-02 19:10:23:0223~2026-02-02 19:10:23~success
[02/Feb/2026:19:10:23] (root_api-) Final JSON =  {"status":"ok","message":"Course Details fetched Successfully","Errorcode":"","data":[{"course_id":"25","course_parent_id":"25","version":"1","org_id":"2","course_name":"Grade 8 Mathematics","short_name":"","status":"Draft","eval_id":"1","course_desc":"Grade 8 Mathematics aims to build strong foundational skills required to prepare learners for higher grades of mathematics and develop strong, appropriate mathematical reasoning and logical thinking. ","amount":"0","currency":null,"pay_type":"paid","course_brief":null,"course_duration":"16","background_color":"","text_color":"","creation_date":"2025-07-16 13:21:03","created_by":"184","updation_date":"2026-01-07 12:53:22","updated_by":"184","images":[],"parentid":"","childid":""}]}
[02/Feb/2026:19:10:24] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:19:10:24] (root_api-) op => getUsersCourseRole ,user_id => 184 ,course_id => 25 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:19:10:24] (root_api-) OP= getUsersCourseRole of page root_api.php
[02/Feb/2026:19:10:24] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:19:10:24] (root_api-) op => get-my-contents-deck-info ,user_id => 184 ,course_id => 25 ,deckId => 83 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:19:10:24] (root_api-) OP= get-my-contents-deck-info of page root_api.php
[02/Feb/2026:19:10:24] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 19:10:24:0224~2026-02-02 19:10:24~success
[02/Feb/2026:19:10:24] (root_api-) serviceName course_data
[02/Feb/2026:19:10:24] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 19:10:24:0224~2026-02-02 19:10:24~success
[02/Feb/2026:19:10:24] (root_api-) serviceName course_data
[02/Feb/2026:19:10:24] (root_api-) Query~SELECT ed_role FROM tbl_course_educator WHERE  course_id = '25' AND user_id = 184~2026-02-02 19:10:24:0224~2026-02-02 19:10:24~success
[02/Feb/2026:19:10:24] (root_api-) Final JSON =  {"status":"ok","message":"","Errorcode":"","data":{"ed_role":"author"}}
[02/Feb/2026:19:10:24] (root_api-) Query~SELECT td.deck_id, td.created_by, tcd.course_id, 
            ifnull(tcd.deck_name,td.deck_name) deck_name,
            ifnull(tcd.short_name,td.short_name) short_name,
            ifnull(tcd.eval_id,td.eval_id) eval_id,
            ifnull(tcd.deck_desc,td.deck_desc) deck_desc,
            ifnull(tcd.deck_brief,td.deck_brief) deck_brief,
            td.status AS deckStatus,
            td.version
            FROM tbl_deck td 
            INNER JOIN tbl_course_deck tcd ON tcd.deck_id = td.deck_id AND course_id = '25' AND tcd.created_by = '184'
            Where td.deck_id = '83' AND td.deck_type = 'main' AND td.created_by = '184'~2026-02-02 19:10:24:0224~2026-02-02 19:10:24~success
[02/Feb/2026:19:10:24] (root_api-) Query~select td.deck_parent_id, cd.course_id as parent_courseid from tbl_deck td, tbl_course_deck cd where td.deck_id = 83 AND td.deck_parent_id <> 83 AND td.deck_parent_id = cd.deck_id~2026-02-02 19:10:24:0224~2026-02-02 19:10:24~success
[02/Feb/2026:19:10:24] (root_api-) Query~select td.deck_id as deck_child_id, cd.course_id as child_courseid from tbl_deck td, tbl_course_deck cd where td.deck_parent_id = 83 AND td.deck_id <> 83 AND td.deck_id = cd.deck_id~2026-02-02 19:10:24:0224~2026-02-02 19:10:24~success
[02/Feb/2026:19:10:24] (root_api-) Final JSON =  {"status":"ok",
                    "message":"",
                    "Errorcode":"",
                    "data":{"deck_id":"83","created_by":"184","course_id":"25","deck_name":"Data Handling ","short_name":"Data Handling","eval_id":"1","deck_desc":"Data handling helps learners interpret and understand the various pieces of information that may be collected when looking at data as well as different ways to summarise and read data. ","deck_brief":"","deckStatus":"Draft","version":"1","parentid":"","childid":""}}
[02/Feb/2026:19:10:24] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:19:10:24] (root_api-) op => api-refresh ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => common_data ,
[02/Feb/2026:19:10:24] (root_api-) OP= api-refresh of page root_api.php
[02/Feb/2026:19:10:24] (root_api-) serviceName common_data
[02/Feb/2026:19:10:24] (root_api-) Final JSON =  {"status":"ok","message":"","Errorcode":"","data":""}
[02/Feb/2026:19:11:36] (root_api-) token =  IP = 169.0.141.180
[02/Feb/2026:19:11:36] (root_api-) 
[02/Feb/2026:19:11:36] (root_api-) OP=  of page root_api.php
[02/Feb/2026:19:11:36] (root_api-) Final JSON =  { "status":"error",
					"message":"Invalid Session",
					"Errorcode":"err100",
					"data":{}}
[02/Feb/2026:19:11:36] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:19:11:36] (root_api-) op => user-card-operation ,userId => 184 ,courseId => 25 ,cardDeckMode => edit ,cardDeckId => 83 ,questionText => <p>Represent the following set of numbers using a stem and leaf diagram.</p><p>11; 23; 45; 42; 33; 33; 18; 17; 16; 22; 29; 31; 51; 55; 43</p><p>Use the following format to get yourself started.</p><p><img src="https://bo.coglearn.cioinfotech.com/upload/courses/course_25/deck_83/card_2476/image 6 jpeg..jpg" style="width: 249px;"></p><p><br></p> ,answerText => <p><img src="https://bo.coglearn.cioinfotech.com/upload/courses/course_25/deck_83/card_2476/image 7 jpeg..jpg" style="width: 244px;"><br></p> ,editCardId => 2476 ,action => SAVE ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => deck_data ,
[02/Feb/2026:19:11:36] (root_api-) OP= user-card-operation of page root_api.php
[02/Feb/2026:19:11:36] (root_api-) serviceName deck_data
[02/Feb/2026:19:11:36] (root_api-) Query~SELECT count(1) as deckCardCount FROM tbl_deck_card WHERE deck_id = '83' AND card_id = '2476'~2026-02-02 19:11:36:0236~2026-02-02 19:11:36~success
[02/Feb/2026:19:11:36] (root_api-) Query~SELECT question_text, answer_text FROM tbl_card  WHERE card_id = '2476'~2026-02-02 19:11:36:0236~2026-02-02 19:11:36~success
[02/Feb/2026:19:11:36] (root_api-) In case Card Updated query = UPDATE tbl_card SET card_style = '0' , question_text = '<p>Represent the following set of numbers using a stem and leaf diagram.</p><p>11; 23; 45; 42; 33; 33; 18; 17; 16; 22; 29; 31; 51; 55; 43</p><p>Use the following format to get yourself started.</p><p><img src=\"https://bo.coglearn.cioinfotech.com/upload/courses/course_25/deck_83/card_2476/image 6 jpeg..jpg\" style=\"width: 249px;\"></p><p><br></p>', answer_text = '<p><img src=\"https://bo.coglearn.cioinfotech.com/upload/courses/course_25/deck_83/card_2476/image 7 jpeg..jpg\" style=\"width: 244px;\"><br></p>', card_type='main', updation_date = NOW(), updated_by = '184', card_title = '', card_image_url = '', 
                    onlyTextQuestion = '', onlyTextAnswer = '' 
                    WHERE card_id = '2476'
[02/Feb/2026:19:11:36] (root_api-) Query~UPDATE tbl_card SET card_style = '0' , question_text = '<p>Represent the following set of numbers using a stem and leaf diagram.</p><p>11; 23; 45; 42; 33; 33; 18; 17; 16; 22; 29; 31; 51; 55; 43</p><p>Use the following format to get yourself started.</p><p><img src=\"https://bo.coglearn.cioinfotech.com/upload/courses/course_25/deck_83/card_2476/image 6 jpeg..jpg\" style=\"width: 249px;\"></p><p><br></p>', answer_text = '<p><img src=\"https://bo.coglearn.cioinfotech.com/upload/courses/course_25/deck_83/card_2476/image 7 jpeg..jpg\" style=\"width: 244px;\"><br></p>', card_type='main', updation_date = NOW(), updated_by = '184', card_title = '', card_image_url = '', 
                    onlyTextQuestion = '', onlyTextAnswer = '' 
                    WHERE card_id = '2476'~2026-02-02 19:11:36:0236~2026-02-02 19:11:36~success
[02/Feb/2026:19:11:36] (root_api-) Final JSON =  {"status":"ok","message":"Card Updated Successfully!!","Errorcode":"","data":"","action":"SAVE"}
[02/Feb/2026:19:11:38] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:19:11:38] (root_api-) op => getCourseDetail ,course_id => 25 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:19:11:38] (root_api-) OP= getCourseDetail of page root_api.php
[02/Feb/2026:19:11:38] (root_api-) serviceName course_data
[02/Feb/2026:19:11:38] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:19:11:38] (root_api-) op => getUsersCourseRole ,user_id => 184 ,course_id => 25 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:19:11:38] (root_api-) OP= getUsersCourseRole of page root_api.php
[02/Feb/2026:19:11:38] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:19:11:38] (root_api-) op => getSwitchRoles ,user_id => 184 ,org_id => 1 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => user_data ,
[02/Feb/2026:19:11:38] (root_api-) OP= getSwitchRoles of page root_api.php
[02/Feb/2026:19:11:38] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 19:11:38:0238~2026-02-02 19:11:38~success
[02/Feb/2026:19:11:38] (root_api-) serviceName course_data
[02/Feb/2026:19:11:38] (root_api-) Query~SELECT * FROM tbl_course where course_id = '25' AND status NOT IN('Discard')~2026-02-02 19:11:38:0238~2026-02-02 19:11:38~success
[02/Feb/2026:19:11:38] (root_api-) Query~SELECT ed_role FROM tbl_course_educator WHERE  course_id = '25' AND user_id = 184~2026-02-02 19:11:38:0238~2026-02-02 19:11:38~success
[02/Feb/2026:19:11:38] (root_api-) Final JSON =  {"status":"ok","message":"","Errorcode":"","data":{"ed_role":"author"}}
[02/Feb/2026:19:11:38] (root_api-) Query~SELECT course_image_id, course_image, sequence, status FROM tbl_course_images where course_id = 25 ORDER BY sequence DESC~2026-02-02 19:11:38:0238~2026-02-02 19:11:38~success
[02/Feb/2026:19:11:38] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 19:11:38:0238~2026-02-02 19:11:38~success
[02/Feb/2026:19:11:38] (root_api-) Query~SELECT count(1) as cnt FROM tbl_org  WHERE status = 'Active' AND org_id ='1'~2026-02-02 19:11:38:0238~2026-02-02 19:11:38~success
[02/Feb/2026:19:11:38] (root_api-) Query~select course_id as prev_course_id from tbl_course where course_parent_id = 25 AND version = 0 AND status NOT IN('Discard')~2026-02-02 19:11:38:0238~2026-02-02 19:11:38~success
[02/Feb/2026:19:11:38] (root_api-) Query~select course_id as next_course_id from tbl_course where course_parent_id = 25 AND version = 2 AND status NOT IN('Discard')~2026-02-02 19:11:38:0238~2026-02-02 19:11:38~success
[02/Feb/2026:19:11:38] (root_api-) Final JSON =  {"status":"ok","message":"Course Details fetched Successfully","Errorcode":"","data":[{"course_id":"25","course_parent_id":"25","version":"1","org_id":"2","course_name":"Grade 8 Mathematics","short_name":"","status":"Draft","eval_id":"1","course_desc":"Grade 8 Mathematics aims to build strong foundational skills required to prepare learners for higher grades of mathematics and develop strong, appropriate mathematical reasoning and logical thinking. ","amount":"0","currency":null,"pay_type":"paid","course_brief":null,"course_duration":"16","background_color":"","text_color":"","creation_date":"2025-07-16 13:21:03","created_by":"184","updation_date":"2026-01-07 12:53:22","updated_by":"184","images":[],"parentid":"","childid":""}]}
[02/Feb/2026:19:11:38] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:19:11:38] (root_api-) op => get-my-contents-card-info ,user_id => 184 ,course_id => 25 ,deckId => 83 ,cardId => 2476 ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => course_data ,
[02/Feb/2026:19:11:38] (root_api-) OP= get-my-contents-card-info of page root_api.php
[02/Feb/2026:19:11:38] (root_api-) Query~SELECT count(1) as cnt FROM tbl_user_org u WHERE u.status = 'Active' AND u.user_id ='184' AND  org_id ='1'~2026-02-02 19:11:38:0238~2026-02-02 19:11:38~success
[02/Feb/2026:19:11:38] (root_api-) serviceName user_data
[02/Feb/2026:19:11:38] (root_api-) Query~SELECT count(u.user_id) as cnt FROM tbl_user_master u WHERE u.isActive = '1' AND u.user_id ='184'~2026-02-02 19:11:38:0238~2026-02-02 19:11:38~success
[02/Feb/2026:19:11:38] (root_api-) serviceName course_data
[02/Feb/2026:19:11:38] (root_api-) Query~SELECT u.user_org_id, u.org_id, u.role_id, um.email,o.org_name,r.role_name,o.short_name,CONCAT(u.role_id,'_',u.org_id) as user_org_role
            FROM tbl_user_org u 
            inner join tbl_org o on u.org_id=o.org_id
            inner join tbl_role_master r on r.role_id=u.role_id
            inner join tbl_user_master um on u.user_id = um.user_id
            where u.user_id= 184~2026-02-02 19:11:38:0238~2026-02-02 19:11:38~success
[02/Feb/2026:19:11:38] (root_api-) Final JSON =  {"status":"ok","message":"User Details fetched Successfully!!","Errorcode":"","data":[{"user_org_id":"225","org_id":"1","role_id":"3","email":"alhenaude20@gmail.com","org_name":"University Of Cape Town","role_name":"Learner","short_name":"UCT","user_org_role":"3_1"},{"user_org_id":"226","org_id":"2","role_id":"2","email":"alhenaude20@gmail.com","org_name":"C-Institute","role_name":"Educator","short_name":"C-Institute","user_org_role":"2_2"}]}
[02/Feb/2026:19:11:38] (root_api-) Query~SELECT tc.card_id,tc.card_style,tc.card_title,tc.card_image_url,tc.card_video_url, CASE WHEN tc.card_style = 0 THEN 'Text' ELSE 'Image' END AS card_styleText  , tc.question_text, tc.status AS cardStatus, tc.answer_text, dc.deck_id,dc.sequence as cardSequence, tc.version, tc.card_parent_id
            FROM tbl_card tc
            INNER JOIN tbl_deck_card dc ON dc.card_id = tc.card_id
            Where dc.deck_id = '83' AND tc.card_id = '2476' AND tc.card_type = 'main' /*AND tc.created_by = '184'*/~2026-02-02 19:11:38:0238~2026-02-02 19:11:38~success
[02/Feb/2026:19:11:38] (root_api-) Query~select tc.card_parent_id, dc.deck_id as card_parent_deckid, tcd.course_id as card_parent_courseid from tbl_card tc, tbl_deck_card dc, tbl_course_deck tcd WHERE tc.card_parent_id=2476 AND tc.version = 0 AND tc.card_parent_id=dc.card_id AND dc.deck_id=tcd.deck_id~2026-02-02 19:11:38:0238~2026-02-02 19:11:38~success
[02/Feb/2026:19:11:38] (root_api-) Query~select tc.card_id as card_child_id, dc.deck_id as card_child_deckid, tcd.course_id as card_child_courseid from tbl_card tc, tbl_deck_card dc, tbl_course_deck tcd WHERE tc.card_parent_id=2476 AND tc.version = 2 AND tc.card_parent_id=dc.card_id AND dc.deck_id=tcd.deck_id~2026-02-02 19:11:38:0238~2026-02-02 19:11:38~success
[02/Feb/2026:19:11:38] (root_api-) Final JSON =  {"status":"ok",
                    "message":"",
                    "Errorcode":"",
                    "data":{"card_id":"2476","card_style":"0","card_title":"","card_image_url":"","card_video_url":"","card_styleText":"Text","question_text":"<p>Represent the following set of numbers using a stem and leaf diagram.<\/p><p>11; 23; 45; 42; 33; 33; 18; 17; 16; 22; 29; 31; 51; 55; 43<\/p><p>Use the following format to get yourself started.<\/p><p><img src=\"https:\/\/bo.coglearn.cioinfotech.com\/upload\/courses\/course_25\/deck_83\/card_2476\/image 6 jpeg..jpg\" style=\"width: 249px;\"><\/p><p><br><\/p>","cardStatus":"Draft","answer_text":"<p><img src=\"https:\/\/bo.coglearn.cioinfotech.com\/upload\/courses\/course_25\/deck_83\/card_2476\/image 7 jpeg..jpg\" style=\"width: 244px;\"><br><\/p>","deck_id":"83","cardSequence":"18","version":"1","card_parent_id":null,"card_parent_deckid":null,"card_parent_courseid":null,"card_child_id":null,"card_child_deckid":null,"card_child_courseid":null}}
[02/Feb/2026:19:11:40] (root_api-) token = 66bbc87451ad3590b670daae13ee0619 IP = 169.0.141.180
[02/Feb/2026:19:11:40] (root_api-) op => api-refresh ,clid => 66bbc87451ad3590b670daae13ee0619 ,serviceName => common_data ,
[02/Feb/2026:19:11:40] (root_api-) OP= api-refresh of page root_api.php
[02/Feb/2026:19:11:40] (root_api-) serviceName common_data
[02/Feb/2026:19:11:40] (root_api-) Final JSON =  {"status":"ok","message":"","Errorcode":"","data":""}
