ga-cyberworkforceacademy / labtainers Goto Github PK
View Code? Open in Web Editor NEWThis project forked from mfthomps/labtainers
Labtainers: A Docker-based cyber lab framework
Home Page: https://my.nps.edu/web/c3o/labtainers
This project forked from mfthomps/labtainers
Labtainers: A Docker-based cyber lab framework
Home Page: https://my.nps.edu/web/c3o/labtainers
Is your feature request related to a problem? Please describe.
Currently, the output for lab completion is a json formatted dump saved to a web server for student progress and grade tracking. This needs to parsed with another script and manually entered as a grade in Canvas.
Describe the solution you'd like
Add functionality that would pass the information for a student's assignment to Canvas with an API call.
Describe the bug
install-labtainer.sh doesn't properly install due to the way the directory is structured
To Reproduce
./install-labtainer.sh
There are references to a 'trunk' folder that doesn't seem to exist
Is your feature request related to a problem? Please describe.
Currently, the lab prompts are reference via the "read_first.txt" file and provide a local path reference to a pre-generated pdf.
Describe the solution you'd like
The read_first.txt file for each lab prompt link needs to be re-pointed to the appropriate GTALabs GitHub Page URL from the GTALabs Project.
Example pulled from acl lab:
The lab manual is at
file://LAB_DOCS/acl.pdf
You may open these by right clicking
and select "Open Link".
Is your feature request related to a problem? Please describe.
Currently, the output for lab completion is a json formatted dump saved to a local directory of the Labtainer host VM. This needs to be redirected to a web server for student progress and grade tracking.
Describe the solution you'd like
Add functionality that would post json dump to a web server using the http.server python module.
The code for assessing results and generating student reports starts at line 417 in instructor.py. Snippet below:
''' assess the results and generate simple report '''
for email_labname in student_list:
lab_dir_name = os.path.join(MYHOME, email_labname)
grades = Grader.ProcessStudentLab(lab_dir_name, lab_id_name, logger)
student_id = email_labname.rsplit('.', 1)[0]
LabIDStudentName = '%s : %s : ' % (lab_id_name, student_id)
# Add student's grades
store_student_grades(gradesjson, email_labname, grades)
# Add student's lab counter (if exists)
student_lab_count = LabCount.getLabCount(lab_dir_name, lab_id_name, logger)
store_student_labcount(gradesjson, email_labname, student_lab_count)
#print "grades (in JSON) is "
#print gradesjson
# Output <labname>.grades.json
gradesjsonname = os.path.join(MYHOME, "%s.grades.json" % lab_id_name)
gradesjsonoutput = open(gradesjsonname, "w")
try:
jsondumpsoutput = json.dumps(gradesjson, indent=4)
except:
print('json dumps failed on %s' % gradesjson)
exit(1)
#print('dumping %s' % str(jsondumpsoutput))
gradesjsonoutput.write(jsondumpsoutput)
gradesjsonoutput.write('\n')
gradesjsonoutput.close()
if do_unique:
# Output <labname>.unique.json
uniquejsonname = os.path.join(MYHOME, "%s.unique.json" % lab_id_name)
uniquejsonoutput = open(uniquejsonname, "w")
try:
jsondumpsoutput = json.dumps(uniquejson, indent=4)
except:
print('json dumps failed on %s' % uniquejson)
exit(1)
#print('dumping %s' % str(jsondumpsoutput))
uniquejsonoutput.write(jsondumpsoutput)
uniquejsonoutput.write('\n')
uniquejsonoutput.close()
# Output <labname>.grades.txt
gradestxtname = os.path.join(MYHOME, "%s.grades.txt" % lab_id_name)
GenReport.CreateReport(gradesjsonname, gradestxtname, check_watermark)
if do_unique:
GenReport.UniqueReport(uniquejsonname, gradestxtname)
# Inform user where the 'grades.txt' are created
print("Grades are stored in '%s'" % gradestxtname)
return 0
if __name__ == '__main__':
sys.exit(main())
when the nmap-discovery labtainer is deployed, in addition to the docker, it deploys a terminal with a portion of the instructions. This is not rendering properly and is un-needed.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.