CSCI 2170 Assignment 2

$30.00

Download Details:

  • Name: A2-vy410z.zip
  • Type: zip
  • Size: 346.56 KB

Category:

Description

5/5 - (1 vote)

Purpose

  • The purpose of this assignment is for you to apply your knowledge of front-end web development and what you have learned in server-side scripting to develop a web site to allow students to “add/remove” courses from their course schedule.
  • Think of this as a student-facing and student-centric version of the course information/add feature on DalOnline.

Expectations, in detail

  1. STEP 1: Development:

    • It is ideal to develop the website using your localhost setup and verify its functionality by hosting it on the FCS Bluenose server.
    • You can find out more about the web hosting space assigned to you by accessing https://web.cs.dal.ca
    • You are expected to develop your website to meet the acceptance criteria set out in the user stories below.
  2. STEP 2: Your tasks:

    • Preliminaries:
      • Clone the folder named A2 that is available on Gitlab under CSCI 2170.
      • Preserve the directory structure; do not change it.
      • Create new PHP and/or style/JS/image files if you need to and place these files in appropriate folders in the A2 directory that you clone/download.
      • Update the README.md file with your name, B00 number and the Academic Integrity pledge that you submitted in Assignment 1.
      • Include all citations and references to any external resource and/or code in both in the code and in README.md
    • Note: Assume that this timetable website that you will develop is for CS students only.
    • User Story 1: View Course List and Information
      • As a student,
        I need to see a list of all courses available in the current academic term and the next academic term,
        So that I can find out which one I’d like to take.
      • Acceptance criteria: Student selects “current academic term” or “next academic term”:
        • Student can see the academic term (e.g. “2019/20 Winter” for current term or “2019/20 Summer” for next term).
        • Student is able to switch between terms to see course listings.
        • Below the academic term, student can see a list of all courses offered in the term.
        • The course listing displays course codes and names with dates/times and instructor name in parentheses next to the course name, e.g. “CSCI 0000: Intro. to Life in CS (MWF 0935-1025, Dr. L. Skywalker)”.
        • Student can see a “More info. / add course” button or link next to each course in the listing to expand information about the course.
      • Acceptance criteria: Student clicks on “More info. / add course” button or link:
        • The content section expands below the course code and name, “pushing” below all other courses listed following the selected course. (Note: Imagine this to be something that uses jQuery functions such as hide() or slide() to expand/collapse content.)
        • Student can see a brief description of the course (text), with link to sample PDF course syllabus.
        • Student can see an “Add course” link or button below the description.
        • The “Add course” link or button is disabled if student is not logged in.
      • BONUS! If student is logged in and if they are registered in a course, the “Add course” link/button is replaced with a link that says “You have added this course; click here to view your schedule” that links to the schedule.
      • Note: for now, save all course information in the file named “course_list.csv” listed under “db” in the assignment folder and read this information from that file.
    • User Story 2: Login to the View Profile/Schedule:
      • As a student,
        I need to login to the timetable website,
        so that I can view my schedule, add courses to my schedule and drop courses from my schedule.
      • Acceptance criteria: Student selects “Login” link from the main navigation menu.
        • Student can see a login page that allows them to input their user name and password.
        • If student information is correctly entered, student is taken to a “student profile” area.
        • A link to the student’s profile, with link text “Student name’s profile”, is displayed in the main navigation menu, along with a link to “logout”. (Note: if the student’s name is Yoda, the profile link should be named “Yoda’s profile”).
        • If student enters wrong information, a text line is displayed below to indicate an error in either username or password. (Remember, due to security reasons, it is not okay to tell users which of the two fields is wrong; you just have to let them know that either the username or password is wrong.)
        • Note: for now, save all username and password information in plain text in a CSV file named “up_login.csv” that’s available in the assignment folder under “db”.
      • Acceptance criteria: Student selects “View Profile”.
        • Student sees a list of all courses in which they are currently registered for. (Note: for now, there is no limit on how many courses a student can register.)
        • Student can see a “Drop this course” link next to each course on their schedule in their profile.
        • Student can see a list of courses with schedule conflicts, if any.
        • Note: for now, track all course registrations in one file named “c_registration.csv” that is available under “db” in the assignment folder.
    • User Story 3: Add a Course to the Schedule:
      • As a student,
        I need to add a course to my schedule,
        So that I can register for a place in it and use it towards the completion of my degree requirements.
      • Acceptance criteria: Student clicks on “Add course”.
        • Student clicks on “Add course” link from the course description on the course listing page to be taken to a new page.
        • The new page displays their schedule on the right half of the screen and a confirmation message to add this course on the left half of the screen.
        • The confirmation message on the left half of the screen shows the course name, course code, instructor name, schedule, and course description with a message below asking if the student wants to confirm and add the course.
        • If the student clicks on “Yes, add the course” the course is added to their schedule and the student is taken back to the course listing page.
        • If the student clicks on “No, take me back”, the student is taken back to the course listing page.
        • Note: for now, track all course registrations in one file named “c_registration.csv” that is available under “db” in the assignment folder.
    • User Story 4: Drop a Course from the Schedule:
      • As a student,
        I need to drop a course from my schedule,
        So that I can consider taking other courses, or manage my time well.
      • Acceptance criteria: Student selects the “Drop this course” link:
        • Student is taken to a confirmation page similar to the one used to add courses (refer to User Story 3).
        • The confirmation message on the left half of the screen shows the course name, course code, instructor name, schedule, and course description with a message below asking if the student wants to confirm and drop the course.
        • If the student clicks on “Yes, drop the course” the course is removed from their schedule and the student is taken back to their profile/schedule page.
        • If the student clicks on “No, take me back”, the student is taken back to their profile/schedule page.
    • Citations:
  3. STEP 4: What do I submit?

    • You are required to submit this assignment in two places — (a) Brightspace, and (b) Gitlab.
    • Submission on Gitlab —
      • Instructions to submit assignments on Gitlab (https://git.cs.dal.ca/) have been posted in a section under “Content >> Assignments” — if you have any questions, please reach out to the CS Help Desk.
    • Submission on Brightspace — A single zip file named <LASTNAME>_<FIRSTNAME>_B00XXXXXX_A2.zip
      • Replace <LASTNAME> with your last name, and <FIRSTNAME> with your first name.
      • Replace “B00XXXXXX” with your B00 number.
    • The above ZIP file should preserve the directory structure available in Gitlab. You may add additional PHP and/or other files as needed. Include a summary of the files you have added and why in README.md
  4. STEP 5: Milestones and Marking Scheme

    • Milestones: 
      • You are expected to attend the labs/tutorials on 31 Jan and 14 Feb to demonstrate progress in your assignment.
      • This makes you eligible to get 10 marks of your final assignment score, i.e. 5 marks each for demonstrating progress in the tutorials on 31 Jan and 14 Feb.
      • Otherwise, your score will be graded out of 100% and scaled down to 90.
    • Detailed marking scheme is available in this PDF document.