CSC220 Project 2010

From CSclasswiki
Jump to: navigation, search

This is the work-in-progress page for CSC220, Fall 2010, Project. This project page is the "working" page to put all kind of information to be shared with the class. A more crafted page is available here. Please update this page when contributing new material. Alex will port it to the final project-page.
Everybody in the class should feel free to pick one or several of the areas listed below and expand on them. This is a cooperative project.


Note from DT (email) 11/15/10: Here are some summarizing and/or additional notes relating to today's lecture.

  1. . The pictures of today's diagrams are available from the class Web page, under today's date entry.
  2. . I am satisfied that we have defined the different teams and what they will be working on, in a general fashion. I would like all the teams to meet this week so that by the end of the week each team will have a clear statement of what they will do. Please update the Web page for the project with this statement in the Teams section.
  3. . Millie and Kritjan, please pick a team and define your task, either an existing one, or one not currently assigned to anybody.
  4. . Alex will be creating a new page for the project, which will be the one we'll keep in the end and show the world. In the mean time, all modifications, statements, new information provided by the class go to the old page. Alex's job will be to constantly check on new additions to the old page and decide if the first page needs updating. (Google reader might be a good tool to keep an eye on the old page and be alerted when something new gets added, Alex!)
  5. . Amy will put together an outline of the final presentation. A representative of each team should present something on the last day of class, showing what the team did. Amy will orchestrate the final presentation. If somebody wants to help, please let her and me know.
  6. . Everybody should have a working project at the end of the semester. It might contain 80% code generated by others, and 20% code generated by you. This is fine. But it should be in your directory and working.
  7. . I recommend that you create a special Wiki page for your own part of the project. Alex will create a link to it from the main project page, and with your help will figure out what summary of your wiki to include in the main project page.
  8. . I am tentatively deciding not to assign any new homework assignments. But I want to make sure everybody works on the project in frequent installments, and with their group. Help me figure out a way to help me help you and make this happen.


  • To be created
  • What is the project about?
    • The project involves gathering GIS files (in kml form) from email messages generated on data phones by apps such as Walkmeter 4.0, storing the GIS information in a database, and generating a visualization (Google Maps image, Processing animation image, etc.) of the paths taken by students.
  • What other similar work exist that present similar animation/graphics/visualization?

-- Acheng 13:51, 4 November 2010 (UTC)

(Note from DT: please add photos or videos!)


Note from DT -- 11/10/10: I need signed ideas for the homework assignment or assignments that will start on 11/11 and be due on 11/18. Please use the space below to list your ideas. If you agree with a particular idea, then sign your name next to it.

  • I don't remember what we said in class, but since we're all interested in doing processing, we could take kml file input and generate a processing image from it. Maybe taking kml file input from a form, and generating a processing visualization where you can see one path on the next page? Not sure how complicated this would be, though. -- Acheng 15:08, 12 November 2010 (UTC)

Teams and sub-projects

Note from DT--11/10/10: Since the whole class wants to work in Processing, we have to subdivide the work, so that each Team works on different aspects. I suggest you start thinking about the different subjects below (not a all inclusive) and get teams organized around some of these issues:

  • Processing-Related
    • Defining the background as a map of the campus, and figure out how to scale the image and the position of the building accurately, so that a point at longitude X and latitude Y will appear at the right place on the campus map.
    • Defining a format/protocol to use to display several KMLs at the same time.
    • Defining what else gets displayed besides the traces, if any (number of students? date? time?)
    • Defining a format for the animation. Color? Shape? Trailing effect?
    • Defining the type of interaction a user will have with the mouse, if any. Can the user use a slider and go forward or backward in time?
  • Not Processing Related
    • Somebody needs to maintain the project wiki and organize it in a more logical way as we go along and you add more stuff to it.
      • I like documenting things, so I would like do this, but I am also open to doing this on top of something else :) -- Acheng 23:39, 10 November 2010 (UTC)
    • Generating Synthetic traces is important, so that we can play with hundreds of different paths. Somebody should do it!

  • the various groups/teams working on specific parts of the project
    • Google Maps/Google Earth
    • Processing
      • Basic or hotspots --Atalyloe 18:42, 3 November 2010 (UTC)
      • Katie Park--Spark2 00:39, 2 November 2010 (UTC)
      • Millie Walsh--Mwalsh 13:26, 2 November 2010 (UTC)
      • Elizabeth Do --Edo 19:40, 9 November 2010 (UTC)
        • Some links to look at... we may have seen some in class already. I would love to create something similar to the flight paths visual.
      • Julia Patterson --Jpatter2 21:26, 10 November 2010 (UTC)
        • Similar to what Elizabeth is thinking, I was thinking about some sort of complete path-tracing, done with a low level of opacity, so that when students paths cross or overlap, the most used paths/sections of campus gradually become more opaque (maybe brighter as well), in order to visualize the most-traveled paths. As an extension of that, someone (me or someone else, depending) might want to figure out how to get information about a student's major, status, living area, whatever, and change the color for specific attributes.
          • This sounds similar to my hotspot idea. Wanna form a group? --Atalyloe 04:18, 11 November 2010 (UTC)
            • We could also attempt to look at the hotspots with a time variable...? --Lgregor 19:10, 12 November 2010 (UTC)
        • Similarly to how that Processing demo honed in on the part of a video screen with the lightest pixels, I think we could find a region on a map of campus with the highest density of tracks. This could tell us not just what paths, but what areas of campus have the most people. It might be possible to make some sort of population contour lines, and look at different times of day. --Kristjan 18:01, 15 November 2010 (UTC)

Current Teams

A list of each team, and what they're working on (edit as groups are formed)

  • Elizabeth and Aigerim - path animation with Processing.
  • Alex - Documentation and... something (I'm open to working on anything...)
  • Amy, Lindsey, Julia, and RB? - hot spots with Processing. High transparency so more common paths will be darker/brighter
  • Kristjan- With Processing, identifying regions of campus with higher populations at different times of day

Time Line

  • Tentative timeline: (created by Amy Tayloe, feel free to edit)
    • 11/8: Choose teams, pick features, start work
    • 11/15: Have input form created and able to go live
      • Have database created with some preliminary information
    • 11/22: Have data-generating (via email) able to go live
      • Thanksgiving Break
    • 11/29: Have basic data-processing (generating basic paths from information in database) finished
    • 12/6: Have complex data-processing (static, dynamic, multi-path, filters, hotspots) finished
      • Entire program should be able to go live at this date
      • Start work on presentation
    • 12/13: Present project --Atalyloe 17:41, 3 November 2010 (UTC)
  • Shows progress of project toward end of semester presentation.
  • Gives one week of buffer time in case any portion takes longer than expected
  • pics
  • November.jpg
    -- Acheng 14:05, 4 November 2010 (UTC)

Input Data

  • Gather real traces
  • Generate synthetic traces ( <--- important! )

Overall Organization

  • Should be a block diagram as was put together for an earlier project.

Main Entry Form

Registration Page

  • Email address (which can be used as a username) (maybe not, as this can easily be looked up to violate confidentiality)
  • Affiliation (class year, staff/faculty, other)
  • Major/Department/Office^
    • Input Formats
      • Drop down menu
      • Text box
  • School (Mt. Holyoke, Hampshire, High School, etc.; different routes taken by non-Smith students)
  • Phone Type? (showing differences between iPhone and Android users on campus?)
  • Interests^ (finite list, possibly checkboxes)
    • Music
    • Dance
    • Theater
    • Athletics
    • Student Organizations
    • add more if needed.
  • Housing Area (Green Street, Center Campus, East Quad, West Quad, Upper Elm, Lower Elm, off campus)

^How do we limit the possible options? There are many departments and offices on campus. Do we want to check each entry in the table to make sure none the departments/offices/majors overlap or have a set list? This applies to the interest category as well--Mwalsh 20:45, 9 November 2010 (UTC) with Katie

^We could create a database for the 'Majors' part listing all of the majors at Smith and include an 'Other' choice. We could have a text field to give more information on the other major. This field would be NULL in any other circumstance. In regards to the 'Interests' section, we could keep the categories general such as: 'Athletic Team', 'Music/Acapella', 'Academic Organization', 'Service Organization' etc. --Lgregor 00:35, 10 November 2010 (UTC)

^"What might be easier (at least in terms of organization and use) is to group majors into the seven divisions of the Latin Honors (as there are a heck of a lot of majors, and the list gets kind of unwieldly). For reference, the groupings are Literature, Social Science, Historical Studies, Foreign Language, Natural Science, Mathematics/Analytical Philosophy, and Arts. "--Atalyloe 04:16, 11 November 2010 (UTC)

All of the fields that we decide are optional should to have an easy way to not give that information. For example, if we are using a drop-down list of Majors, we should have the default option be blank so the use has to deliberately select one. Also, there should be a distinction between what is required and what is not; like an asterisk by the required fields. --Raxtell 20:50, 14 November 2010 (UTC)

File Upload Form

We might want to add a separate page for file upload so that it takes out the redundancy of filing out the form each time. In this upload KML form, we will include:

  • Email address (to link it to the database)
  • File upload

(it redirects to the main form if the email address is not found within the database)

This part could be included in the final display form where we can request various types of output. That way all types of output are computed and the user maybe able to switch back and forth. --Edo 19:54, 9 November 2010 (UTC)

  • Type of Feedback
    • Static
      • Google Map
      • Google Earth
    • Dynamic
      • Animation
      • Processing
    • etc.

Email messages


--Thiebaut 16:08, 6 November 2010 (UTC)

Recommendations (also posted in CSC220 Homework 7)

  • Please define the format of the tables needed for the project
  • Use the MySql dump format to define the tables. One what to do this is to define your table in phpmyadmin, then export it (without data), and copy/paste the CREATE TABLE..." query here.
  • Use as many tables as you see fit.
  • Use as many fields as you see fit.
  • The idea is that if you all use and play with the same tables and fields, even if there are fields or tables your program will not use, then everybody's software becomes interchangeable.
  • Note. Feel free to add KML data in the tables, and user information (even fake) in the tables, but replicate the tables in your own database, and use these for debugging and developing your form.

Tables Schema

Here is the dump of the database: DatabaseFile --Edo 21:11, 9 November 2010 (UTC) and Aigerim

This dump has been uploaded as the 220a_project database.

7 tables in the database --Edo 20:31, 9 November 2010 (UTC) and Aigerim edits by --Mwalsh 21:02, 9 November 2010 (UTC) with Katie, and more edits by Acheng 21:00, 9 November 2010 (UTC)

  • userInfo (The table that is filled from information from registration page)
    • userId
    • email
    • schoolId
    • affiliationId
    • majorId
    • phonetypeId
    • interestId (for the purpose of this form, we are considering that the user only has one interest)
  • kmldata (where kml data is uploaded)
    • kmlId
    • userId
    • date
    • kml
  • affiliation (Contains the index of the types of affiliation)
    • affiliationId
    • affiliation (first year, sophomore, etc)
  • Major/Departments/Offices (Contains the list of the all the majors at Smith)
    • majorId
    • majorName
  • PhoneType (Contains the list of the different types of phones)
    • phoneId
    • phoneName
  • Interests (Index for the types of interests)
    • interestId
    • interestType (Athletics, Music, Dancing, Volunteering....)
  • School
    • schoolId
    • schoolName

Table Queries

The entire database dump is in the Table Schema section. --Edo 21:19, 9 November 2010 (UTC)

GIS File Format

Some thoughts on GIS File Format. A nice collection of good information on GIS File format recorded by Jon Caris and presented on 11/08/10.

Output styles supported

Option 1

Option 2



  • this should contain a list of programs common to all projects
  • this should also follow a logical progression, from input to output, for example.

Examples of Outputs

  • Google Maps
  • Google Earth
  • Processing
  • Other?

Special Features

  • this should be where different groups show their different approaches.