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
97 changes: 51 additions & 46 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,81 +1,86 @@
# FP4-proposal
Project Proposal is due 2015-04-08 at 8am

Produce a plan for your final project, and prepare an in-class presentation.
# Project Title: iLambda (iλ)

Ask questions, as always, [on piazza!][piazza]
### Problem Statement

## Written Proposal Instructions
iSENSE (isenseproject.org)--an online system that promotes collaborative scientific analysis by providing accessible ways to upload, share, and visualize data--is a website developed for teachers. Teachers can setup projects for their classroom experiments. Both students and teachers can input data into projects, and iSENSE will display the data on different visualizations.

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.
The problem is when creating projects, teachers have to create data fields. These fields are like the variables in an experiment, also known as the project, and they hold data which is later graphed on iSENSE. Teachers can find that creating a project is a bit confusing. iLambda will make it easier to setup projects on iSENSE, and it is interesting because it will contribute to an ongoing research project at the university.

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.
### Problem Analysis

Remember, you can do some neat [formatting things with Markdown.][markdown]
We will build a web application in Scheme using GUI and Network libraries that will help teachers easily setup projects. It will first display a login page, then a page with a list of predefined common projects. By simply clicking on the project, it will automatically create that project on iSENSE. Lastly, it will give them the options to change or alter the project.

## 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]
We will apply several programming practices from class including object-oriented concepts to create and maintain projects as well as higher order procedures to manipulate the project objects.

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.
### Data set or other source materials

(Template follows. You may delete this line and all above it. Please edit the following template to create your report.)
When we create our login page, we will need to verify that the email and password information is correct in the iSENSE user database. We won’t need to download or pull any information from the user database, we will just check it through a call in iSENSE’s API. We also need data variables, so we can create data fields, instructions, and a default picture for each of the pre-defined projects, but we won’t need to download or pull this data from any external database. We will populate our own database with project information. Project information will most likely come from all the projects we’ve done at iSENSE workshops over the past few years.

# Project Title: title here (10 words maximum)
### Problem Statement
Describe your problem, and why it is interesting.

### Problem Analysis
Explain what approaches from class you will bring to bear on the problem. Be explicit and succinct.

### 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....)
### Deliverable and Demonstration

How will you convert that data into a form usable for your project?
We will create interactive software that communicates with iSENSE to assist teachers in creating projects. The software will contain multiple parts including the following:

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.
(1) *Login Page*: First, teachers will login using their iSENSE credentials. We will verify the given email and password exist in the iSENSE user database by making a GET request to the iSENSE API. When teachers successfully login, they will be redirected to the projects page.<br>
![wireframe 1](http://weblab.cs.uml.edu/~kcarcia/OPLProject/1.png) <br>

If you are using some other starting materails, explain what they are. Basically: anything you plan to use that isn't code.
(2) *Projects Page*: Teachers will then select one of the 10 pre-existing projects listed. (Only four projects are shown in the wireframe to save space.) We will store all project information in a database. Project information will include a default title (which can be changed), fields, and two media objects--a default image and project instructions in a PDF. Once a teacher selects a project, they will be directed to the title page.<br>
![wireframe 2](http://weblab.cs.uml.edu/~kcarcia/OPLProject/2.png) <br>

### Deliverable and Demonstration
Explain exactly what you'll have at the end. What will it be able to do at the live demo?
(3) *Project Title Page*: Projects will be automatically assigned a name, but users will have the option to modify it on this page. After this point, the project will actually be created via the iSENSE API by grabbing the given project title and information associated with the selected project in the database.<br>
![wireframe 3](http://weblab.cs.uml.edu/~kcarcia/OPLProject/3.png) <br>

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).
(4) *Media Object Page*: Teachers will then have the opportunity to upload additional media objects, such as files or images, to their project. Media objects will be added to the project via a POST request to the iSENSE API.<br>
![wireframe 4](http://weblab.cs.uml.edu/~kcarcia/OPLProject/4.png) <br>

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?
(5) *Contributor Key Page*: Users also will have the option to create a contributor key for their project to make contributing data easier for their students. Contributor keys will be added to the project via a POST request to the iSENSE API.<br>
![wireframe 5](http://weblab.cs.uml.edu/~kcarcia/OPLProject/5.png) <br>

Will it be interactive? Can you show it working? This project involves a live demo, so interactivity is good.
(6) *Goodbye Page*: Finally, teachers will be provided the link to their brand new project on iSENSE.<br>
![wireframe 6](http://weblab.cs.uml.edu/~kcarcia/OPLProject/6.png) <br>

### 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 reach success if we implement all aspects of the software described above--creating a project, modifying the title, adding media objects, and setting up a contributor key. In addition to developing functional software, we also think building an intuitive user interface and including 10 different project options will be a part of reaching success.

## 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.
![schedule](http://weblab.cs.uml.edu/~kcarcia/OPLProject/schedule.png) <br>

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.
### First Milestone (04-13)

In this general plan, and in the deliverables below.
For the first milestone, we will turn in code, documentation, and data.

### First Milestone (04-13)
What exactly will be turned in on this day?
Code and documentation for:
- Inputting projects into database
- Login page UI

An image for:
- Our logo

Data for:
- Projects to be selected by users

### Second Milestone (04-21)
What exactly will be turned in on this day?

For the second milestone, we will turn in additional code and documentation for:

- Login functionality
- Project selection page UI
- Project title page UI
- Project creation functionality

## 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....
Kaitlyn and Ravy will both collect project data and work on assignments together. Their individual assignments are listed below.

### Leonard Lambda
will work on...
### Kaitlyn Carcia
Kaitlyn will input projects into the database; build the UI of the login, project title page, as well as the “you’re finished!” page; and implement project creation as well as contributor key creation.

## 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.
### Ravy Thok
Ravy will create the logo; build the UI of the project selection page, media objects page, as well as contributor key page; and implement iSENSE login as well as uploading media objects.

<!-- Links -->
[piazza]: https://piazza.com/class/i55is8xqqwhmr?cid=453
[markdown]: https://help.github.com/articles/markdown-basics/
## Proposal Presentation Link
[Presentation](https://docs.google.com/presentation/d/1dsIfek5W0uXWie95RNLjmPFDuw9SvUgawQ5HGWtAzwM/edit?usp=sharing)