2022/3/19 ÏÂÎç2:28 Project 2 – Rails Project to Manage Student Graders
Project 2 – Rails Project to Manage Student Graders
125 Possible Points
Add Comment
Copyright By PowCoder代写 加微信 powcoder
Background
Every semester, the CSE department hires about 60 undergraduate students as graders for various courses. Currently, the process of matching qualified students with specific course sections is somewhat ad hoc. Department office staff receive emails (i) from students indicating their interest in grading, and (ii) from faculty indicating their need for graders or with recommendations of students to hire.
Furthermore, some (but not all) courses require graders to be available at specific times during the day. For example, graders for 2221 and 2231 must be available during their section’s lab times in order to serve as TAs during the closed labs.
A web application would help streamline this workflow and ensure some consistency in the information that is gathered.
Write a Ruby/Rails program to use the enclosed API to process the section and course info from the publicly accessible OSU course catalog. This program must also support login/logout functionality for Student, Instructor, and Admin users as well. Read Project 3’s description to determine the kind of information that will be required. You should collect information from the CSE department courses only.
Courses (http://classes.osu.edu) as listed by the registrar
You should use Ruby and Rails to use the API (below) and save the data into a database (SQLite, or PostGresql) suitable for Rails to retrieve it as part of Project 3. You should create a Rails view to allow it the API to reload the database on demand. This view (reload database) should only be accessible by an Admin user. You should allow the admin to specify the campus, semester, and other pertinent data. You only need to fetch CSE classes.
You should also implement at least one view to display the available courses and sections that have been entered into the database. This view should be accessible by Students, Instructors, and Admins. Optionally, it should allow for sorting and/or searching the database by course number, class level (1xxx, 2xxx, 3xxx, etc).
For instructions on how to make use of gems, see this reference. (https://osu.instructure.com/courses/116347/pages/ruby-gems)
https://osu.instructure.com/courses/116347/assignments/2721745 1/3
2022/3/19 ÏÂÎç2:28 Project 2 – Rails Project to Manage Student Graders
Note: The ‘devise’ gem is recommended to create your login/logout functionality. The ‘HTTParty’ gem can be used to access the API and parse the results. The ‘pagy’ gem can be used to paginate the results.
API Documentation
The class information is available at the following url: https://classes.osu.edu/class-search/#/ (https://classes.osu.edu/class-search/#/)
The API URL is https://content.osu.edu/classes/search valid parameters are:
q= (can be blank, or cse for CSE Classes) campus= (col for Columbus)
p= (page #, starting at 1)
term= (1222 for Spring 2022) academic-career=ugrad (for undergrad only classes) subject= (blank, or cse)
A valid query would be: https://content.osu.edu/classes/search/? q=&campus=col&p=1&term=1222
SPECIFICATIONS
General Functionality
Implement a ‘home page’ with either an option to login, sign up (register) or (if logged in) browse the course catalog.
IF Logged in, allow the user to reset their password (could be a profile page per user)
Allow the user (on signup) to specify that they are a Student, Instructor, or Admin. (At least one Admin should be created by default with a pre-determined password). Instructor access (and other Admins) must be approved by an existing admin from the Admin home page.
The user id’s (email) should be restricted to OSU format, and that identifier should be used to link instructor recommendations, grader assignments, etc (future).
STUDENT Functionality
Students can login, and browse the course catalog.
INSTRUCTOR Functionality
Instructors can login, and browse the course catalog
ADMIN Functionality
Admin’s can:
browse the course catalog
edit the course catalog (add/delete/change)
https://osu.instructure.com/courses/116347/assignments/2721745 2/3
2022/3/19 ÏÂÎç2:28 Project 2 – Rails Project to Manage Student Graders
reload the course catalog
approve Instructor or Admin requests
https://osu.instructure.com/courses/116347/assignments/2721745 3/3
程序代写 CS代考 加微信: powcoder QQ: 1823890830 Email: powcoder@163.com