Proposal Phase 1
Download this template and save it to your github project.
Title
| Project Title | |
| Name 1 | First student name |
| Name 2 | Second student name |
Project Description
This description will vary in length and detail. It could be as short as 4 sentences, or as long as 1 page. Target about 2-4 paragraphs long. Describe what the project does with enough detail that another developer could implement the project for you and get it pretty close. Sections below will allow another developer to get it very close!
Provide a brief description of your project idea (2-3 sentences). Explain what your program will do and how it will use Java FX for graphical development.
Purpose & Motivation:
Why did you choose this project? What do you hope to learn or accomplish?
Project Features
You must create a Feature matrix table that shows a progression of each of your features. The difference between Prototype features, Core features, and Stretch features lies in their purpose, scope, and timing in product development.
Read through each type of feature below:
-
Prototype Features
-
Definition:
Prototypefeatures focus on quick validation, while core features focus on delivering a complete, competitive, and sustainable product. We will work as quickly as possible to create our prototypes so we can get early feedback from peer user testing and adjust plans accordingly. - Purpose: To validate an idea, test market demand, and gather user feedback with minimal effort. You will use this step of development to try out some of your ideas on your fellow classmates well before the final project due date.
- Scope: Limited to essential functionalities that solve the primary problem. Graphics may be placeholders and other similar shortcuts to validate the ideas of the project.
- Timing: Released in the earliest stage of development to test hypotheses.
- Examples: A ride-sharing app prototype might only allow users to request a ride and drivers to accept it (without payment integration or advanced route optimization).
-
Definition:
-
Core Features
- Definition: The fundamental and defining features of a product that provide its long-term value.
- Purpose: To sustain and grow the product, enhancing user experience and differentiation. This should be your goal for the finished product.
- Scope: The minimum functionality possible for peer feedback. Items may be hard coded at this point (such as preference) or other elements. May include a single scene for simplicity. Does not include optimizations, competitive advantages, and scalability.
- Timing: Developed and refined after initial design is complete, often as part of iterative improvements.
- Examples: In the same ride-sharing app, core features may include fare estimation, surge pricing, driver ratings, and in-app payments.
-
Stretch Features
- Definition: The extra features/gaols that should only be implemented if time permits; they should be bonus and not fully necessary.
- Purpose: To expand the app beyond its initial goals, furthering its differentiation.
- Scope: A set of functions that are not essential for the project, treated as bonuses.
- Timing: Developed after core features are fully completed and refined.
- Examples: In the same ride-sharing app, stretch features may include subscription plans, paying via cryptocurrency, AI-recommended rides, and Augmented Reality navigation.
What
Stretchfeatures are you planning to implement if time permits? List the features that are bonus and completely unnecessary. These will be added only as time permits.
Sample Feature Matrix
Here’s a simple example of a feature table with Prototype, Core, and Stretch features for a ride-sharing app:
| Feature Category | Prototype Features | Core Features (For complete product) | Stretch Features (Future Enhancements) |
|---|---|---|---|
| User Management | User registration & login | Profile verification & preferences | AI-based ride recommendations |
| Ride Booking | Basic ride request & acceptance | Ride scheduling & multi-stop trips | Subscription plans for frequent users |
| Payment | Cash or manual payment handling | In-app payments & fare estimation | Cryptocurrency payments |
| Navigation | Basic driver-passenger location sharing | Real-time traffic-based route optimization | Augmented reality (AR) navigation |
| Safety | Driver & passenger ratings | Emergency SOS button | AI-driven fraud detection & background checks |
For each of these features listed in the first column you should include more detailed specifics in separate paragraphs, like:
User Management: This will include how users connect to the system, how they are authenticated and any additional information that is attached to their user profile…
Learning Targets and Challenge Goals
You must include what you plan to learn more on related to your project idea.
What do you need to know to be successful? What technology or techniques are new to you that are likely to be difficult? What will you exercise and get better at because of this project?
Bulleted list goes here.
You can:
- List out Data Structures, Generics, and/or Interfaces that you intend to become more familiar with.
- List out algorithms and/or public libraries List out GUI components or things like: multi-threading, security, web services, GitHub, sound, Fast Fourier Transforms, double buffering, image processing, fly out menus, Trees, networking.
Do not say vague things like, “To learn how to code the project”
High Level Weekly Timeline
Create your task list from this template (You may modify but you should keep this as the minimum required information for a task list).
You must include a link to your phase 1 milestone task list in this document as markdown. (See below for an example; you can convert the google sheet to markdown using this tool here: https://tabletomarkdown.com/convert-spreadsheet-to-markdown/)
Task list details
- Task - A short description of a task. Keep tasks as simple as you can and avoid mixing tasks across multiple things. If you need to later you can cross out this task and split it into multiple items as you learn more (keeping your original estimate)
- Owner - Who you plan to have work on this task.
- Status - So you know if your partner is finished or actively working on this or hasn’t started.
- Initial Estimate - What’s your best guess on time for this? If you have a task that is large that’s fine but it’s a good indication that you will need to split this up into multiple tasks on the week you decide to work on it. You won’t change this after your initial design document is created.
- Expected Time - Use your previous teams multiplier to get a # hours for this.
- Week# - Which week is this planned for? You can turn on week numbers in most calendars and use this for planning.
- Actual Time - You’ll record this as you finish tasks.
- Notes - Any other stuff you want to put in to help coordinate on tasks.
Sample Task List
| Task | Owner | Type | Status | Initial Estimate | Multiplier (Expected Time) | Week # | Actual Time | Notes / Details / Description |
|---|---|---|---|---|---|---|---|---|
| Milestone 1 name | Milestone | In progress | 0.00 | 1 | Milestones are parents of your tasks (they are a summary of all of the weeks planned tasks) | |||
| Milestone 2 | Milestone | Not started | 0.00 | 2 | 0.00 | |||
| 0.00 | ||||||||
| 0.00 | ||||||||
| 0.00 | ||||||||
| 0.00 | ||||||||
| 0.00 | ||||||||
| 0.00 | ||||||||
| 0.00 | ||||||||
| 0.00 |
Each week we have a little less than 4 hours of class time. Given other interruptions and activities, if you schedule more than 3 hours pp (per person) for a week you can expect you’ll need to work outside of regular class hours on it.
Approval
You must receive teacher approval to continue to Phase 2. Your teacher will review all projects and send notice if you are not approved to continue to the next phase.