{"id":57,"date":"2012-08-02T04:47:52","date_gmt":"2012-08-02T04:47:52","guid":{"rendered":"http:\/\/blogs.law.harvard.edu\/signal\/?p=57"},"modified":"2012-08-02T05:12:56","modified_gmt":"2012-08-02T05:12:56","slug":"my-final-project-for-s75-ajax-php-javascript-xml-css-mysql-html-google-and-bart","status":"publish","type":"post","link":"https:\/\/archive.blogs.harvard.edu\/signal\/2012\/08\/02\/my-final-project-for-s75-ajax-php-javascript-xml-css-mysql-html-google-and-bart\/","title":{"rendered":"My final project for S75 = Ajax, PHP, javascript, XML, CSS, mySQL, HTML, Google and BART"},"content":{"rendered":"<p>I am finally done with my <a href=\"http:\/\/www.summer.harvard.edu\/\">Summer School<\/a> class <a href=\"http:\/\/www.summer.harvard.edu\/courses\/32288.jsp\">S-75 Building Dynamic Websites<\/a>, taught by <a href=\"http:\/\/cs.harvard.edu\/malan\/\">Professor David Malan<\/a>. It was a very intense course. I liked how fast things moved and how we were challenged every single day. I already had a background in some of the technologies (PHP, HTML, mySQL) but had really no working knowledge in so much other stuff such as xPath, XML, CSS, Ajax, javascript, etc.<\/p>\n<p>My final project was building a <a href=\"http:\/\/en.wikipedia.org\/wiki\/Mashup_(web_application_hybrid)\">mashup<\/a> between the <a href=\"http:\/\/www.bart.gov\/\">BART<\/a> (Bay Area Rapid Transit) <a href=\"http:\/\/www.bart.gov\/schedules\/developers\/api.aspx\">using their API<\/a> and the <a href=\"https:\/\/developers.google.com\/maps\/documentation\/javascript\/\">Google Maps v3 API<\/a>. It was written in PHP, used mySQL as a datastore cache, and pulled realtime information from BART using Ajax. The program was written using the <a href=\"http:\/\/en.wikipedia.org\/wiki\/Model\u2013view\u2013controller\">Model \/ View \/ Controller<\/a> methodology and even version controlled via <a href=\"http:\/\/git-scm.com\/\">git<\/a> using <a href=\"https:\/\/bitbucket.org\/\">bitbucket.org<\/a> as a repository host.<\/p>\n<p>I pretty much gave my soul to this class for the 7 weeks. I was even coding on my vacation :). However, I feel it was a good investment and I would do it again. If you ever have the opportunity to take any course from Professor Malan I highly recommend it. I am considering taking <a href=\"https:\/\/www.cs50.net\/\">CS-50<\/a> possibly in Spring 2013 to fill in some of the gaps of my computer science background.<\/p>\n<p>Below is a screenshot of my final project, where the Pitssburg\/Bay Point &#8211; SFIA\/Millbrae route has been selected. You can see stations plotted along a path that was drawn in the actual route color used by BART.<\/p>\n<p><a href=\"http:\/\/blogs.law.harvard.edu\/signal\/files\/2012\/08\/project.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-medium wp-image-58\" title=\"project\" src=\"http:\/\/blogs.law.harvard.edu\/signal\/files\/2012\/08\/project-300x232.jpg\" alt=\"\" width=\"300\" height=\"232\" srcset=\"https:\/\/archive.blogs.harvard.edu\/signal\/files\/2012\/08\/project-300x232.jpg 300w, https:\/\/archive.blogs.harvard.edu\/signal\/files\/2012\/08\/project.jpg 932w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>The user an click on the stations and it pulls realtime data from BART. Since it is using Ajax, there is no additional page load that happens and so the whole process is a very seamless user experience. It was one of those projects where when it starts off you wonder how you will make it happen in such a short period of time, but then you amaze yourself by pulling it off. Now that I know my way around the Google Maps API, and I have a reasonably good foundation in xPath\/XML, I am on the hunt to find some other sites with <a href=\"http:\/\/en.wikipedia.org\/wiki\/Geographic_information_system\">GIS data<\/a>, where I can build a mashup of something that does not yet exist, something with <a href=\"http:\/\/en.wikipedia.org\/wiki\/Big_data\">Big Data<\/a>.<\/p>\n<p>Below is another screenshot of what it looks like when the user clicks on a station and receives realtime data, this time on the Fremont &#8211; Daly City route (green).<\/p>\n<p><a href=\"http:\/\/blogs.law.harvard.edu\/signal\/files\/2012\/08\/project2.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-60\" title=\"project2\" src=\"http:\/\/blogs.law.harvard.edu\/signal\/files\/2012\/08\/project2-300x253.jpg\" alt=\"\" width=\"300\" height=\"253\" srcset=\"https:\/\/archive.blogs.harvard.edu\/signal\/files\/2012\/08\/project2-300x253.jpg 300w, https:\/\/archive.blogs.harvard.edu\/signal\/files\/2012\/08\/project2.jpg 877w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>I am finally done with my Summer School class S-75 Building Dynamic Websites, taught by Professor David Malan. It was a very intense course. I liked how fast things moved and how we were challenged every single day. I already had a background in some of the technologies (PHP, HTML, mySQL) but had really no [&hellip;]<\/p>\n","protected":false},"author":4602,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-57","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/archive.blogs.harvard.edu\/signal\/wp-json\/wp\/v2\/posts\/57","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/archive.blogs.harvard.edu\/signal\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/archive.blogs.harvard.edu\/signal\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/archive.blogs.harvard.edu\/signal\/wp-json\/wp\/v2\/users\/4602"}],"replies":[{"embeddable":true,"href":"https:\/\/archive.blogs.harvard.edu\/signal\/wp-json\/wp\/v2\/comments?post=57"}],"version-history":[{"count":6,"href":"https:\/\/archive.blogs.harvard.edu\/signal\/wp-json\/wp\/v2\/posts\/57\/revisions"}],"predecessor-version":[{"id":65,"href":"https:\/\/archive.blogs.harvard.edu\/signal\/wp-json\/wp\/v2\/posts\/57\/revisions\/65"}],"wp:attachment":[{"href":"https:\/\/archive.blogs.harvard.edu\/signal\/wp-json\/wp\/v2\/media?parent=57"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/archive.blogs.harvard.edu\/signal\/wp-json\/wp\/v2\/categories?post=57"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/archive.blogs.harvard.edu\/signal\/wp-json\/wp\/v2\/tags?post=57"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}