Closed andrewlod closed 10 months ago
@andrewlod this looks like you only shipped the build and some .csv's not the update(s).
Aside from this, this looks good. I can merge the changes.
My apologies for that. Usually I would just do git add .
and all changes, including modifications and deletions would be included, but for some reason, they were not this time. I have included the changes in a new pull request.
Yeah, thought that was a bit weird. But, appears to be fixed now @andrewlod
I also thought about a few improvements or functions.
Suppose a teacher has a bunch of classes all day and gives their students a test. Theres a hige pile of test papers to grade now. Once they have the test the students hand their papers in. Now the teacher has to grade all the papers, and input the grades/scores into data for each student, using either a separate program or this program. Do we make separate testdata for individual tests, use our gradebook program to help the teacher input the grades/scores, or?
Do we make separate testdata for individual tests, use our gradebook program to help the teacher input the grades/scores, or?
I suppose test grades could work the same way as assignment grades, where there is a CSV file, say, testgrades.csv
with columns test_id,student_id,grade
, and another CSV file testdata.csv
with columns test_id,name/description,class_id
.
Now for the teacher to update grades efficiently, it would be a lot easier if there was an actual UI (web or even Desktop) where a teacher could easily jump from one student to another (using arrow keys or the mouse, for example), in order to post grades. Another solution would be: GradeBook knows all students, and students could be linked to classes (CSV studentclasses.csv
with columns student_id,class_id,semester
), and tests are also linked to classes. Whenever a teacher wants to fill in the grades of an ungraded test, GradeBook could query all students of the class the test was applied and ask the grade, one by one, without the teacher having to type the name (or ID) of each student, just the grades. Does that make sense?
Yeah that does make sense. I originally thought about some sort of UI when I made this program as well as intended for it to actually be used.
I don't know about a Web UI but certainly something useable could be made for the program.
Some sense of security needs to be had too so that someone couldn't get in and change grades scores etc without authorization which could be just username and password and a verification, maybe a couple levels deep.
Since we are thinking about authentication and UI, maybe it would make sense to make it a server (i.e. API) with a front-end. I have some experience with CPPRestSDK and it is cross-platform. There are some advantages to this approach, where people from multiple devices can connect to the service. Alternatively, if the goal is to have a local application only, it is possible to proceed with an approach without a server (like the current state of the project).
As for UI libraries, I have worked with openFrameworks and wxWidgets. Maybe the second one fits better in GUIs, but I am not completely sure. There is also QT, but I have never used it.
I would be concerned with making the program capable. ie features first before we actually go down the UI route.. but yes, UI. I am completely ok with a text based UI
API would be good too.
In this pull requested I have added a couple features: