User:Messi~enwikiversity/barcode

Write problem/project Goal
The primary goal is create a practical application using QR Codes and a smartphone application that reads the QR codes. The previous two teams focused mainly on the mapping of nature trails. I want to focus on making an application that could be used in the classroom. QR codes would be placed at each computers and students will scan the QR codes to check in. This could be used to supplement how attendance is taken.

My First Task
Read what the previous two teams managed to accomplish. Determine which aspect of their work would be useful and how to improve of the progress they made.

Summary of actual work over first weekend
I wanted to solve a lot of the problems the previous teams had on this project. I wanted to find away to open the native map application of either iOS or Android directly from a QR code. It wasn't till later in the week that my goal changed to working completely offline since I should assume the user has no data connection.

Week1 Narrative
The first thing I looked for was if there were any ways to draw directly on the Google maps themselves. I found these 3 websites that made it very easy to draw polygons on the map. The idea was to use these polygons to show classrooms and other features of buildings here at HCC.


 * http://quikmaps.com
 * http://www.scribblemaps.com
 * http://www.drawamap.org

I was also successful in opening up the native Google Maps app in my Android phone by placing the link: maps.google.com/maps?hl=en&q=howard+community+college inside the QR code. When I scanned the QR code with my phone, a popup notification showed up asking if I wanted to use the default browser or the native Google Maps app.

I was making great progress, but midweek, professor suggested that I focus more on something that works completely offline.

My Second Task
Over the weekend, I'm going to work on an android application that read and unzips files to the phone's sdcard. I will need to start with some basic android app and work my way up.

Summary of actual work over second weekend
The goal over the weekend was to follow some tutorials that will get me to start writing some actual Android apps. I managed to put together a simple Temperature unit converter tool and an app that writes a text file to the phone's sdcard.

Week2 Narrative
Once I got my Linux box up and running, I downloaded the new Android SDK and begin setting everything up. I liked that fact that new SDK comes with eclipse pre-packages. Anyways, I fond these two sites that provided me with plenty of stuff do play with. The android SDK documentation's website had alot of code snippets as well, but I'm not ready for those yet.
 * http://people.bridgewater.edu/~arn002/csci440/android-tutorial.htm
 * http://www.vogella.com/articles/Android/article.html

My Third task
I need to adjust the application that writes and reads the text file from the sdcard in a away that would allow me to unzip files to a created directory on the sdcard.

Summary of actual work over third weekend
After some tweaks to the app from last week, the new app can now download map files(zip) to the Download folder on the phone. After the map files are downloaded, I created a button that unzips the zip file and move it to a directory on the SDCard.

Week3 Narrative


Every boils down to:
 * 2 buttons with on Click listeners
 * 1 activities(MainActivity.java)
 * 1 layout for the activities (main_activity.xml)

I had already learned how to start a new app from last week, so creating and editing all the .xml and .java files was straight forward. I found this blog that has tons of snippets on how to use Intents, which are ways for an activity to start something else..like another activity. http://www.vogella.com/articles/AndroidIntent/article.html

The download button is attached to an ACTION_VIEW Intent which opens the browser with the url String provided. Here is the code that runs when the button is pressed. public void downloadMapsFiles(View view) { String url = "https://www.dropbox.com/s/44xjmz15oobuozm/hccMaps.zip"; Intent i = new Intent(Intent.ACTION_VIEW); i.setData(Uri.parse(url)); startActivity(i); }

The UnZip Map Files button is attached to an onclick listener similar to the download button. When it is clicked, this is run: public void startUnzipping(View view) { String zipFile = Environment.getExternalStorageDirectory + "/hccMaps.zip"; String unzipLocation = Environment.getExternalStorageDirectory + "/unzipped/"; Decompress d = new Decompress(zipFile, unzipLocation); d.unzip; }

The Decompress class does all the work. I found it on this http://jondev.net/articles/Unzipping_Files_with_Android_(Programmatically). I took me awhile to get it to work with the codes that I was already using. I didn't know where the codes from tutorial were supposed to be place, how to call and use them with buttons, but after many crashes, I finally got to work.



Link to 11-28 apk Here

Link to 12-02 apk Here

Link to the file structure of the app. I think these can be used to re-compile but haven't tried it yet. Here

Link to map zip used in 11-28 apk here

My Fourth task
At this point, I can only download to the Download folder, which is not on the SDCard. I need to move the file after it is downloaded so the unzipping class can find it. I also need to provide some sort of feedback to let the user know that the file is being unzipped.

Summary of actual work over fourth weekend
I made adjustments to my app so that it can transfer the downloaded file to the SDCard so it can be unzipped.

Week4 Narrative
Link to 12-06 apk Here

Link to 12-06 File System Here

http://www.screencast.com/t/8FCCW2hhK

Complete Team Page
Fill out the Team Form (should have already copied the form, created the team page, linked to it and started filling it out).