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
116 changes: 66 additions & 50 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,81 +1,97 @@
# 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: Create a Racket Mathematics and Graphing REST API
### Problem Statement
Describe your problem, and why it is interesting.
To set up a racket Webserver with API landing points that interpret JSON input, which would then be processed by Racket to evaluated solutions. These solutions would then be returned by the webserver and in JSON form, images would be returned as links.

### Problem Analysis
Explain what approaches from class you will bring to bear on the problem. Be explicit and succinct.
We will use an objects system to generate the components, with a master object running the application. This will allow for the system to be independent of each component.

### 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.
We will be generating our own test data for input, and will be using [json][jsonlint.com] to validate structure.

If you are using some other starting materails, explain what they are. Basically: anything you plan to use that isn't code.
This data will be sent to our server and caught, it will then be interpreted by our json object class and turned into a form that our API can manage. The API object will then determine the operation and use a handler procedure like in the bank account examples to determine what to do with the data. Once the operations are processed our json object will construct a response and return it to the user through the Webserver.

### 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?

Will it be interactive? Can you show it working? This project involves a live demo, so interactivity is good.
We will be able to do basic mathematical operation such as:

| method | params | description |
|---------|------------|-------------------------|
|add | + a b | addition of a pair |
|subtract | - a b | subtraction of a pair |
|multiply | * a b | multiplication of a pair|
|divide | / a b | division of a pair |
|modulus | % a b | modulus of a pair |
|exponent | a ^ b | exponent of a pair |
|equal | = a b | equality of a pair |
|eval | f( x ) , x | evaluate a function at |
| ... | ... | ... |

We will also try to implement graphing of equations such as with

| method | params | description |
|---------|--------------------|-------------------------|
|sin | a sin( b )^p | sin curve graph |
|cos | a cos( b )^p | cos curve graph |
|tan | a tan( b )^p | tan curve graph |
|graph | f( x ) , x , a , b | graph a generic function|
| ... | ... | ... |

This project will be run on a webserver that will return live results, any user will be able to access the API and view the dynamic results.

### Evaluation of Results
How will you know if you are successful?
If you include some kind of _quantitative analysis,_ that would be fantastic.
Since our project will involve mathematics it will be easy to prove that the results are what was expected, sample data will be run with identites such as 1 * x = x , 0 * x = 0 . Application results will be compared to actual results for validity.

## 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.
### Plan

| | task | state |
|---|------|-------|
| 1 | Create Web Server object | in progress |
|1.1| Web Server Documentation | not started |
|1.2| Generate proof of success| not started |
| 2 | Allow for multiple landing pages associated to the API methods | investigation|
|2.1| Web API Documentation | not started |
|2.2| Generate proof of success| not started |
| 3 | Create a JSON processor object | in progress |
|3.1| JSON object Documentation | not started |
|3.2| Generate proof of success| not started |
| 4 | Create a Server API Handler object | not started |
|4.1| Server API handler Documentation | not started |
|4.2| Generate proof of success| not started |
| 5 | Create a Mathematics object | not started |
|5.1| Mathematics object Documentation | not started |
|5.2| Generate proof of success| not started |
| 6 | Create a Graphing object | not started |
|6.1| Graphing object Documentation | not started |
|6.2| Generate proof of success| not started |
|7 | Integrate objects | not started |
|7.1| Generate proof of success| not started |

In this general plan, and in the deliverables below.

### First Milestone (04-13)
What exactly will be turned in on this day?
During the First Milestone we will have turned in Client related items (Items 1 - 2.2) as well as the Mathematics portion (Items 5 - 5.2)

### Second Milestone (04-21)
What exactly will be turned in on this day?
During the Second Milestone we will have turned in Server related items (Items 3 - 4.2) as well as the Graphing portion (Items 6 - 6.2), we will aso be completing (Item 7.*) and producing results

## 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.
### Jose Flores
Will be responsible for the transmission and interpretation of data, so will be primarily working with (Items 1 - 4.2)

### Susan Scheme
will write the....
### Munkhjargal Narmandakh
Will be responsible for the production of results, so will be focusing on (Items 5 - 6.2)

### Leonard Lambda
will work on...
### Joint
Together we will integrate our seperate objects into the application. (Items 7 - 7.1)

## 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.
[proposal] [proposal]

<!-- Links -->
[piazza]: https://piazza.com/class/i55is8xqqwhmr?cid=453
[markdown]: https://help.github.com/articles/markdown-basics/
[json]: http://jsonlint.com/
[proposal]: https://docs.google.com/presentation/d/1jA6KDpAIbmpuTRilt6YqcnbVv8tDG9p0BZxEkVU0yhk/edit#slide=id.p