-
Notifications
You must be signed in to change notification settings - Fork 5
GSoC 2014 Shelagh McGowan
I like to know how things work, and I also love making things work. I believe that as systems become more advanced, people tend to trust them without knowing why they work. I believe this is dangerous. I saw a play called Enron in my senior year of high school. A woman in the play asked the question “We all trust when we step on a plane, that it will take us where we need to go, but how many of you actually know how a plane works?” I didn't. There is a flaw in a system when people using the system don't know how it works. I realized I didn't know how the cells in my very own body worked, or how my iPhone worked, or even how my own dishwasher worked. Not to get all science fiction here, but in order for people not to be subconsciously influenced by entities that could have control over their lives, they need to be educated. If they don't realize how much they don't know and do not seek education, then they need to be protected. For this reason, I want to work in cyber security.
Peace Corps Projects > Mobile Projects > PeaceTrack(iOS)
PeaceTrack deliverables will include:
user prototype, edited user prototype, core data functionality, database connectivity, possible social network functionality and testing.
see timeline below for further information.
Link to your documentation as you progress in your projects.
6/20 really old PeaceTrack UI Prototype 1-XCode Project
6/26 Questions for PC from 6/26 meeting
6/21 Android and iOS UI screenshots of PeaceTrack UI Prototype 2 side by side ppt
6/24 Discussion regarding revision to PeaceTrack UI Prototype 2
7/21 Notes for Developers
8/18 PeaceTrack Developers Guide
8/18 Grace Hopper Open Source Day PeaceTrack iOS
8/18 Systers peacetrack-ios repo find my code here!
Link to your unit test results. Could be in table format or sections. Up to you.
- Met with Peace Corps clients via video call. Created an updated timeline with PeaceTrack deliverables in accordance with client requirements. Created a Git repository on GitHub for PeaceTrack. Made initial push from Xcode PeaceTrack project to GitHub. Started work on the PeaceTrack UI. Studied Objective-C syntax and semantics in great detail. Researched different techniques for data persistence. (Planning on using Core Data).
- N/A
- N/A
- N/A
- N/A
- I plan to have the user interface part of PeaceTrack completed by June 2.
- I am ahead of schedule. :)
- Worked on create a user account (previously login) functionality with Pooja (PCT Android) and Rani (info hub)
- A user object can be created and stored using Core Data. This functionality works offline. A user has a Full Name (prev. username) and a Volunteer ID Number (prev. password). This data is important to collect for the future elimination of the VRF, and is also important for the user to feel that they are an individual using the app, not just a number. No other functionality within PCT currently depends on this data.
- Learned how to pull data (user objects) from SQLite data store. This will be useful this week, when implementing the post and sector drop down menus.
- Wrote manual, positive and negative test cases for the 'save button' and 'load button'.
- Differences existed in the expectations for offline capability of PCT.
- These differences were discussed and agreed upon. The 'create a user account' page needs a data connection, as current data for indicators must be pulled from Rani's PostgreSQL database when a user selects their post and sector. Currently, the rest of PCT will work entirely offline, using multiple local SQLite databases, communicating with the PostgreSQL database using JSON objects, upon data connection.
- I believe it is possible that complete offline capability will become an issue.
- Not right now.
- Research how to automate iOS testing to prepare in advance for testing phase.
- Establish communication with an SQLite database containing mock data and implement the sector and post picker menu functionality. (Or, if it allows, continue using Core Data to implement this functionality).
- Add error messages if a user tries to create an account and leaves a field empty.
- Will stay in close communication with Rani and Pooja to ensure that the 'create a user account' iOS and Android screens are functioning the same for the next PCT team meeting. We will also connect the new functionality to the User Interfaces.
- Milestones have been revised. I am on track.
- I wrote an unnecessary function to fetch unnecessary data from persistent data store. I also researched about iOS testing.
- ran into issues with this unnecessary function.
- Tiffani helped me realize I was on the wrong track.
- No.
- No.
- JSON objects
- Behind schedule. Amping up the pace starting next week, when I have more time to devote to PCT-iOS.
- watched recordings of this past week's two google hangouts with Peace Corps and PCT+Malaria teams, respectively.
- researched and learned about APIs, how they work, and why they are used.
- researched JSON queries and how they work with Xcode IDE and Django REST API
- read through Vaibhavi's documentation of her Django REST API.
- N/A
- N/A
- N/A
- N/A
-
Step 1: Learn how to use the NSJSONSerialization Class to convert User Foundation object to JSON, and Convert User JSON object to Foundation object.
-
Step 2: Learn how use the core data persistence framework to serialize User object data (organized by the relational entity-attribute model) into SQLite store.
-
Step 3: Upon app launch, a JSON query (and serialization) will fill the first picker menu with posts.
-
Step 4: Upon selection of a post, a method, JSON query (and serialization) will fill the second picker menu with sectors for the selected post.
-
Step 5: A user enters their name, their PC email, selects their post and then their sector. End user presses Submit. Create Objective C (or Swift) User Object. Serialize to JSON. Make request to bring correct indicators related to User object's post and sector into data store using JSON object.
-
Step 6: Add correct error handling.
-
Step 7: Write Unit Test cases.
-
Step 8: Make sure precautions are made so that later on in development, when a User adds a Cohort offline, it is associated with the correct user when sent back to API.
-
Step 9: Make sure precautions are made so that later on in development, when a User selects an Activity or a Measurement for a Cohort, it is associated with the correct user when sent back to API.
-
side note: Steps 3-9 cannot be completed until API is live. What I can do in the meantime is:
-
Step 1: populate the post picker menu with an array of my creation, and then write a function for the population of the sector array based on the post the user “picked”.
-
Step 2: Store arbitrary indicators for the user User Object being created in the data store, based on the selections of the post and sector picker menus.
-
Step 3: Move on to implementing cohort functionality.
- Behind. Catching up.
- Forked systers peacetrack-ios repo. Pushed code to master branch of my peacetrack-ios repo. shelagh/peacetrack-ios(master)
- Created two subviews of VCMain. Subview 1 shows a picker menu populated with an array called countriesArray. Array data comes from a plist file. Subview 2 shows a picker menu populated with an array called sectorsArray. Array data comes from a plist file. This will change once API is live. A user object is created with a username, email, post and sector.
- Updated status reports on my wiki.
- Spent quite some time connecting Xcode to GitHub forked repo.
- Yes, resolved. I believe this was an authorization issue.
- Missing .xcodeproj file needed to open project in Xcode. Talking with Shruti (Malaria-iOS) on this.
- Yes, will ask mentors about this if Shruti cannot help.
- Login - Determine whether all data is downloaded to local SQLite store (on iOS or android) from API upon app launch, or if certain data for a user is downloaded depending on post and sector selection combination.
- Add error handling to login functionality. Error message for entering an invalid email. Error message for pressing login without all attributes being assigned to a user.
- Make custom buttons to bring up each subview.
- Write manual test functions
- Add Cohort - Change UI of Cohorts Add screen to look like Pooja's.
- Add Cohorts Add screen error handling. Error message for entering the same cohort name twice.
- Complete delete, update and search functionality. Talk with Pooja about UI for this.
- Write manual test functions
- Documentation - Creating a google doc, in which Pooja and I will detail how iOS and Android PeaceTrack apps will connect to API. Will be completed by mid-week.
- On track.
- Add cohort screen -Table view of cohorts -Add, delete, edit cohort functionality -Wrote login functionality document and shared with team -Finally got .xcodeproj file onto GitHub. This was a file name issue. Seeing if iOS 6 beta 4 will not prevent the launch of the project like beta 1.
- Bugs with the core data object model -“?” In place of strings in picker menu
- Yep to the bugs. I had named a class incorrectly and so it was not able to access the data store. That was annoying.
- “?” Is showing up instead of the string because of a casting issue. I will fix this this week.
- Maybe. I will let my mentors know.
- Documentation!! It will be detailed and beautiful by the end of the week. Will work with Pooja on a shared PeaceTrack documentation, as well as sections specific to iOS and android. -Add action views to the login screen. One will show up if all fields are not full. One will show up if email invalid. Need to write a method to tell the segue to work or not work depending on whether there is an action view displayed or not. -JSON serialization/deserialization methods and authentication once info hub for PCT is up and running. It's quite possible this will spill over the deadline. No worries, it will get done.
- On track :))
- Added an action view that pops up if a user leaves one or more fields blank on the 'create account' view
- Created a custom segue so that the 'create account button' would not initiate segue or save user object unless user had filled out all fields.
- Began work on finalizing cohort functionality, which includes -a search feature -a short description feature -a new cohort showing up in the table view below old cohorts -I'm also changing the way that the editing feature is accessed, to be in line with PCT-Android. i.e. putting a edit button next to the delete button when the user slides a table view row to the left. -add a submit button instead of 'done' button to 'create cohort' view.
- add message alert before deleting a cohort
- User will NOT be able delete more than one cohort at a time in PCT-iOS- feature was added too late for me to implement into iOS version by Friday. -Two cohorts can't have the same name functionality. Feature was also added late. doable.
- Synchronized UI with Pooja (android) UI. So, in other words, I began work on finalizing the UI. Also documented UI in shared PCT documentation.
- Worked extensively to fix bug with the way the picker view strings on 'create account' view are displayed and contacted mentors for help.
- the “?” bug. segue bug.
- “?” : working on it segue: solved.
- yes
- getting help
- complete cohort functionality
- 'create account' view bug fix with question marks.
- complete documentation
- clean up and comment code
- On track. It's the finalll countdownnn!