"Freestyle" Project Proposal

See: The "Freestyle" Project

Learning Objectives

  • Practice researching and describing user needs within the context of a proposed computer-based information system.

  • Practice identifying and describing the information requirements and high-level objectives of a proposed computer-based information system.

  • Practice researching the technical capabilities of various third-party APIs and Python packages, using an active learning process which leverages information available on the Internet.

  • Practice decomposing system requirements and functionality into smaller, more manageable pieces, and then prioritizing the development of those features.

Instructions

Please use your university-issued email address to submit the designated Google Form before the designated due date. If submitting on behalf of other group members, only one member needs to submit the form.

For your reference, the form will contain questions like those below.

Group Membership

You may work by yourself, or in a group with up to three members total.

  • If working by yourself, write "N/A" below.

  • Otherwise if working in a group, write the email address(es) of all OTHER group members, separated by commas (e.g. "partner1@myschool.edu" for a two-person group, or "partner1@myschool.edu, partner2@myschool.edu" for a three-person group).

User Needs

Your project should help some human in some way. Who will your app help, and how? To help explain the objectives of your system, write one or more statements of user needs in the form of "[WHO] needs [WHAT] so they can [WHY]".

Information Inputs

What information inputs (e.g. API data, user inputs, etc.) will your system need to access or process in order to perform its desired functionality?

Information Outputs

What information outputs (e.g. compiled reports, data aggregations, notification messages, etc.) will your system need to produce, display, or send in order to perform its desired functionality?

Technical Feasibility Analysis

Investigate the degree to which your proposed system is implementable from a technical perspective, specifically via application software written in Python. Hopefully it is possible, otherwise you are advised to propose a different solution.

So, what technologies, tools, or services (e.g. third-party APIs and/or Python packages) will your proposed system require? Have you researched the documentation, tutorials, and examples for those other technologies? Have you demonstrated your ability to use them? How's it going? What do you "know you know" vs "know you don't know"? Are there any steps remaining to complete your investigation?

Feature Prioritization

Are you able to break your system's components up into smaller, more easily manageable pieces, or "features" such that someone could work on one logically-related feature at a time? Which feature(s) are the most important to implement, and which are the "nice to haves"? Which features will you implement first, and why? If working in a group, how do you propose to split up the work between all group members?

Last updated