ucrcsedept / galah Goto Github PK
View Code? Open in Web Editor NEWAn automated grading system geared towards processing computer programming assignments.
License: Apache License 2.0
An automated grading system geared towards processing computer programming assignments.
License: Apache License 2.0
After a final due date submissions would no longer be accepted for an assignment, despite the fact that it might be passed the regular due date.
To implement there will be a few things you have to do:
Difficulty has been encountered when running an instance of galah.web:
I will likely do a rebase after I get it working as there are a log of extraneous commits.
web.py is annoying to work with and has forced a lot of unmanageable, repeated code. The sooner the switch is made the less headaches will occur.
The base template should be patched so any flashed messages will be shown at the top of the page. There should be color coding based on categories (the two used categories right now are error and message).
This would save a lot of disk space. Would have to be careful if the submissions need to still be accessible after archiving.
YUI is making too many requests to the server and will lower the capacity of the server too much.
"development key" is not a very good secret. Possible implementations:
This disallows using the uwsgi server. Very big problem.
Assignments should be able to specify a due date and a disable date (a different name might be more appropriate). After the disable date passes the "Mark for grading" option should be grayed out in the submission page.
If a user goes to an assignment page that is valid (as in the assignment id is correctly parsed by the web server) but does not actually exist in the database, they are met with an internal error message.
There should be no dependency on ZeroMQ when installed like this. In this state Galah should act exactly like a simple submission system, no testing will be performed.
Reasoning: Organizations, UCR in particular, will likely not be ready to invest the large amount of time required to create Galah-compatible Test Drivers for all of their assignments without knowing whether Galah will even work for them or if they have the resources to host a web server that will deal with the load that Galah will. Therefore this will provide a "soft entrance" of sorts so they can evaluate Galah.
Some organizations may not have need for Galah's testing capabilities as well and would like to solely use it as a submission system with no plans to add on the testing back end. This should be officially supported as doing so will expand the target market.
Recommended: replace default file input with single large button and preferably make it so that the student doesn't have to hit submit, it just automatically submits it.
The Python shell can be used to do this by importing galah.db.admin and setting up the environment for command help and then tossing the user into the shell. A bit of a gimmick but could be very useful and convenient.
This will only be enabled when the testing backend is enabled.
During the move to flask a good portion of the CSS stylesheet broke. It needs to be fixed.
It may be prudent to use the LessCSS (with the flask-lesscss extension) in order to speed up the fixing process and make it easier to change in the future.
The submission should still show up in the list of submissions on the assignment page.
The layout of the resulting directory structure should be highly customizable to accommodate the TAs need for a very particular file structure for their scripts. They will find galah an inconvenience if this cannot be done.
Likely impelmentation will be to allow a path to be entered with variables that will be expanded when creating the directory. For example: ~/submissions/$class/$assignment/$student/$submission_time/. This will provide a high level of customization while still not making my life very difficult.
Most important configuration option is logging.
This should be considered an essential feature as students will have no idea if they uploaded there submission correctly and mayhem will ensue.
The instructor API should be accessible through the command line. Possible implementations include but are not implemented to a collection of scripts, a single script with many arguments, or a custom shell.
The following commands must be supported.
If you don't want to use it as the developer, why would a user want to use it? Make it as pleasant as possible to use. Some points...
Perhaps, "You have no assignments assigned to you."
No error message occurs. Just indefinite hanging.
plupload seems to be a good javascript tool for this purpose. The default styling with some color tweaks should integrate well into galah as well.
Students should be able to upload files that aren't tarred, they should be able to upload multiple files, basically, the advanced uploader from before needs to be brought back in some form and the user should be presented with some options as far as uploading goes.
Fancy javascript effects like progress bars and what not are not necessary, though if it's simple like it was before, it may be a good idea.
While this is being done, the code responsible for uncompressing student's tar files and generally that entire block of submission code should be overhauled a little bit. In its current state it is hardly working, and almost impossible to maintain.
Leverage the new flashing infrastructure to add this simply and easily. Otherwise, if flashing is impractical the error logic should already be in the template, something subtle and devious is likely at work.
Get it set up to the point where enabling/disabling HTTPS is as simple as switching a flag in a config file.
Nothing fancy is required but something beyond their browsers handling of the various HTTP error codes.
Currently the dropdown button in the browse assignments view is useless. That needs to change.
I forgot to make not of this elsewhere... I scrapped the CLI I created before for this because it wan't very user friendly, this will have to be corrected.
Something simple should be fine. Curently the user has no feedback that their checkbox selection did anything.
Current contenders are Pyramid Web Framework and CherryPy with CherryPy in the lead.
The reasoning for this is that web.py is so untested, so raw, so "new," and frankly, so lacking in features galah-web needs continuing to develop with it is irresponsible of me.
It's very ugly right now. The upload section(s) should be in "action blocks" then the submissions should be organized underneath in a prettier way than they are currently.
Documentation should fully cover all the steps needed to get galah-web working from a minimal CentOS install.
Currently if the number of submissions or classes grows massive they will still be displayed in a single page. The slowdown should grow linearly with the number of assignments/classes so this isn't vital, but needs to be addressed.
AJAX pagination features are usually pretty clunky, I haven't seen good ones besides github's (and I'm not even sure they use AJAX) so just do it the old fashioned way.
With the configuration changes added to the last release the convenient script run_server.py no longer correctly handles configuration. There should be a way for it to override the configuration and put things into a debug, development friendly mode.
This is more a whoops moment then anything else. Add a logout view so users can log out.
I do not know for sure if this is desirable, but it seems FreeBSD jails will be much quicker to initialize and tear down and look like they may provide the same level of security.
This is not something to work on until version 1.0 is released.
This would save a lot of disk space. Would have to be careful if the submissions need to still be accessible after archiving.
The Flash Effect per Yahoo's UI Design Patterns is essentially a way to emphasize when something new has been added to the page. This will be useful to make sure users see flashed messages.
This should also be used in the submissions page to show the user their upload.
The message "Only student users are permitted to access this page." should be flashed as an error so it shows up as red for the user. Consistency is very important for understanding here.
Automatically installing packages from yum or apt-get my or may not be possible. Should be tried either way.
Default configuration files should also be added (/etc/galah/web.config and /etc/nginx/conf.d/galah.conf).
This one is a big bug, user's will be confronted with an internal error screen if they put in the wrong email.
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.