BTI420 Assignment 11

Data loading tasks.

Read/skim all of this document before you begin work.


Due date

Friday, April 14, 2017, at 11:00pm ET

Grade value: 4% of your final course grade

If you wish to submit the assignment before the due date and time, you can do that.



Load initial / startup data into an app, and save it in the persistent store.


Introduction and overview

This assignment will be a bit different from the others.

You can choose the problem domain and therefore the data that you’ll use for this final assignment of BTI420.

Too broad? Here’s some guidance:

Select a problem domain that has easy-to-obtain data. There are many areas of human activity that can be used. Maybe we can suggest, in the entertainment domain, sports of some kind. Statistics are easy to obtain, as well as data about players, teams, and so on. Publicly available on the web, with data that’s easy to copy, paste, and use. Non-text media types (e.g. photos, video) are also easily available. For example:

  • eSports (or anything in the gaming ecosystem)
  • NHL
  • MLB
  • NFL
  • NBA
  • MLS
  • Olympic-themed sports
  • EPL (English Premier League, football)
  • IPL (Indian Premier League, cricket)
  • etc.


That’s not the only area of human activity that would work, however. Other forms of entertainment – for example screen content (i.e. traditionally known as movies and television, but now much broader, to include cable/satellite, online, streaming, on-demand, and so on) could work.

Almost anything could work. Any human activity that’s competitive or measured/tracked, and generates data. Keep it clean and family-friendly however.


What we’re looking for, in general

For this assignment, you must create a data model that has about three (3) entities. No less than three, and no more than five. Don’t make the data model too complicated. In your data model, at least two of the entities must be associated (probably a one-to-many).

The first task is to define and build the basic structure of the web app. This can include design model classes, a small amount of initial data (programmatically or by using an HTML Form), view model classes, manager methods for “get all” and “get one”, and controllers for each entity that will work with “get all” and “get one”.

In addition, the home page for your web app will briefly describe what your project is about.

Then, you can configure bulk data loading to the web app. You’ll capture, prepare, and upload large amounts of data to your web app, to complete its data model coverage. For example, you may decide to programmatically add data for one “team” and two or three “players”. Now, you can bulk load all teams, and all players. In the end, we expect there to be hundreds or thousands of stored objects.


Specifications overview and work plan

For this and the remaining assignments, continue to follow the oft-repeated list of general specifications (e.g. follows best practices, etc.).

During the class/session, your professor will help you get started and make progress on this assignment.

Every week, in the computer-lab class/session, your teacher will record a grade when you complete a specific small portion of the assignment. We call this “in-class grading“.

The in-class grading will be announced in-class by your professor.


Getting started

Create a new project, named “Assignment11”, and use the “Web app project v2 custom store” template (which enables you to define your own data model).

Build/compile, and run the app, to ensure that you are starting with a working error-free base. Then, as you write code, build/compile frequently.


Design your data model, data classes, and make some initial data

At this point, you can design and code your data model. Obviously, you will need design model classes, DbSet<TEntity> properties, view model classes, and AutoMapper maps.

After you are sure that the design model classes are fully-configured, create a class diagram that’s similar in format to what you’ve seen in the course notes. Each entity class must show the property type, and the box must be sized to properly show property-and-type information. Save (export) the class diagram as an image (where it will be stored in the root of the project’s file system).

Make sure that there is easily-available (and/or easily-created) data for the entities in your data model. Remember from above, an initial task is to create a small amount of data, and then bulk load more data into your model after you’re sure that it works. Make sure that the data model design closely matches the source(s) of data.


Add more data using a bulk data-loading process

Recently, you learned how to load data into your web app’s data store, from external sources that could include CSV, Excel workbooks, and web services.

At this point, implement a data-loading process, that will load more data.

How much data?

In total, your app must have hundreds or thousands of objects in its data store. If your  data model includes associated entities in a one-to-many association, it’s possible that the root end would have tens or hundreds of objects, and the to-many end would have hundreds or thousands. That’s the scale we’re looking for.


Documentation for your web app

Add a new view (page) (on the /home/about route), which fully describes the work you did (and the thought process behind) the previous two sections (Design your data model…, and Add more data…).

We shouldn’t have to mention it, but make sure that you add a menu choice to the web app site nav so that we can easily view the “about” page.


Publish to Azure

To be determined.


Testing your work

In a browser, test your work, by doing tasks that fulfill the use cases in the specifications.

Remember to customize the app’s appearance (front/home page, menus, etc.) before you submit your work.


The web app’s “home” page MUST include a brief description of the app’s purpose and features. 

Each student will be implementing their own custom idea, so you MUST tell the view (and your professor!) about the web app. 


Reminder about academic honesty

You must comply with the College’s academic honesty policy. Although you may interact and collaborate with others, you must submit your own work.


Submitting your work

Here’s how to submit your work, before the due date and time:

1. Locate the folder that holds your solution files. In Solution Explorer, right-click the “Solution” item, and choose “Open Folder in File Explorer”. It has three  (or more) items: a Visual Studio Solution file, a folder that has your project’s source code, and a “packages” folder. Go UP one level.

2. Make a copy of the folder. This is the version that you will be uploading.

3. Remove the “packages” folder from the copied folder; also, remove the “bin” and “obj” folders.

4. Compress/zip the copied folder. The zip file SHOULD be about 2MB or less in size. If it isn’t, you haven’t followed the instructions properly.

5. Login to My.Seneca/Blackboard. Open the Web Programming on Windows course area. Click the “Assignments” link on the left-side navigator. Follow the link for this assignment. Submit/upload your zip file. The page will accept three submissions, so if you upload, then decide to fix something and upload again, you can do so.



























%d bloggers like this: