comp730:MeAndYou Spring 2017 Patrick McElhiney Log


 * Home
 * MeAndYou
 * Semesters
 * Spring 2017

Week Ending March 28, 2017
I spent most of the week working on the data model for Database group. I started by going through everything that the past class did – including getting the errors out of their SQL code, and creating Crow’s Feet diagrams to locate deficiencies. I worked with Software Group through William Jones to determine what Software needs out of the database. I worked with Andry Bintoro and Josh Quigley through our weekly meeting to add to the data model. Other members that were present in the meeting included Tiffany Munsell, who discussed how she was going to import data into the database to test the functionality of the system.
 * Task:

I came up with a data model that is usable for the time being in the planning process.
 * Results:

We are going to spend the first part of the class to determine the final data model for Database Group, working with Software and Front-end (GUI).
 * Plan:

Other than the meetings, I didn’t get the impression that everyone was working towards a common goal. Maybe they did work on the project, but they didn’t communicate it properly through Slack, or through E-mail. I have tried to be responsive in the sense that I respond to every e-mail, every message on Slack, and any other type of communication, to ensure I have done the maximum amount of work on the project for the current week. I just don’t feel that other people are up to the same standard.
 * Concerns:

Week Ending April 4, 2017
Need to lookup whether there are any other sites like Me&You. Need to get the Demo working on lamp.unh.edu with the Database, so other groups can begin to make modifications. Need to re-design data model now that we're using basically what the last class used, plus some additional functionality as needed. Need to meet with William Jones to discuss the changes to the data model. They should be made in a way that doesn't affect the functionality of the existing site, or at least the changes to the existing site should be made at the same time so that all of the changes are updated according to the new data model.
 * Task:

There was one website found that "Members only see intersection of what they are looking for and what other members are looking for." called DateMySchool, however Professor Jonas didn't think it was similar, because MeAndYou is a BlackBox site in which no one can see anything unless there is a specific match from both sides. DateMySchool still uses profiles.
 * Results:

I got the Demo working on lamp.unh.edu by uninstalling all MySQL installations, uninstalling XAMPP, and then re-installing XAMPP. Ultimately we started with a database problem, which seemed to be that last year's class didn't know what they were doing and messed up the settings. They didn't even have an Administrative password on the database server, it was just "root"/NULL for l/p.

Need to setup a username and password on MySQL, and limit all MeAndYou traffic to that user. Need to setup a password for the "root" account on MySQL as well, but not use the root account for MeAndYou.
 * Plan:

People are not sharing everything that they're working on, as they're working on it even. I've made it a point to share pretty much everything, including meetings, meeting notes, data models, master documents for all three groups, other notes, and other documents and works that pertain to the project. I feel like I'm the only one contributing because everyone else is "compartmentalizing" their work by not sharing it with the entire team. I'd like to be able to stay up to date on what everyone else is doing, and while I no longer think that it's other people not doing anything - I'm just not seeing the evidence of the work being done, and we're supposed to have a working model by 4/4/2017.
 * Concerns:

Week Ending April 11, 2017

 * Task:
 * Get the Database working on the Server, and setup a username/password for the new Database (MEANDYOU2) so it's not using root to access MySQL.
 * Also get the Demo working so it's not using root to access the old Database (MEANDYOU) - setup l/p credentials for MySQL and code them into the Demo so it still works.
 * Work out bugs in the Database, based on sample data, to provide a good working model for Software and Front-end


 * Results:
 * Database SQL is coded as of 4/6/2017.
 * Database SQL has been loaded on the server, and has been distributed to all members of all teams through e-mail. A technical note about importing values with a "0" index has been posted on Slack in #database, and I imagine if other project members have the same problem we will try to find some other type of work-around.
 * Access Control has been setup on the Server in MySQL as of 4/8/2017.
 * Provided input for Jaden's Sequence Diagrams.
 * Provided input for John Vey's data fabrication
 * Edited Tiffany Munsell's Entity Relationship Diagram (ERD) and 4 Activity Diagrams.
 * Worked on GRC Slide with input from Front-End and Software Development.


 * Plan:
 * Figure out what Software Development and Front-end need after this week, and help in any way that I can to help them achieve what they need to do.
 * We previously said we were not going to help Software with their Database statements, however I think that we should because otherwise we're just favoring Front-end. We should help other groups as much as possible, in any way that we can - be it with the Database and not doing their work for them.
 * Figure out what QUERY statements need to be used by Front-end and provide pseudo-code to Front-end so they can finish their work
 * Provide help with PHP coding to Front-end, based on SELECT, INSERT, and DELETE statements to the Database, based on validation of user credentials and validation of data
 * Prepare all versions of various works and upload them to SVN server.
 * Update documentation for Database, Front-End, and Software Development - Master Documents, based on all completed work, and also formulate additional task lists where there are deficits of activity.


 * Concerns:
 * Software Development Group isn't sharing everything they're doing with the rest of us, such as on Slack. I'm concerned that they aren't going to get it done, because I don't see any evidence of major efforts in the documentation online at this point, and even William Jones said in class that the documentation hasn't been there for them. I am concerned they aren't working on it enough to get it done in time. They've been saying they need a working database - well now they have it in #database on Slack, and I'm going to e-mail it out as well.
 * Overall, everyone is working on the project a little bit, but I'm concerned about how everyone procrastinates, and prioritizes other tasks other than the project tasks. We are all paying a lot of money to get a good education - it's only worth as much as you make it, i.e. what you get out of it, how much you put into it.
 * We shouldn't be graded on what other people are doing or not doing, or what other people are saying or not saying. It's easy to tell who is doing what by looking at how someone writes about what they have done - not necessarily what other people have done, or not done.
 * We shouldn't have to read others' Graduate Student logs to find out what people are doing. Some people still aren't communicating through open channels regularly - which doesn't necessarily mean they're not doing anything. It just means they're not communicating with the teams about their work.

Week Ending April 18, 2017

 * Task:
 * Update documentation access rights to limit the access to various documents, that were determined to be contrary to how the class and Professor wanted to manage the project - i.e. Resource Usage, Master Documents.
 * Get the Database working with the Front-End through PHP integration of MySQL calls.


 * Results:
 * Developed MySQL calls for the database for use by Front-End, for each of the various types of calls that were to be made, including pseudo code of how to use the calls in the Front-End's pages.
 * Implemented the database calls on 4/15/2017 at the UNH Diamond Library with Josh Quigley, Andry Bintoro, and William Rivera. We got most of the front-end elements working by 5:30PM when the library closed. Fixed the user login process, view matches, view searches, user registration, forgot password, user account, and edit user account pages.
 * I finished almost all of the other GUI elements regarding accessing the database on 4/16/2017, such as getting the Notifications working, Delete Matches / Searches, and Add new Searches for all four types of matches.
 * Fixed issues with the GUI and Database, through their integration on the server. Had to modify user access control, fix bugs, etc.
 * Fixed issue with Forgot Password not saving the password hash correctly in v2.
 * Created sample database "MEANDYOU3" to merge all data from John Vey, and then exported to edit in Excel, and then imported into "MEANDYOU4" database to allow for the export of the entire database, for use to test the Software program, excluding the searches data. It was split up into person and attribute tables for approximately 25,000 users.
 * Worked on adapting changes to software's needs for the database - i.e. matches table structure change. Will need to re-load the database from scratch to work on it in this capacity, with new sample data.


 * Plan:
 * Work with Software Development to adapt data model to necessary changes requested by William Jones on 4/16/2017.
 * Continue to work out bugs out of the GUI and Database with our teams, and implement new features as we have the resources to do so.
 * Format sample data for searches and person and attribute tables, so that Software can perform / test their program.
 * Inspire people to work with the key players of the project, i.e. myself, Josh, William x 2, and Andry.


 * Concerns:
 * I think that we're currently overloaded trying to fulfill the needs of other teams because members of our own team don't know how to perform tasks, or don't want to step up to the plate, when it comes to helping other teams. We're just trying to do the best we can with the limited amount of time and resources that we have to get everything done by.

Week Ending April 25, 2017

 * Task:
 * Get a mostly working prototype available for Client (Professor Jonas) by Wednesday class.
 * Meeting with Software Development on Tuesday at 7PM.

Made additional changes to Crow's Feet Diagram and SQL Code based on Software Development's requests for additional features, including:
 * Results:
 * searchesId column in userNotifications
 * searchSearchId (FK) & matchSearchId (FK), which now link to searches.id (PK)

Added additional features for Front-End per requests from the multiple teams, including:
 * Date verification in format mm/dd/yyyy
 * Fix JavaScript (You must use this format) error to display format that must be used
 * Delete Matches
 * Delete Searches
 * Edit Searches
 * Limit of Entry of 6 Crushes
 * Limit of Entry of 100 Old Friends imposed
 * Limit of Entry of 100 Family Members imposed
 * Limit of Entry of 1 Long Lost Love imposed
 * UPDATE & INSERT statements for Edit Search, depending upon whether the field(s) exist or not.

Add Front-End Features: (if cannot complete by end of class, will be done this summer)
 * Plan:
 * UPDATE & INSERT statements for Edit Account - now that Middle Name and Nickname are optional.
 * Maiden Name should be allowed to be entered into Family, Old Friend, accountEdit, and Registration
 * Forgot Password - error message for Account doesn't exist.
 * Forgot Password - check if old $hash == new $hash - if yes, then don't update and display an error.
 * Add JavaScript entry form to allow multiple e-mail addresses, hometowns for SEARCHES: Crush, Old Friend, Family Member, and Long Lost Love.
 * Add JavaScript entry form to allow multiple e-mail addresses, hometowns to be edited in Search Edit.
 * Add JavaScript entry form to allow multiple e-mail addresses, hometowns, to be added to user profile.
 * Account Edit - if no changes, don't update the individual fields.
 * Search Edit - if no changes, don't update the individual fields.
 * Modify Account - set all searches to 'Incomplete'.
 * Figure out problem with special characters crashing searches.

It seems like no one else except Software is doing anything, because everyone thinks that everything is done. There's still a lot to be done. I'd like to see more people step up to help with the Front-End Programming, so it's not just me doing all of the hard coding. At least maybe have a support team, like we had before, that we can all meet on a Saturday or Sunday, and knock out everything that is remaining to do for Front-End in the Library.
 * Concerns:

Week Ending May 2, 2017
Add Front-End Features As Needed - To Be Determined Based on Professor Jonas' Input About Project Work with Software to get the Match Engine working on the Server.
 * Task:
 * Add Maiden Name to Old Friend, Family Member Searches - Need To Lookup Search Type on Search Edit to Determine if Field Displays in Search Edit, Rather Than Determining If the Maiden Name was Inserted or not. Or, could simply not INSERT NULL values, or "" into the Database for fields that are not filled out, while inserting the NULL or "" value for the search types = 2, 3 in createSearch (controller.php) and then showing the field if there is a NULL value or "", or if it is filled in - that way it won't show if it's not pertaining to Search Types 2, 3. Because you wouldn't need Maiden Name for Crush or Long Lost Love, right?
 * Add Multiple E-mail Addresses to Crush, Old Friend, Family Member, and Long Lost Love searches, as well as Registration Page, and Edit Profile Page. JavaScript that drops down fields for "email2", "email3", "email4" and "email5".
 * Fix Notifications on Search ID, so that multiple Notifications are not sent for the same Search ID.
 * Fix Notifications on Account Edit, so multiple Notifications for Account Edit are not sent to same Person ID.
 * Use searchAttribute Table - INSERT and DELETE statements to use the table when a search is created, or drop the table from the Data Model?
 * Update how Matches are displayed - with correct Database calls.
 * Fix Notifications so that they display the correct number of Notifications on all pages.
 * On Modify Account - Change All Searches of Current User to "Incomplete"
 * Have an Error Display from Register to Register (if account already exists)
 * Have an Error Display from Login to Login (if incorrect username/password)
 * Set all Database calls to user "meandyou2"
 * Centralize the settings for all database calls into util.php
 * Create Activity Diagrams for Front-End Processes
 * Is it accessing the right database?
 * Do they need the sample data imported into Database "MEANDYOU2"?
 * What other needs do they have in regards to Front-End?

Completed on 4/26/2017: Completed on 4/30/2017: Completed on 5/1/2017: Software Issues: Completed on 5/2/2017:
 * Results:
 * Updated Database Calls for Front-End Accessing Matches, worked with Bill.
 * Created 1 Activity Diagram for Front-End
 * Provided accurate Database information to Software Development.
 * Added Maiden Name to search types 2, 3.
 * Added multiple e-mail addresses to all 4 search types.
 * Added multiple phone numbers to all 4 search types.
 * Fixed Notifications - will not show up multiple times for the same searchesId, or personId, when notificationId is the same.
 * Fixed the Delete Matches issue. Also had to insert a " " space in-between First and Last names, in order to display correctly. Had to insert matchId to get Delete Matches to work.
 * Worked on developing code for issue regarding the display of status messages, such as incorrect password, etc. - not yet completed.
 * Fixed various issues on server - such as issues with implementation of Software's program, restarted Software's process on the server after changing the MySQL port to 3306.
 * Fixed issues with Josh Quigley's account - had to delete it and have him re-register - it got corrupted with version 7 of the Front-End. I'm not sure why - but it must have been mixed up on searchID vs. personId, or something like that, because it was displaying my personal details in Josh's account, and he said he was having errors changing his account properties.
 * Fixed Notifications - so it displays the correct number of notifications on each page - best check it again to make sure.
 * 5/1 Software is accessing the right database, correct port.
 * 5/2 Software said that it was because of bad data in the database, that their program had crashed. Wished they hadn't taken until today to figure this out. Also, I explained that a previous version of Front-End caused the bad data, because of a FK in userNotifications, that didn't allow the full deletion of a searches entry.
 * Fixed issue with Error 85, when selecting Edit button under Searches and not selecting a radio button. One automatically selects now.
 * Changed name of "Edit" button on Searches to "View" per Josh Q.'s request.
 * Made First Name and Last Name required on all Search entries.


 * Plan:
 * Get Front-End to a stable version, and then let William R. work on HTML/CSS code on all of the pages. I will not be able to update the server files while he does that, as we are not using SVN for the Front-End.
 * Most additional features on Front-End will have to occur after William R. finishes the HTML/CSS code revamp - possibly in the last week, or this summer in Independent Study.
 * Look into why date of births were being displayed in yyyy-mm-dd format, when they are required to be entered as mm-dd-yyyy format. Check with Software if they are changing the values. If so, change Front-End to format the dates to yyyy-mm-dd format.


 * Concerns:
 * Having to work on my own internal processes to determine problems with Front-End, which basically consumes my entire week at this point in time. It's heavy programming - likely more programming than the entire Software Team has done - likely 3,000-5,000 lines of code, which is gradually being reduced into a more Object-Oriented approach as I get features working, and more work is done to determine the weaknesses and modelling of the specific processes of the code.

Week Ending May 9, 2017

 * Task:
 * Work with Software to get everything working and integrated.
 * Debug and repair Front-End issues, to get a stable version running for presentation on 5/10/2017.
 * Document information based on postmortem review, in order to develop ideas for the MeAndYou project for the Independent Study this summer.
 * Figure out new server environment for Independent Study work.


 * Results:
 * Helped with Software to facilitate the correction of errors with Software and Front-End, such as the issue of the Search Entry and Search Edit not saving records in Attributes table based on original specifications. The personId was being inserted into the Attributes table when search attributes were being added. This was corrected by manually changing all of the old data for searches into personId = 0 through phpMyAdmin. Also had to modify Front-End to save a 0 in the personId for all search attributes.
 * Tested the new Front-End version, and worked with Front-End QA to resolve issues.
 * Got a stable version of Front-End working - now we're just waiting on Software to fix their problems.
 * Fixed issue with Date of Birth in Registration page. Had a different regex.
 * Andry and I got a tour of the server room at UNH Manchester, where we decided we wanted to use Linux in a LAMP environment, rather than Windows Server 2008 with XAMPP.
 * I began working on the changes and format for the Summer Independent Study, including the development of new features that I'm going to discuss with Andry later this month. Andry has also been working on studying PHP/MySQL so he can help me out with the programming. He also suggested that we improve the HTML to XHTML/CSS format.


 * Plan:
 * Work on postmortem review to document any additional features and/or changes that should be made this summer. Communicate with Andry Bintoro about what we are going to work on this summer in Independent Study for MeAndYou.
 * Be prepared for presentation of project to Professor Jonas on Wednesday.

Software has been changing the date format in the attributes table to yyyy-mm-dd, while Front-End needed it to be mm-dd-yyyy. They were also inserting a percent (FLOAT) into an INT column for match percentage. Software has basically been holding up the other two teams, which have basically been ready to present for several weeks now. Since software has basically been working on their own and not really communicating very well with the other teams, and procrastinating until the last day(s) of the week to work on their part, I'm basically not even sure if we're going to have a presentation. I want everything to work - I just don't know if Software can do it.
 * Concerns: