<%@LANGUAGE="VBSCRIPT" %> <% Response.CacheControl = "no-cache" %>
Project 3

OBJECTIVES

  • Learn about, develop, and implement a WIKI
  • Develop and implement a .NET web application
  • Develop and implement a mobile web application
  • Develop and implement RSS feeds
  • Demonstrate proficiency in web usability

BACKGROUND

wiki - from webopedia
A collaborative Web site comprises the perpetual collective work of many authors. Similar to a blog in structure and logic, a wiki allows anyone to edit, delete or modify content that has been placed on the Web site using a browser interface, including the work of previous authors. In contrast, a blog, typically authored by an individual, does not allow visitors to change the original posted material, only add comments to the original content.

The term wiki refers to either the Web site or the software used to create the site.

Wiki wiki means “quick” in Hawaiian. The first wiki was created by Ward Cunnigham in 1995

wiki - from whatis.com
A wiki (sometimes spelled "Wiki") is a server program that allows users to collaborate in forming the content of a Web site. With a wiki, any user can edit the site content, including other users' contributions, using a regular Web browser. Basically, a wiki Web site operates on a principle of collaborative trust. The term comes from the word "wikiwiki," which means "fast" in the Hawaiian language.

A wiki allows a visitor to the "wikified" Web site to edit the content of the site from their own computer. Visitors can also create new content and change the organization of existing content. The simplest wiki programs allow editing of text and hyperlinks only. More advanced wikis make it possible to add or change images, tables, and certain interactive components such as games.

A wiki provides a simplified interface. At any time, contributors can conveniently view the Web page as it looks to other subscribers, before and after the changes they have made. It is not necessary to know HTML (hypertext markup language) or perform work in HTML code. The best known example of a wiki Web site is Wikipedia, an online dictionary building collaboration.

wiki - from wikipedia
A wiki (IPA: [ˈwiː.kiː] <wee-kee> or [ˈwɪ.kiː] <wick-ey>[1]) is a type of website that allows anyone visiting the site to add, remove, or otherwise edit all content, very quickly and easily, sometimes without the need for registration. This ease of interaction and operation makes a wiki an effective tool for collaborative writing. The term wiki is a shortened form of wiki wiki which is from the native language of Hawaii (Hawaiian), where it is commonly used as an adjective to denote something "quick" or "fast" (Hawaiian dictionary).

The term Wiki can also refer to the collaborative software itself (wiki engine) that facilitates the operation of such a website (see wiki software).

In essence, a wiki is a simplification of the process of creating HTML pages combined with a system that records each individual change that occurs over time, so that at any time, a page can be reverted to any of its previous states. A wiki system may also include various tools, designed to provide users with an easy way to monitor the constantly changing state of the wiki as well as a place to discuss and resolve the many inevitable issues, namely, the inherent disagreement over wiki content. Wiki content can also be misleading, as users are bound to add incorrect information to the wiki page.

Some wikis will allow completely unrestricted access so that people are able to contribute to the site without necessarily having to undergo a process of 'registration', as had usually been required by various other types of interactive websites such as Internet forums or chat sites.

The first wiki, WikiWikiWeb, is named after the "Wiki Wiki" line of Chance RT-52 buses in Honolulu International Airport, Hawaii. It was created in 1994 and installed on the web in 1995 by Ward Cunningham, who also created the Portland Pattern Repository.

Wiki is sometimes interpreted as the backronym for "What I know is", which describes the knowledge contribution, storage and exchange function.

RSS
RSS formats are specified in XML (a generic specification for data formats). RSS delivers its information as an XML file called an "RSS feed", "webfeed", "RSS stream", or "RSS channel". RSS is a family of web feed formats. The initials "RSS" are variously used to refer to the following standards (WP:RSS):

  • RSS 0.9 and 1.0 (RDF Site Summary)
  • RSS 0.91 and 1.0 (Rich Site Summary)
  • RSS 2.0 (Really Simple Syndication)

For more information:

ABOVE & BEYOND

  • RSS feeds for each category
    • Provide and maintain RSS feeds for each category in addition to the RSS feed for the FAQ system that is specified below.
  • Implement a 'word' editor, like tinymce or FredCK Editor
     

REQUIREMENTS

  • Create a Wiki FAQ system
    • Frequently Asked Questions
      • Use a SQL Server database for management of your FAQ data
      • Allow a user to search by category
        • Searching by category displays only those questions in that category
      • Allow a user to search by keyword
        • Searching by keyword displays only those questions that have that keyword associated with it.
      • Each FAQ must have:
        • Question
        • Answer
        • Last Modified
        • Keywords
        • Last Updated By
          • The above can be left anonymous if the user chooses
      • Allow a question to be added without being answered
        • A new user may have a question, but not the answer. Don't provide the answer box because the new user may get confused.
      • Allow a question and answer to both be added
        • A professor or grad student or senior may have both a question and the answer. Provide a page for them to enter it all at once.
      • Both questions and answers are editable by the user
        • It is possible for a question to initially be asked poorly and another person may want to update the wording of the question.
      • Track each instance - provide a list of previous versions of the response that can be looked at or even reverted to if necessary.
        • For example, there are 3 responses to a question: A, B, C. A person types a bad response, D, and another person reverts back to C, which is the proper response, however, E becomes the new response, which is identical to C.
        • Record IP addresses for each question & response - each update should tie back to an IP address. If a malicious person enters some inappropriate data, we want a method of tracking them down. Perhaps the HTTP_USER_AGENT would be significant as well, I'll leave that up to you.
           
    • Web Interface
      • No, you cannot use an existing wiki implementation - you must create your own.
      • Provide full functionality via a normal web interface.
      • It is a wiki, thus any person can come and add or update the pages.
      • What about people not at Purdue? Do we keep them out? If so, How?
      • Ajax?
         
      •  
    • Mobile Interface
      • The pages should be constrained to 220 pixels wide.
      • Viewing
        • Provide an interface for viewing FAQs
        • Search by category or keyword
      • Submit a Question  
        • Provide an interface for asking a new question
           
    • Bad Word Filter
      • Create a word filter that operates in the background. It will be used to filter out bad words so that nobody can use the system in an inappropriate manner. Do not replace the bad words with characters... just remove them completely. You might choose to redirect back with a message stating that sort of language is not appropriate and only professional language will be accepted.
         
    • Twitter Feed - API integration
      • Create a group Twitter account
      • Every time an FAQ is added or updated, it should also be tweeted to your Twitter account
      • The title should be: Added: <question> or Update: <question>
      • Use one of these APIs to connect to Twitter: Twitter APIs
         
    • RSS Feed
      • Here is an example RSS feed
      • Adhere to the RSS 2.0 standard
      • Every time an FAQ is added or updated, it should also be added to the RSS feed
      • The title should be: Added: <question> or Update: <question>
      • The link should take you directly to the question/answer
      • Keep the items in the RSS feed for one month before removing them from the feed
      • Order the feed appropriately. Newest items should appear at the top of the feed
      • Use ASP.NET to manipulate the XML file
      • Test the feed in Firefox
           
    • Usability
    • Aesthetics
      • A level of aesthetics indicative of Seniors in CGT is expected on this project. Poor aesthetics will be rewarded appropriately.
         
    • Create a SQL subdirectory in your project3 folder.
      • You must save the final SQL script (.sql) in the SQL folder.
         
    • Code-Behind
      • All C# should reside in the .cs Code-Behind files.
         
    • Classes
      • your dbConn class should be used and implemented appropriately on this project.
      • you should develop a class structure that is appropriate for this project (for example, faq might be a class with a method addFaq()...)
         
    • Quality Assurance Testing
      • Test your solution. Have friends test your solution. Have more friends test your solution. Then test your solution some more.
      • Try entering special characters or nonsensical data.
      • Try to break it.
         
    • Populate the FAQ with initial data
      • Populate the FAQ system with at least 10 categories to begin with.
      • Provide at least one question in each of the 10 categories.
      • In one category, provide 20 questions & responses.
        • Will help you think about pagination...
           

DELIVERABLES

You are to deliver the following copies of the project:

  1. One finished copy in your share space on the server. Do not modify the files after the due date/time. We will check the timestamp.
     
  2. Professionally designed DVD case containing a professionally designed CD. Create one more than the number of people in your group. If you have a group of 4, create 5 of them. Each group member will receive one and I will keep one.
     
  3. As an individual - Each person send me a personal email detailing the workings of your group. Answer these questions: a)Did your group perform well together? b)Did you have any problems with any of the members of your groups? c)Describe how the work load was divided up using percentages (i.e.: "I did 25%, A did 35%, B did..." etc.). d)As individuals, how would you grade yourself and your group members on this one project? e)As a group, how would you grade your group on this one project?
     
  4. As a group, Send me a professionally crafted email with your names and a link to your functioning online project.

GRADING CRITERIA

If the project is not functional (does not work), then your project grade starts at 50%. This is a professional project; our company will not accept partial work. Late work will not be accepted. (In the real world, you would not get paid for a project you did not complete. In our world, you start at 50%)

  • 30% Aesthetics & Usability
    • (Professional, effective and easy navigation, common scheme across entire site, use of images, originality, creativity, usability features, intuitive, user friendly, easy to use, etc.)
  • 55% Coding, Logic, & Functionality
    • (Does not crash, efficiency of code, proper indentation, neatness, free from errors, correct logic, security, follows typical coding standards, apparent planning, .NET coding, Ajax, RSS, etc.)
  • 10% Commenting
    • (In general, one line of comment per line of code)
  • 5% Above & Beyond
    • The minimum requirements for an A on a perfect project are completion of the requirements above. The second version listed under Above & Beyond must be successfully completed in order to achieve 100% on a perfect project.
Total Possible Points: 100