markfloryan / acas Goto Github PK
View Code? Open in Web Editor NEWA course visualization, organization, and assessment system.
License: Other
A course visualization, organization, and assessment system.
License: Other
Maybe: Tooltip when you hover over the grade that says something like "You've mastered 5 topics and have competency in 3". If you click on the grade, it pulls up a popup window that summarizes:
Data needs to be persistent no matter how the server shuts down. Currently saves data if ctrl-c used to terminate server, but supposedly doesn't persist if "docker-compose down" is used.
Currently a grade is assigned when a student meets the exact requirements for a grade threshold. Having more mastered nodes than required does not overflow and count as competency nodes.
Example:
Grade Thresholds:
B = 4 mastered / 4 competency
B- = 4 / 3
C = 3 / 2
If you have 5 nodes mastered and 2 competency you will get a C rather than a B-, even though you have accomplished more.
username should only be used for those with django admin accounts. All uses of a student's username should be changed to their registered email.
Nodes (topics) should have two states:
unlocked: normal, student can interact with that node
locked: Not viewable at all. Student has not unlocked pre-requisites.
Nodes unlock and are viewable by students once all pre-requisite nodes are at competency or higher.
After keeping my window open for a while, the course page will start to hog an enormous amount of memory. It seemly doesn't stop and crashes Firefox.
Only professors have their usernames automatically set. A username is required to upload grades. To avoid overlapping student names, we should use emails to identify a student.
2 solutions:
Professors graph view should show a summary of how the class is doing. Maybe display the percentage of the class that has competence, mastery in each topic and color graph accordingly.
Maybe this is something to put under resources, but a student can only see the grades they have under a node. If they haven't submitted they won't see it anywhere. This could be fixed by giving all students 0's (this will automatically happen if the assignment exists in both ACAS and Gradescope) or displaying them another way.
Issue is that if node has two HWs, and only one is submitted, the grade for that node is calculated using just one assignment.
To help with this:
Currently if a node becomes locked or somehow has a grade before formally being "unlocked", it counts towards the final grade. Let's....not do that.
Sign In or Create Account buttons do not work while in incognito on Chrome. Firefox incog does work.
Currently have to manually execute the command via docker:
docker exec backend pip install -r requirements.txt
Make sure profs can't access data of other profs. Seems like it is currently a major issue.
Building the chart does not try to avoid crossing edges
AssignmentUpload seems to be the one in use despite its name. Should remove which ever is not needed.
Show an actual example. Maybe an image.
I think it is a simple check to see if grades have been released for an assignment.
Professors cannot cancel their changes to the graph
Flash a warning message if grade is set manually. Something like "If grades are synced with outside source (e.g., Gradescope), then this grade could be overwritten".
Specifically the courses page and others.
Currently backend checks that a prof is deleting resources (any resource), but system in general does not check that the resource is within that profs domain. Theoretically a prof could hit the API endpoint and delete other profs data pretty easily.
Rather than all the node showing as incomplete, all but the root are locked.
Right now, a professor will only be able to grab their personal grades. Need to update to get all grades or provide separate endpoint for grabbing all course grades by professor id.
An assignment cannot be created without specifying what topic is belongs to. Maybe we could use dummy nodes or not require a topic be specified.
Previously talked about in #17.
Without an id_token, you can hit this endpoint and get all of the students in the database as well as all of their tokens, passwords, etc. Needs to be cleaned up asap.
Now that OAuth works locally and in production, we need to remove the debug logins. Currently people can debug login as a professor on live version of system.
I tried populating some new courses and not all nodes are showing up. The graph is generated every time the graph data gets updated. Picking that data apart it seems some nodes aren't being sent. All data is present on the admin panel and when manually hitting the backend as a student. Issue is originating in ClassGraph.vue
title says it all.
A node should be locked if any pre-requisite node has the "locked" status. Currently only locked if the grades don't lead to mastery in the pre-requisite nodes (but that node could still be "locked").
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.