The beginnings of a command line tool for FAIS (and Wattle and SAS).
To install:
$ git clone https://github.com/anusii/faiscli.git
$ cd faiscli
$ make install
$ fais --help
Usage: fais [OPTIONS] COMMAND [ARGS]...
Access FAIS functionality from the command line.
Options:
-d, --debug Display the browser.
-f, --fake Return fake data.
-h, --human Pretty print for human consumption.
--help Show this message and exit.
Commands:
courses All courses and unit codes, useful for obtaining a unit code.
enrolments Students enrolled in a course.
final Students final grades for a course.
function Functions for --marks (int) and --grades (str).
stats Stats for final grades for a course.
student Student details.
students All current students.
programs Programs/degrees offered at ANU.
program Individual program details
Default output is csv. Use -h
(`--human``) for output in tabular
form for human consumption and some graphics too for certain commands
(e.g., final).
Similarly for the wattle command line interface:
$ git clone https://github.com/anusii/wattlecli.git
$ cd wattlecli
$ make install
$ wattle --help
Usage: wattle [OPTIONS] COMMAND [ARGS]...
Access WATTLE functionality from the command line.
Options:
-d, --debug Display the browser.
-f, --fake Return fake data.
-h, --human Pretty print for human consumption.
--help Show this message and exit.
Commands:
marks Wattle assessement for import into FAIS.
Create environment variables to avoid repeated username/password:
export FAIS_USERNAME u1234567
export FAIS_PASSWORD mysecret
Or a text file config.json
in the user's ~/.config/fais/
directory:
{"username": "u1234567", "password": "mysecret"}
WARNING Be extra careful not to accidentally commit this file into github, for example by using a .gitignore file, and be aware that a sysadmin on your computer can view the file and thereby compromise your login information.
The environment variables take precedence over the config.json file.
A special username of u1234567 set via the environment variable
FAIS_USERNAME will enable the --fake
option, useful for
demonstration purposes.
Basic usage is to output as csv. To output in a more human readable
form, abbreviated to suit screen display use -h
or --human
.
courses mapping unit id, name, and title
List all FAIS course UnitIDs and the course name and title. FAIS
indexes course offerings by UnitID
.
$ fais courses | grep 3430
12886,COMP3430,Data Wrangling - S2/2021
12715,COMP3430,Data Wrangling - S2/2020
12252,COMP3430,Data Wrangling - S2/2019
11960,COMP3430,Data Wrangling - S2/2018
enrolments currently captured for a course in fais
List students enrolled in a course according to FAIS:
$ fais --human enrolments 12886
Enrolments for COMP3430 - Data Wrangling: S2/2021
Username Name (s) Status Mark Grade Degree Sp
0 u1184735 Julien Siestto Norm D InfTech
1 u1129310 Heath Lionast Norm CR InfTech
2 u1140576 Sandra Jeapese Norm NC BADAN
3 u1146762 Owener Lu Norm PA BADAN
4 u1186686 Laty Chu Norm DE BADAN
.. ... ... ... ... ... ... ..
[146 rows x 7 columns]
By default the output will be csv, suitable for further command line processing.
wattle marks for fais upload
Extract the marks for an assessment from Wattle to a CSV file to load into FAIS. The course code here (34101) is Wattle's unit id corresponding to COMP3430 Sem 2 2021 and FAIS's 12886.
$ wattle marks 34101 "Quiz 1"
u1375694,1.75,Fred Smith,
u3267832,3.45,Joy Adams,
u5632660,4.95,Kieth Trimmer,
u1234567,,Trimp Trump,
...
final grades for each student in a course
List the final FAIS marks and grades for a course. With --human
the
output is in tabular form. By default the output is CSV which can
be post processed by, for example, mlr, or other command line tools.
Note that different course will have different collections of assessment.
$ fais final 12886
Student,Fore/Last Names,Degree,Ass1,Ass2,Ass3,Ass4,FinalExam,Quiz1,Quiz2,Quiz3,Wattle,New Mark,New Grade,FAIS Mark,FAIS Grade,Seq.,Sp
u1234567,Mary Smithers,InfTech,9.10,10.95,19.00,none,44.38,4.00,4.50,5.00,none, , ,92,HD,21,
u1234568,Howard Miller,InfTech,8.23,11.50,17.50,none,34.25,5.00,2.75,2.00,none, , ,87,HD,63,
u1234569,Sally Meakiner,BADAN,3.22,12.00,11.00,none,35.90,4.00,4.50,4.00,none, , ,81,HD,36,
...
TODO marks
fais marks 12886
uid,name,course,Ass1,Ass2,Ass3,Ass4,Quiz1,Quiz2,Quiz3,Exam,Final,Grade,Comment
u1234567,Fred Smith,COMP8430,8.65,13.50,17.00,,4.50,5.00,2.00,22.11,80,HD,Top student.
...
fais marks 12886 u1234567
uid,name,course,assessment,mark,total,weight,due,submitted,netered,marker,comment,feedback
stats for the final grades of a course
Summary of the course final marks and grades statistics.
$ fais stats 12886
Final Marks and Grades for COMP3430 - Data Wrangling: S2/2021
Mark Statistics
count mean std min 25% 50% 75% max
FAIS Mark 117 51 32 0 0 66 72 90
Distribution of Grade Counts
HD D CR P PX N NCN WD
FAIS Grade 13 35 30 6 13 1 13 2
Distribution of Grade Percentages
HD D CR P PX N NCN WD
FAIS Grade 12 31 27 5 12 1 12 2
The following distribution plot is also generated, displayed, and can be saved to file:
student course enrolments and grades
Display the courses a student has taken and their final marks and grades:
$ fais --human student u1234567
Details for student: u1234567 - Cathey Togo - F - MComp
Course Description Sem/Year Status Grade Final Comment
0 COMP2700 Cyber Security Fundamentals S2/2021 HD 89
1 COMP4550 Advanced Computing Research Project S2/2021 KU
2 COMP3600 Algorithms S2/2021 CR 61
3 COMP2400 Relational Databases S2/2021 UN
4 COMP3310 Computer Networks S1/2021 CR 61
5 COMP4450 Advanced Computing Research Methods S1/2021 D 72
6 COMP2310 Systems Networks and Concurrency S1/2021 P 57
7 COMP4691 Optimisation S1/2021 CR 62
8 COMP4650 Document Analysis S2/2020 CR 61
9 COMP2300 Computer Organisation and Program Execution S2/2020 HD 85
10 ENGN4528 Computer Vision S2/2020 D 75
11 COMP2100 Software Design Methodologies S2/2020 HD 81
12 COMP1110 Structured Programming S1/2020 CR 63
13 COMP3620 Artificial Intelligence S1/2020 CR 61
14 COMP4660 Neural Networks, Deep Learning and Bio-inspire... S1/2020 CR 61
15 COMP4670 Statistical Machine Learning S1/2020 CR 67
16 COMP2620 Logic S2/2019 D 77
17 COMP2120 Software Engineering S2/2019 D 71
18 COMP3670 Introduction to Machine Learning S2/2019 HD 93
19 ENGN4528 Computer Vision S1/2019 UN
20 COMP2420 Introduction to Data Management, Analysis and ... S1/2019 P 55
21 COMP1100 Programming as Problem Solving S2/2018 HD 87
22 COMP1600 Foundations of Computing S2/2018 D 71
23 COMP1730 Programming for Scientists S2/2018 UN
24 COMP2610 Information Theory S2/2018 P 53
To get the students userid:
$ fais -h student `fais students | grep -i frederica | head -1 | cut -d',' -f1
...
TODO
Refinements to the output
- The Comment should include any special conditions.
A plot is also generated, displayed, and can be saved, showing the students timeline history of subjects.
Other options that could be implemented:
$ fais student --detail COMP3430 u1234567 # Show the course details for student.
$ fais student --special COMP3430 u1234567 # Show any special requests.
students mapped to university id and name
To look up a students UID, you can use the students command:
$ fais -f students
UID,Fore,Last,Sex,Degree
u1234567,Deshayla,Chaniah,NA,MADAN
u1234568,Adelya,Lilias,NA,InfTech
u1234569,Myiesha,Quillian,NA,Engineer
u1234560,Sailee,Darsy,NA,FDD Eng. & Adv. Comp.
u1234561,Artia,Jaysson,NA,BPPE
u1234562,Kyniah,Avontae,NA,FDD Eng. & Adv. Comp.
u1234570,Adabella,Sheryce,NA,Engineer
u1234571,Ludy,Shalva,NA,CADAN
u6543432,Xyriah,Barris,NA,
u4546332,Yangqi,Yu,NA,BIT
u7543364,,Norden,NA,MADAN
u4323445,Alexander,Watt,NA,BA/BSc
To identify particular students use a pipeline:
$ fais students | grep -i tommy
u1234567,Tommy,Jacson,M,BAC
u2345678,Tommy,Stalone,M,Engineer
u3456789,Tommy,Risenen,F,PhB(Hons)/BSc(Hons)