Home > 2011 Winter BTI420 > BTI420 Assignment – Specifications

BTI420 Assignment – Specifications

February 18, 2011 Leave a comment Go to comments

This document has the specifications for the BTI420 Programming Assignment.

.

As an introduction, read this recent post:

BTI420 Assignment – Brief overview

.

Your first task…

At this point in time, you should have learned some concepts and techniques that will enable you to begin work on the assignment. Lab 5 enables you to get started with ASP.NET Membership and Roles, and an Entity Framework data model.

When you begin working on your assignment, you can create a local file system web site (probably named MyWebCMS). Periodically, you can use “Copy Web Site” to copy your work to your warp web server account.

IMPORTANT: Your work will be located at the “root” of your web site area. It will *NOT* be located below the root, either in a folder, or in a sub-web site.

Therefore, it will replace the existing content.

If you want to keep any of your existing content, then copy the content elsewhere.

.

Now, read the following before resuming work on MyWebCMS.

.

The assignment’s “modules” (or “functionality”)

As you learned in the overview, MyWebCMS will offer a number of modules:

Web pages

You will create a number of standard ASP.NET Web Forms (pages), for standard content and operations. You, as the developer, will determine what pages you need, and you will use standard Visual Studio tooling to author these pages.

.

Blog

You will create a “blogging component” for MyWebCMS.

The blog’s purpose is to enable readers (including your professor) to follow your progress, as you work on this assignment. You can also use the blog to comment on other things in life and the world around you.

.

Wiki (*new* – optional component)

You will create a “wiki component” for MyWebCMS.

The wiki’s purpose is to enable you, and “author” users, to create content. The content can be related to your Software Development program studies, or (better) unrelated. For example, you could create content for your other life interests (like music, gaming, sports, and so on).

Another purpose of the wiki is to enable you to re-use some of the “blogging component” concepts, techniques, and resources. It should be apparent to you that the entity data model will also support a “Wiki” page as a DocumentType. As you implement this, you will probably re-factor a portion of your project to reduce code duplication and improve code modularity.

.

Media

You will create a “media store/library component” for MyWebCMS.

The store’s purpose is to enable you, and wiki “author” users, to upload and store digital content in any form – photos, music, video, documents, and so on.

.

The following sections have more detail about these modules.

.

Module – web pages

As noted above, you will create a number of standard ASP.NET Web Forms (pages), for standard content and operations. You, as the developer, will determine what pages you need, and you will use standard Visual Studio tooling to author these pages.

MyWebCMS must use one or more Master Pages. (For example, you could use one design for your “web pages” module, a different design for your “blog” module, and another different design for your “wiki” module.)

MyWebCMS will use ASP.NET Membership and Roles to manage access to its resources, in this module, and in all the other modules.

Make sure you have (at least) these roles defined:

  • Administrator
  • Author
  • Member

You will (typically) be the only user in the Administrator role. (If you want to, you can add other users to that role, but be careful.)

Anonymous users – visitors who do NOT login – will still be able to see some of the content on your web site. In other words, DO NOT hide all of MyWebCMS behind an authentication scheme.

A visitor can also choose to become a member of your site – you will probably provide the CreateUserWizard or similar functionality to do so. When a visitor creates a user account on your web site, make sure that you add them to the “Member” role.

Enable the user to request the “Author” role, when they create their account, or later, on an “account update” page. This request will cause your app to send YOU email, so that you can login, and decide whether to grant or deny the request (and then inform the user by email).

Public areas of your web site will likely include these (and other) pages:

  • Home (i.e. Default.aspx)
  • About MyWebCMS
  • Contact Me (enabling the visitor to send you a message by email)
  • Login
  • Create an account
  • Request my password (when a user forgets their password; could be part of the page above)
  • Your wiki home page
  • Your blog home page
  • (and any other pages you think would be useful)

.

Additionally, if a user is authenticated as a “Member”, they will likely have access to these (and other) pages:

  • View my account information
  • Change/edit my account information
  • Change my password
  • Create a new wiki page
  • Edit an existing wiki page
  • Any other pages that you decide to show to a “Member”
  • (and any other pages you think would be useful)

.

Additionally, if you (in the “Administrator” role) are logged in, you will likely have access to these (and other) pages:

  • Display a list of all accounts
  • Enable or disable an account
  • Add a user to the “Author” role (and/or remove them from the role)
  • Create a new blog post
  • Edit an existing blog post
  • Display a list of all blog posts
  • Display a list of all wiki pages
  • Any other pages that you decide to show to an “Administrator”
  • (and any other pages you think would be useful)

.

The organization of your site must follow the guidelines we covered earlier in the course. See the January 21 lecture notes (e.g location of user interface resources), and the February 14 lecture notes (e.g. location of public, member, and admin resources). You will probably have a top-level folder structure that looks something like this:

  • admin
  • assets
  • blog
  • media
  • member
  • ui
  • wiki

.

Module – blog

For up-to-date specifications, see this document:

BTI420 Assignment – Blogging component

.

Module – wiki (*new* – optional component)

As noted above, you will create a “wiki component” for MyWebCMS.

You, in the “Administrator” role, and users in the “Author” role, will be able to create and edit wiki pages.

Content for the wiki pages will be in the persistent store. You will create a number of pages to support your wiki:

  • A wiki home page, with suitable content (maybe a list of pages, maybe an introduction, maybe a search box…)
  • A viewer page, which shows the content of one wiki page
  • An editor page, which enables an Author (or Administrator) to create or edit a wiki page
  • If you provide a search capability, you will have a search results page

.

The slug text must be unique for a wiki page. Slug text includes only lower-case alphabetic characters, digits, and a dash (-). It must begin with a character.

The viewer page will use ASP.NET Routing. It will gracefully show a message if there’s no match for the slug. The page will also list the wiki page’s attachments (probably at the bottom), and enable the visitor to view or download them.

The editor page will use a rich text editor.

There are (at least) two ways to enable and support the creation and editing of wiki pages, and you will implement one of them:

  1. Create a wiki management page, available only to the Administrator role. It will list the wiki pages, and offer links that enable the Administrator to select one for editing. It will also include a link for the creation of a new wiki page.
  2. Add (probably) a LoginView control to the appropriate page, which shows links to only the Administrator. For example, the blog home page could show the “new wiki page” link, and the viewer page could show the “edit this page” link.

.

Module – media

As noted above,¬†you will create a “media store/library component” for MyWebCMS.

Digital content will be in the persistent store. You will create a number of pages to support your wiki:

  • A media home page, with suitable content (maybe a photo album that’s suitable for public visitors to MyWebCMS)
  • A media picker page, which enables an Author (or Administrator) to view (and select from) a media gallery/list; this page would be used while editing a blog post or wiki page
  • A media delivery page (or, more likely a “generic handler”), which will deliver a specific digital content item to the requestor, in the appropriate format (e.g as an image/jpeg)

.

The media delivery page will use ASP.NET routing. It will gracefully respond with an HTTP 404 if there’s no match for the requested digital content item.

.

Next steps…

In the first half of the BTI420 course, before study week, you learned many of the foundational concepts needed to begin work on your programming assignments.

After study week, for five lectures, we will learn more about them, and learn new concepts, techniques, and topics, to put you in a position of success on the assignment and in this course.

.

Example MyWebCMS

Your professor intends to build an example wireframe version of MyWebCMS. It will be built over the next few weeks, but it will NOT be feature-complete. It is available here:

Professor’s example MyWebCMS

It CAN be used as an example of:

  • Many of the typical page interactions
  • Fulfillment, in a minimal way, of many of the assignment’s specifications

.

It CANNOT be used as:

  • An authoritative example of what your professor expects
  • A design example
  • A grading rubric/guide

.

The March 28 “progress report”

A progress report is due on Thursday, March 24, 2011, at 4:00pm ET.

Updated: A progress report is due on Monday, March 28, at 3:20pm ET. Deliver it to my office.

A brief printed report (about 2 to 5 pages) must be delivered to your professor by the due date and time.

The progress report is worth 5 marks out of the programming assignment’s 30 marks.

In your report, provide information and comments on (at least) the following:

  • A description of the application’s structural design. Tell me what decisions you made on planning, organizing, and creating your web form pages and other modular components (such as user controls etc.). Comment on the usage flow of the application (i.e. how users perform the typical tasks).
  • A peer review, by one of your classmates, or someone else in school, or in a position to give you feedback that you can use to improve your work. Identify the person, their relationship to you, and the date and time that the review took place. Ask them to provide documentation on two or three features that worked well, and commentary on two or three features or tasks that need to be improved.
  • A completion plan. Tell me what you have left to do. Identify major tasks, and sub-tasks of those major tasks. Document the topic areas that you need to learn more about, whether on your own, or with your professor’s assistance.

.

When your professor grades the progress report, a few other areas of MyWebCMS will be examined during the grading process. These will include your blog entries (to date), the usage/flow of your app, its general appearance, and the number of components that are at or near completion.

.


Advertisements
Categories: 2011 Winter BTI420
  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

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

WordPress.com Logo

You are commenting using your WordPress.com 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 )

Google+ photo

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

Connecting to %s

%d bloggers like this: