Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
82 changes: 24 additions & 58 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,81 +1,47 @@
# FP4-proposal
Project Proposal is due 2015-04-08 at 8am

Produce a plan for your final project, and prepare an in-class presentation.

Ask questions, as always, [on piazza!][piazza]

## Written Proposal Instructions

Teams will submit ONE written proposal, with sections that each member has done individually detailing their proposed contributions. The submission will be on github, as a pull request of this very file. Below is a template proposal report.

You should be proposing something that you have high confidence that you can achieve, and the proposal should project that confidence.
The proposal should be no longer than necessary, but long enough to include critical detail. Three pages is appropriate. Diagrams are welcome.

Remember, you can do some neat [formatting things with Markdown.][markdown]

## In-Class Presentation Instructions
Teams will each deliver an in-class presentation. **Presentations will be Wednesday, April 8** (and Friday, April 10 as necessary). The presentation material is due on April 8 by 9 am for everybody. [See piazza for full schedule.][piazza]

Your team will have two minutes to present. Create presentation with two or three slides. Make the slides in google drive, and share the public-viewable link at the bottom of this report. The day of presentations, I'll have the list of links on the display computer, so each team can simply click their link and begin.

(Template follows. You may delete this line and all above it. Please edit the following template to create your report.)

# Project Title: title here (10 words maximum)
# Project Title: Graph-ical Emulation Program (a.k.a. GrEP)
### Problem Statement
Describe your problem, and why it is interesting.
There is a need for a simpler way for people with a non-technical backgrounds to utilize the capabilities of plotting mathematical functions. Creating a solution for this problem allows us to not only help people, but permits us to be innovative and learn more about utilizing both graphical user interfaces and graph plotting together.

### Problem Analysis
Explain what approaches from class you will bring to bear on the problem. Be explicit and succinct.
We will develop multiple processes to complete little tasks, such as receiving data, parsing it, and updating the procedure. Our approach, after breaking down the project into its core components (which will include the user input, the transfer of input data, and the use of that information for plotting), will be to break each core component down to programmable sections. While programming, it is ideal to create a layer of abstraction to separate (1) the specific manipulation of data and (2) the use of the procedures that manipulate data. Overall, our approach will be to clearly define each part of the program and optimize the design to make it more efficient.

### Data set or other source materials
If you will be working with existing data, where will you get those data from? (Dowload it from a website? access it in a database? create it in a simulation you will build....)

How will you convert that data into a form usable for your project?

Do your homework here: if you are pulling data from somewhere, actually go download it and look at it. Explain in some detail what your plan is for accomplishing the necessary processing.

If you are using some other starting materails, explain what they are. Basically: anything you plan to use that isn't code.
We will be using the introduction code provided in the Racket library for plot and gui to better understand how to use those libraries. Also, we’ll be using any tutorials for the libraries that Racket provides. Any required data that we don’t have will be supplied by the user as input.

### Deliverable and Demonstration
Explain exactly what you'll have at the end. What will it be able to do at the live demo?

What exactly will you produce at the end of the project? A piece of software, yes, but what will it do? Here are some questions to think about (and answer depending on your application).

Will it run on some data, like batch mode? Will you present some analytical results of the processing? How can it be re-run on different source data?
At the end of this project, we will have a program that creates a gui window. On that window, we will have two components: (1) a choice from a menu for what sort of mathematical function is to be plotted (e.g., linear, planar, etc.) and (2) a textbox that reads in an input for that kind of mathematical function. The program will then parse and store that input as data to plot, either on the same window, a separate one, or on console. Our project will demonstrate the aforementioned, along with any possible developments that time permits. Some additional features we would like to implement is the ability to take in and plot multiple functions at once. In addition to this, we could also give them the ability to stylize the plots to differentiate them (e.g., by color).

Will it be interactive? Can you show it working? This project involves a live demo, so interactivity is good.
The analytical results that will arise from processing will be given by an interactive plot diagram of input functions. This program is heavily focused on what the user wants to graph. Therefore, it will definitely be interactive and will allow the user to customize and update the plot accordingly.

### Evaluation of Results
How will you know if you are successful?
If you include some kind of _quantitative analysis,_ that would be fantastic.
We will be successful if a user can input a function(s), click a button, and then see the function(s) plotted.

## Work Plan and Schedule
Explain how you will go from proposal to finished product. Write your general plan here.
There are three deliverable milestones to explicitly define, below. The nature of deliverables depend on your project, but may include things like processed data ready for import, core algorithms implemented, interface design prototyped, etc.

You will be expected to turn in code, documentation, and data (as appropriate) at each of these stages, so take care in writing concrete steps for your schedule.

In this general plan, and in the deliverables below.
## Work Plan and Schedule
The general plan for the project is to divide it into three parts. The first part focuses on ascertaining input from GUI, parsing that data, and storing it correctly. The second part primarily focuses on taking that data and displaying it back to the window. And the final part focuses on integrating more functions to plot and adding the options of graphical styling and customization.

### First Milestone (04-13)
What exactly will be turned in on this day?
The part handed in is the initial layout of the GUI. Code that shows receiving input from the GUI and storing it as a function. Also, capabilities of plotting are shown.

### Second Milestone (04-21)
What exactly will be turned in on this day?
A program that will receive user input and output a related graph based off of it.Code that shows a GUI with the stored data plotted.

### Final Milestone
Finished project to present. It will be able to handle different function inputs and plot them.


## Group Responsibilities
Here each group member gets a section where they, as an individual, detail what they are responsible for in this project. Each group member writes their own Responsibility section. Include the milestones and final deliverable.

### Susan Scheme
will write the....
### Michael Forsyth (mike01720)
I will be working on the plotting of the function and how it is displayed. For the first milestone, I will be focusing on working with the plot and gui libraries to display functions onto the gui window and helping to make it look nice. With the second milestone, I will be incorporating the input from the GUI, and will be using that to display the functions on the window. As part of the final milestone, I will be working on plotting multiple functions at once and incorporating color and styles to the plots.

### Leonard Lambda
will work on...
### Nicholas Forsyth (nick01720)
I will be creating the GUI layout and setting up the inputs for the different plots. For the first milestone, I will have a gui window that has the necessary widgets (textboxes, scroll menus, and other gui features) that the user can interact with. For the second milestone, I will add or change any widgets as necessary to improve and possibly increase the transferring of inputted data from the gui to plot. As part of the final milestone, I will finalize the layout of the gui and the types of data that the user can provide as input.

## Proposal Presentation Link
insert your google presentation public link here, so with one click it will open up in the browser and you can present.
### Emily Seto (svnaptic)
I will be working on the intermediate step of abstracting data from the gui input, and sending that information to the plot procedures. In addition to this, I will be working with Nick to parse the input data for relevant values to save and to send off for plotting. For the first milestone, I’ll be working on receiving basic user input from gui and storing it. For the second milestone, I’ll be working on coordinating new user inputs with plot. I’ll also be working on rewriting the initial input with a secondary input; in other words, creating state and reformatting objects so that we can allow for updated inputs. For the final milestone, I’ll be working with the finalized set of data input to make sure that everything is being transferred correctly and that the program can also be updated with secondary input.

<!-- Links -->
[piazza]: https://piazza.com/class/i55is8xqqwhmr?cid=453
[markdown]: https://help.github.com/articles/markdown-basics/

## Proposal Presentation Link
https://docs.google.com/presentation/d/1-gDy_dI0RKrSQPWZTt7XP3W-vjw0YBXTj1qiQGvo1AM/edit?usp=sharing