daltonschool / compsci-home Goto Github PK
View Code? Open in Web Editor NEWThe homepage for everything Computer Science at The Dalton School.
Home Page: http://compsci.dalton.org/beta
The homepage for everything Computer Science at The Dalton School.
Home Page: http://compsci.dalton.org/beta
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?
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.
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.
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.
We don't need any other content on the homepage, but it should be reformatted to a different front page format.
Perhaps the useful would be to have and announcements, questions, clarification component of any assignment? see https://piazza.com/.
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)
"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
The site probably shouldn't be default bootstrap in the end.
accounts-dalton
will be in a separate repo, but putting this here for reference:
https://meteorhacks.com/extending-meteor-accounts.html
what does it look like to work on an assignment with multiple people?
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.
https://modulus.io for meteor hosting
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?
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.
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.
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.
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
Right now, our usernames are just hard-coded in as admins. Obviously, this isn't ideal.
include a grading system on the assignments. needs general text area and score (0-100)
CF
merge the lab scheduler project into this one.
is it better: https://atmospherejs.com/perak/markdown
??
Right now it's a very rudimentary UI
announcement feed on the front page, maybe use twitter?
Additionally, allow grading of students who have submitted nothing
for now we can alias that system. a better system is next.
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.
Some issues as I'm uploading assignments:
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
Specifically, the labs
page
Here's the error:
{"error":500,"reason":"Internal server error","message":"Internal server error [500]","errorType":"Meteor.Error"}
http://help.modulus.io/customer/portal/articles/1700863-custom-domains
engineering.dalton.org, or compsci.dalton.org?
invent some language so a teacher can say "bad
code style -1" and it knows to detract a point.
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.
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.
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.