Stage 0: Topic Proposal
Due Thursday by 10pm Points 30 Submitting a text entry box
The first step for your course project is to choose a “problem of interest” that you may want to explore or address through developing a web application. For example, you may be interested in the growth of homelessness in Seattle, or enabling people to be more mindful of their behavior on social media. Your course project will eventually be an interactive web application that helps address their “problem”—it won’t be a complete solution (technology is rarely, if ever, the answer), but it will give you a subject and task to focus on.
This step is intended to get you think through your problem and solution early, while it’s easy to change ideas. You will be allowed to change topics if you wish, though doing so may increase the amount of work you need to do at a future stage. Pick an idea you will be happy with now!
In order to ensure that you’ve consider and thought about a topic (and to practice your HTML skills!), you will create a small web page presenting your topic and some potential web apps that may come involve that subject.
While not required, it’s a good idea to develop largescale projects using distinct feature branches
(where you develop each feature on its own branch, merging those branches back into master when you’ve finished your work). This helps keep you work more organized, particularly when working with others on the same code base!
Your proposal will contain a short description of the topic domain, explaining the problem to someone who doesn’t know anything about it! Your description should include enough information to:
1. Provide an overview of the general topic or question of interest (e.g., “what is meant by ‘homelessness’ and why is it a particular problem in Seattle?”).
2. Identify an information technology problem in that space (e.g., “what information problems related to homelessness are unaddressed?”).
3. Identify previous or existing attempts to solve this problem (e.g., “what other web apps attempt to address homelessness?”)
In short: let us know what you are interested in, and identify a problem that you think needs solving (and that might be amenable to a technological intervention).
· While social injustices are the problems most worth attacking, your project could also address smaller, or more personal “problems”. What is something that makes your life worse, and that you think that a web app might be able to help with?
This description should be about 23 paragraphs (~300 words) in length. Your overview should explain “what” the problem is and “why” it needs addressing (including why current existing apps are insufficient). You will need to include references to other resources to help clarify your explanation of this problem.
Your proposal will also contain a description of a potential web application that can be used to address your chosen problem (a proposed “solution”). Think about what kind of a website would help with this problem, and how people would use that website to make their lives better in some way. What is the “use case” or “user story” (https://en.wikipedia.org/wiki/User_story) for the app?
The app you design could take a number of different forms. For example, it could enable the user to interactive explore and manage existing information, similar to the Shiny applications you created in 201. It could enable users to produce and share their own information, similar to a web forum. Or it could provide a new kind of user experience, similar to a game. You can really develop any kind of application you wish.
· Don’t worry too much about the size of feasibility of the project at this stage—we will learn how to do all kind of complex web app development, and we’ll be able to give you feedback to bring your proposed work into scope before you begin coding it. It’s better to think of something you want to exist and move as far towards that as you can, rather than limiting yourself.
Your app should also be described in 23 paragraphs. In particular, you should make sure to address:
1. Who are the users of the application? That is, who will be accessing the website?
2. What will the users _do_ with the web app? Note that your app needs to be interactive—just reading content on a website will not be sufficient.
3. How will using this app help to solve your chosen problem? That is, how is it a solution to the problem you described?
When proposing your project, be sure and doublecheck the overall app requirements listed in the project overview. In particular, note that your app doesn’t need to have “business value”, but will need to be a complete system.
If you intend for your app to utilize some thirdparty data, such as from a web API, you should identify the exact set of data you wish to use now (so it doesn’t trip you up later). Note that you can use this utility (https://joelwross.github.io/corstest/) to help test if you will be able to access a web API or data source using concepts introduced in this course.
As part of your description of the app, you should give an explicit explanation of how the app is used. Provide a textual “walk through” of how a person would use your app to achieve their goal. Think about precisely what the user will be doing when the visit your site—what inputs will they provide, what buttons will they click, what changes will they make. Your proposal should make clear what is the “flow of events” (https://en.wikipedia.org/wiki/Use_case#Examples) .
· Your app will need to have at least two different steps—the user will need to be able to do two different actions, in sequence (e.g., “first the user will search for their address, then they can send a message to someone who lives nearby”).
Note that a “step” is something the user does to provide “input” to the web app. “The user sees the results” is not a step (because looking at a site isn’t giving it input).
Steps will need to happen in sequence—that is, the second step will need to depend on the first.
Note that coming up with this sequence of interactions is the hardest part, but is also necessary for making sure your proposed app will meet the requirements of future Stages!
Web Page Requirements
You should present the above information (Problem Description and App Description) in the form of a basic web page implemented with HTML. Create a new proposal.html file in the root of your project repo. This page should include the following content:
1. An appropriate page structure (including a <head> element with a <title>). The basic web page template (https://info340.github.io/htmlfundamentals.html#webpagetemplate) is a good place to start.
2.A <header> containing a title for your page as a toplevel heading (<h1>).
3.Different <section> elements for each major part of your page (e.g., Problem Description, Proposed Application). Note that the functionality walk through would be appropriate as a subsection.
4. Use appropriate HTML elements to semantical organize the content. For example, the steps of the app walkthrough should probably be an ordered list.
5. Include hyperlinks to at least two (2) outside resources, references, or data sets related to your topic.You are not required to incorporate any CSS into your page at this point, though you are welcome to if you want to enhance its style.