Git Product home page Git Product logo

galah's Issues

Add "Mark for grading" option when submitting.

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.

Allow flashed messages to be viewed in every page.

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).

Make API pleasant to use.

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...

  • Make it as simple as possible to list classes and assignments and whatnot. (done in 64995b7 and d8ae004)
  • Figure out how to add bash tab completion for commands, likely just need to modify some configuration files and then distribute them with the api_client (done in d8ae004)
  • Get the documentation all set to automatically generate, it's already written, just needs to be converted into a pretty format (done in 568f03b and 306681f)
  • Set it up so you don't need to invoke the python interpreter manually. The env program may help with that (don't understand what it does yet but I've seen a number of scripts take advantage of it) (done in 64995b7)
  • Make it easier to set up authentication. Using files may be a good addition to the environmental variables as a simple option (.galah directory in the home directory should do it) (done in 64995b7)
  • Clean up get_archive, that function is very unpleasant to use and it's the most important. (done in d12cd3f)

Add support for a final due date.

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:

  • Add a field for the final due date into the assignments model.
  • Show the final due date on the web interface somewhere so students know what it is.
  • Have the assignment view check if it's past the final due and then display a message rather than the submission box if it is AND have the uplioad_submission backend view check if its past the final due date and deny submissions (a log should also be made of the submission so the user can be confronted if they are trying to hack past the system).

Very ominous bug when deployed with setup tools.

Difficulty has been encountered when running an instance of galah.web:

  • Import errors have been popping up because it has been difficult to have easy_install set up the path perfectly (apparently my imports are very finicky, this may require editing a number of files in galah.web and galah.db)
  • I've got it running without "errors" but then the server won't server any pages. It will say an internal error occurred every time and provide no output to the terminal minus the normal record of requests.

I will likely do a rebase after I get it working as there are a log of extraneous commits.

Make archive upload more intuitive.

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.

Implement galah.test using FreeBSD jails.

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.

Allow instructors to download students' submissions.

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.

Auth error not flashed as error.

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.

Logout page is missing

This is more a whoops moment then anything else. Add a logout view so users can log out.

Automate a larger portion of the install process.

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).

Allow sorting by class

Currently the dropdown button in the browse assignments view is useless. That needs to change.

The documentation for setting up Galah is slightly dated.

  • I'm trying to create a new API config file for my new system and I'm having to look through the source code for the api_client. Not good. (fixed in 306681f)
  • Creating the first admin user is undocumented (I had to enter a python shell on the local system and call the api command directly with the admin_user user) (fixed in f131c34, also updated Administrative Guide)
  • Not all of the directories listed need to be created, and some that need to be created are not listed. (fixed)
  • Setting up Google API keys needs to be documented. (wiki has been updated)
  • I need to go into minute detail on how to set up HTTPS with nginx. (done)
  • The configuration system has been changed since sisyphus was added. (done)

Add CLI to professor API.

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.

Move javascript to JQuery

YUI is making too many requests to the server and will lower the capacity of the server too much.

Change web framework

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.

Add pagination to view_assignment and browse_assignments.

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.

CSS is broken

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.

run_server.py no longer correctly handles configuration.

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.

Create working instructor API

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.

  • Download all submissions for a given assignment.
    • Can be based on date range or get the latest "mark for grading" submissions.
  • Create and configure assignment.
    • Includes ability to upload test drivers.

Provide a way to create a suitable secret for the app.

"development key" is not a very good secret. Possible implementations:

  • Generate a new one from /dev/random every time the application reboots. This would wipe all current sessions however.
  • Generate a new one at application start if one doesn't already exist in some file. That way it could selectively be cleared.

Add "flash effect" to flashed messages

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.

Improve the flexibility and usability of the submission uploader.

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.

Add support for HTTPS.

Get it set up to the point where enabling/disabling HTTPS is as simple as switching a flag in a config file.

Add proper styling to view_assignment.

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.

Allow galah-web to be installed in isolation without testing backend.

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.

Add nice error pages.

Nothing fancy is required but something beyond their browsers handling of the various HTTP error codes.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.