BTI420 programming assignment specifications document 1

Assignment specifications 1.


This is the first specifications document for the programming assignment.

Here is a link back to the programming assignment introduction.


Next due date, expectations and marking guide

The next due date and time is Wednesday, March 12, 2014, at 8:00am ET.

Plan to do the following. (If you do more, that’s OK.)

  1. Create and configure a typical ASP.NET MVC project infrastructure
  2. Design model classes for the app’s entities
  3. Create a small amount of initial data
  4. Create a controller that will display a list of all graded work in a view

Submit your work by uploading to the My.Seneca/Blackboard link. (Remove the packages, bin, and obj folders.) The upload link will disappear after the due date and time, so don’t be late!


Getting started

You MUST create an MVC 5 project, using Visual Studio 2013.

Its suggested name can be “GradedWork”.

When completing the “New ASP.NET Project” dialog box, choose “Individual User Accounts” authentication.

Also, select/check “Web API” in the “Add folders and core references for” area of the dialog.


Work quality expectations

Follow best practices. Yes, that means data annotations, commented code, AutoMapper, and all the topics we have discussed and practiced so far in this course.


Functionality (use cases)

For this first due date, create a controller that will display a list of all graded work in a view.

Obviously, this will require…

  • A controller and scaffolded view
  • A suitable view model class
  • A suitable manager class
  • Appropriate startup data; a graded work object requires the presence of other objects, so yes, you’ll have to create those

For the second and final deliverables, more functionality (use cases) will obviously be added.



This app will work with at least five entities. Create a DesignModelClasses.cs source code file to hold your entity class definitions for:

  • Student
  • Teacher
  • Course
  • GradedWork
  • MediaItem


As you know, all entity classes must have a suitable identifier property. The other properties are… (“nav” means that it is a navigation property; an association with another class)

Student class shall have, at a minimum, these properties:

  • Family name
  • Given names
  • Student number (which is a string of nine numerical digits)
  • Email address
  • Program code (of enrollment)
  • (nav) Collection of Course objects (enrolled)

Teacher class shall have, at a minimum, these properties:

  • Family name
  • Given names
  • Office room number
  • Email address
  • (nav) Collection of Course objects (teaching)

Course class shall have, at a minimum, these properties:

  • Course code
  • Name
  • Semester (string)
  • Section letter/identifier
  • (nav) Teacher
  • (nav) Collection of Student objects
  • (nav) Collection of GradedWork objects

GradedWork class shall have, at a minimum, these properties:

  • Name (title) of the graded work item (e.g. “Lab 3”)
  • Description
  • More info URL
  • Value (as a double, in case something’s worth “1.5%”)
  • Date assigned
  • Date due (full value)
  • Date due final (reduced value)
  • Work time estimate (in hours, as an integer)
  • (nav) Course
  • (nav) Collection of MediaItem attachments

MediaItem class shall have, at a minimum, these properties:

  • Name (title) of the media item
  • Description
  • Content (as a byte array)
  • Media type (as a string)
  • (nav) GradedWork


Submit your work on My.Seneca/Blackboard

Follow these brief instructions to submit your work on My.Seneca/Blackboard.

1. Make a copy of your project

2. Remove the “packages”, “bin”, and “obj” folders

3. Zip your project (make sure you’re at the correct level in the file system)

4. Submit your work via My.Seneca/Blackboard













  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: