Your web site should meet the following requirements:
Be data-driven. This means that the content of one or more of your web pages contains content derived from information stored in a database. In addition:
Users should be able to enter data that will be stored in the database.
Users should be able to do some kind of searching (or filtering) of the database. An example would be a to-do list app where a user could search for a particular to-do item. (But don't do a to-do list for your project.)
Be moderately complex—not too simple, but not too hard to build. Here are some criteria:
There should be three to four domain model classes (counting the user class).
Note: Domain model, means model classes that get persisted in the database, not view models.)
The number of properties in the domain model should be between 7 and 15. (The total number of properties from all of your domain model classes, not counting IDs.)
There should be between 4 and 7 views that you created. These views should have some function consistent with the purpose of your site and are not auto-generated by Visual Studio. (You can have auto-generated pages, like "privacy", but it doesn't count toward the project requirements).
Have at least one interactive feature (other than searching or filtering). This means a feature that doesn't just consist of static views with links to other views. There should be one or more web pages that display content that is generated by code running on the server that generates output in response to input from the user. Examples would be a web page with a game, a quiz or a calculator. The code for this should be in a separate C# class.
The web site should have some kind of navigation that appears on each page. The navigation should be consistent on each page (look the same and be in the same place).
The web site will be deployed to a web server on the internet. Azure is what most students will use.
Your web site will use the repository pattern and have at least two unit tests for the interactive feature class and two for controller methods.
Write a proposal for your web site that includes:
A written description of the site.
A list of all the properties in the domain model.
A "site map", in the form of an outline, that shows the navigation links between the pages.
UI sketches for each page. Here are some alternatives for making the sketches:
Windows Paint
See Moodle for the due date.
Submit the entire proposal in one document. Please use a pdf or docx document and don't zip it. (so I can read it online in Moodle).
This will be made in class, near the end of the term. See the Presentation Guide for details and Moodle for the due date.
Submit the following links to Moodle:
A link to the web site running on a web server (like Azure).
A link to the Git repository. (Be sure to invite your instructor to your online Git repository!)
Notes:
The term project web site should a completely new project that is 100% your own work:
It should not be the same as one of your weekly lab assignments, or any of the example web apps from the textbook, tutorials or your instructor.
It should not be a refactored copy of your lab project or the instructor's examples, or anyone else's project.
Good coding practices, such as separation of UI code and business logic and proper use of Git are expected in the term project.
Don't use features of ASP.NET Core or technologies that weren't covered in the class. If you try to use things we haven't covered, your project may become too difficult to complete.
These ASP.NET Core MVC term project instructions, written by Brian Bird, written fall 2017, revised in 2026, are licensed under a Creative Commons Attribution 4.0 International License.