Code Monkey home page Code Monkey logo

compsci-home's People

Contributors

cforster avatar psychicnoodles avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

compsci-home's Issues

Set user._id to username

Because users might not be in the database before they're referenced, I've been using the username field instead of the _id field to reference the user. At this point, would it make sense to just set the _id field to the username on login?

@cforster

When refreshing an assignment page, it redirects you back to the home page

This is the expected functionality when an assignment doesn't exist to the user: either it doesn't actually exist or they don't have access to it. (lines 5-20 in publishes.js determines what each user can see.)

The interesting thing is that this doesn't happen when you refresh a /edit subpage that only admins can access. The difference between the assignment route handler and the edit handler seems to be that the edit handler checks that the user is an admin first before trying to get the assignment.

I have a feeling this is a problem with publishes.js. This StackOverflow question seems to apply, but I might ask one that's more specific to our circumstance to get a more applicable answer.

SSL

We should be using HTTPS, which is supported in a weird way with Meteor. There's an official package that does this, but apparently you need to have "A proxy server that terminates SSL in front of a Meteor bundle must set the standard x-forwarded-proto header for the force-ssl package to work." Not sure exactly what this means, but we'll find out I guess.

Allow any teacher to make courses/assignments

Right now, administrators are the only ones that can create assignments and courses, and grade assignments. as @PsychicNoodles was saying, if this is going to extend further, it's not feasible to give every teacher the admin role, in case some sensitive privilege is given to admins. accounts-dalton already gives the faculty role to anyone who doesn't have Student as one of their groups returned from the authorization API call, so letting faculty create assignments and courses, but not see the assignments of others, would be trivial. I'm not going to do it now but putting it here as an issue so I remember.

homepage

We don't need any other content on the homepage, but it should be reformatted to a different front page format.

house?

there's a lab and assignment section, so there ought to be a house section
advising--grades and progress
should have option to view any assignment submission files and see all notes.
house advisors should be able to login and see progress of student
teacher should be able to build the prose report over the year (parts private, parts public)

Error thrown when attempting to log in on Modulus

"Invalid Username or Password." is what shows up on the site when I type in my right credentials, below is the log from Meteor.

Exception while invoking method 'login' Error: setUserId must be called on string or null, not object
    at [object Object]._.extend._setUserId (packages/ddp/livedata_server.js:701:1)
    at [object Object].setUserId [as _setUserId] (packages/ddp/livedata_server.js:634:1)
    at [object Object]._.extend.setUserId (packages/ddp/livedata_common.js:100:1)
    at loginUser (packages/accounts-base/accounts_server.js:206:1)
    at attemptLogin (packages/accounts-base/accounts_server.js:255:1)
    at [object Object].Meteor.methods.login (packages/accounts-base/accounts_server.js:411:1)
    at maybeAuditArgumentChecks (packages/ddp/livedata_server.js:1617:1)
    at packages/ddp/livedata_server.js:648:1
    at [object Object]._.extend.withValue (packages/meteor/dynamics_nodejs.js:56:1)
    at packages/ddp/livedata_server.js:647:1

CSS Styling

The site probably shouldn't be default bootstrap in the end.

group assignments

what does it look like to work on an assignment with multiple people?

  • would be useful to have a place to share files.
  • Do we create groups in some way?

Uploads are deleted every time new code is deployed to modulus

Modulus deploys code by zipping up the project and putting the files onto one of its servers. Each time you deploy, it wipes all of your old files from storage. The way we're saving uploads is literally by making a directory and putting files into it., so the files are deleted every time new code is deployed

The way to get around this problem is to upload the files to an Amazon S3 bucket or something similar and access them from there.

Users can see who has uploaded submissions for an assignment

In my last commit I finished up what @cforster started with submitting assignments, but I think my implementation might have a flaw, I just don't know if it's important or not.

By querying for an Assignment document from the client, any user can check the submissions array within the Assignment document to get an array of submissions to the assignment. Each element of the array is in this format:

{ user: userId, 
fileInfo: [array of fileInfo objects passed from the upload callback] }

The fileInfo object only contains the path to the submission from the .uploads directory (which is not served to the client) and its name, which is a meaningless hash.

My question is, is this a problem? Are there privacy concerns for users being able to know that other people have submitted for the assignment, even if they don't have the contents of the submission? Could they get the contents of the submission somehow if they knew the path?

automated solution checking (at least for CS classes)

Some sort of automated program that supplies input to programs and checks its output. For CS there are a lot of possibilities, especially with assignments like ACSL, but for other departments it could be stuff like page limits, margins, font size, word count, etc.

assignment versioning

assignments get modified each year, can we include some version number so that we can pull the content from last year and update it but still have last year's version.

Code Execution in the cloud

For a lot of CS1 and all of CS2 (and from what I've looked at all of CS3), code is executed from the command line without Swing or any GUI. It makes sense then for a grader to be able to interactively run code from their browser instead of downloading it to their computer and compiling it.

https://ideone.com/ looks promising, but their API costs money.

It'd be possible to roll our own with AWS EC2 or even on the compsci server, but security would be a concern.

submissions received

show submissions not received (students who have submitted nothing)
handle due dates
allow grading of students who have submitted nothing
grader view that shows only pieces to be graded
make a place to hold the rubric / grader template

grading

include a grading system on the assignments. needs general text area and score (0-100)

CF

Assignments don't sync right away

Page needs to be refreshed for updated assignments to show up for student; not a dealbreaker, but meteor should just send the updated data over.

assignment editting

Some issues as I'm uploading assignments:

  • It is hard to edit assignments in markdown without seeing what they will look like. can there be a preview pane.
  • when you submit, it sends you back to the main page. should go direct to assignment
  • tables are hard to deal with. maybe they always are...

deep login error

Not the same as #26! Here's the stack trace, only works with a successful login:

I20150330-14:06:23.964(-4)? Exception while invoking method 'login' Error: setUserId must be called on string or null, not object
I20150330-14:06:23.965(-4)?     at [object Object]._.extend._setUserId (packages/ddp/livedata_server.js:701:1)
I20150330-14:06:23.965(-4)?     at [object Object].setUserId [as _setUserId] (packages/ddp/livedata_server.js:634:1)
I20150330-14:06:23.965(-4)?     at [object Object]._.extend.setUserId (packages/ddp/livedata_common.js:100:1)
I20150330-14:06:23.965(-4)?     at loginUser (packages/accounts-base/accounts_server.js:206:1)
I20150330-14:06:23.966(-4)?     at attemptLogin (packages/accounts-base/accounts_server.js:255:1)
I20150330-14:06:23.966(-4)?     at [object Object].Meteor.methods.login (packages/accounts-base/accounts_server.js:411:1)
I20150330-14:06:23.966(-4)?     at maybeAuditArgumentChecks (packages/ddp/livedata_server.js:1617:1)
I20150330-14:06:23.966(-4)?     at packages/ddp/livedata_server.js:648:1
I20150330-14:06:23.967(-4)?     at [object Object]._.extend.withValue (packages/meteor/dynamics_nodejs.js:56:1)
I20150330-14:06:23.967(-4)?     at packages/ddp/livedata_server.js:647:1

can't log in

Here's the error:

{"error":500,"reason":"Internal server error","message":"Internal server error [500]","errorType":"Meteor.Error"}

better view for files

the best code review view i've seen is barkeep, I think we can fork and use some of the styling from that.
2015-03-22_1327

Load in assignments

Seems like we're at a stable enough state that it's possible to upload the assignments to the site. Should I start doing that? I'm not exactly sure which assignments will get put on.

Footer isn't stuck to the bottom of the page

It's bothering me a little too much that the footer doesn't stick to the bottom of the view when the content on the page is short. You can't fix it with CSS because the template with the page content is rendered after the CSS is applied. The way to do it is with code inside of the Template.onRender() function, but there has to be a better way than to do that individually for every template.

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.