GithubHelp home page GithubHelp logo

ppfeister / exam-autograder Goto Github PK

View Code? Open in Web Editor NEW
2.0 1.0 0.0 2.18 MB

Coding examination website with automatic grading of student-submitted code

Home Page: https://autograder.pfeister.dev

License: MIT License

Hack 0.39% PHP 37.68% CSS 13.19% JavaScript 48.73%
teaching education academic university college

exam-autograder's Introduction

bitlab - Student Coding Lab

Coding examination website with automatic grading of student-submitted code

Dependencies

  • PHP 7.x/8.x Support (with mysqli module enabled)
    • Mostly built and tested on PHP 7.4, but 8.x should work as well.
  • Preconfigured Databases (for user data, submissions, etc)

Expected Database Structure

bitlab.users

GUID (P) Username Password First name Last name Admin Role Date Updated Last Seen
smallint(5) ~ varchar(255) varchar(255) varchar(255) varchar(255) tinyint(1) ^ timestamp timestamp

Admin role shall be 0:User, 1:User Admin (add/drop users, add/drop/assign courses)

courses.assignments

Assignment ID (P) Course GUID Assignment name Allow resubmit Date opened Date closed
mediumint(7) ~ smallint(5) ~ varchar(255) bool timestamp timestamp

courses.available-courses

Course GUID (P) Course Code Course Name
smallint(5) ~ varchar(255) varchar(255)

courses.course-membership

Course GUID Member GUID Role
smallint(5) ~ smallint(5) ~ tinyint(1) ^

Member role shall be 0:Student, 1:TA, or 2:Instructor

courses.question-sets

Assignment ID Question ID Points
mediumint(7) ~ int(9) ~ smallint(5)

courses.saved-questions

Question ID Question Owner Banked Question Name Question Prompt Question Skeleton Code Language Question Tests Question Validation
int(9) ~ smallint(5) ~ bool varchar(255) varchar(255) varchar(10000) varchar(255) varchar(255) varchar(255)

courses.submitted-answers

Assignment ID Question ID Member GUID Answer Score
mediumint(7) ~ int(9) ~ smallint(5) ~ longtext smallint

Symbols included in the data types... (P) Primary key, ^ Unsigned, ~ Unsigned Zerofill

Some changes are allowed without updating the code, such as changing a smallint to an int. These sizes were chosen with the expectation that most users would not need anything larger.


The following projects were used under the MIT license.

The following projects were used under the Apache 2.0 license.

The following projects were used under the BSD license.

exam-autograder's People

Contributors

ppfeister avatar ahmedabdulfaisal avatar kayligb avatar

Stargazers

 avatar  avatar

Watchers

 avatar

exam-autograder's Issues

Assignment description overflow

On the courses and assignments page, the assignment description will overflow onto the next line if it is too long for the window.

  • Implement a maximum description length if needed
  • Make overflow scroll-able, truncated, or stop the rest of the page's formatting from being screwed up by overflow. Methods of resolution should be discussed first so we can decide what's best.

Expected appearance:
image

Overflow (by shrinking window):
image

box-border has rounded corners in some browsers

This isn't the desired behavior. Should be made straight in all cases, otherwise things like the login bar look weird.
This was noticed in Safari on iOS but may also be present on desktop, needs to be looked at. If issue is only present on iOS, we may ignore for now since it won't be optimized for mobile anyways (at least currently).

Should be fixable in css.

Remove www prefix from url

Add rewrite rule to /.htaccess to remove the www prefix from the url (create the file if it doesn't yet exist).

Fix readme

Explanation of soft dependencies needs to be put on new line. Second line break should be added after MongoDB line.

Fix sticky-footer

Sticky footer shows about halfway under the bottom of the window. Needs fixing before being made visible.

Password Security

Before final release, passwords need to be properly secured. Plain text is okay for testing during early development, but can not remain after release.

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.