Co-op 2 Highlights 7

Week 7 has just finished up and I wanted to show a little of the progress on my current Capstone project – VARI.  VARI stands for Vineyard Attendance Reporting Index.  That name may change, but I wanted to be able to call it something while I am working on it.  Here is a screen shot of the current home page for the application:

Image

It’s been a week of ups and downs.  A major domain migration messed with my SQL Server settings (the name of my computer changed, so SQL couldn’t find the server anymore, even though it was still physically right there on the same computer – at least that’s how I understand it), and I have uninstalled and reinstalled SQL at least 6-7 times in the last few week, with no good results.  😦  From talking with our IT department, I have figured out that even though I uninstalled SQL, it still maintained some registry key history, so a new server name could not be identified (even with a new install, it was still looking for the old computer name, pre-domain-migration).  I finally have resolved to create my database in MS Access as close as I can to the original SQL database that I had created because I feel like I should be making some solid progress on this project (as it is already week 7!).  Down the road, if the project (VARI) proves to be valuable, then it can be migrated to a SQL database or even into the proprietary MySQL database, if desired.  I am patterning the tables as close as I can to the MySQL tables and even exporting a copy of the data from the tables I have copied, so hopefully that would happen easily.  However, it should also be fine as a stand-alone application.

I am also building VARI under the MVC model, so I am learning a ton as I go along, but this also is causing the project to move along at a much slower pace.

Our sister organization’s website is being remodeled and the wireframes are going to be reviewed at a meeting tonight.  Once the group reviews and determines to go ahead with a design choice, then I believe I will be more involved in this project in helping to transfer current web information over to the new format.  It will be interesting to hear everyone’s thoughts.  One thing I have learned in all my website work over the years is that people want really great websites, but don’t necessarily want to put the time into writing really great content (with the end user in mind, of course).  I have seen this with Facebook recently too.  There is a sub-group under our sister organization that has a FB page and wants to build followers.  After providing some tips and suggestions for doing this, I received a request about a month later from the director to see if I can ‘help.’

Co-op 2 Highlights 2

It was a busy week with several opportunities for website updates, including an update directly in the MySQL database (rather than through the content manager), an appointment with my Co-op Coordinator and our Director of IT, and a new website development opportunity for an upcoming conference that we’ll be hosting in May.  Additionally, I am working on completing the Learning Contract for this semester, which should be ready for submission tomorrow.

There is a webinar coming up this week featuring Birst called ‘Analytics for the Rest of Us:  Introducing Birst Visualizer.’  At my current workplace, we have long talked about developing better reporting tools to access and mine the data that sits in our MySQL database, so my hope is that Birst will provide a ‘breath of fresh air’ and help us to make a leap in reporting.  This could take us out of the ‘ice age’ of giant Excel spreadsheets with no graphic depictions of data to modern-day visuals showing attendance or other important metrics.  I will be writing more about that webinar later this week.

Co-op Summary – Fall Semester 2013

Co-op fall semester summary

Student Name: Kimberly J. Philpot
Major(s): Computer Programming and Database Management
Semester / Year: Fall 2013
Company Name: Vineyard Cincinnati
Supervisor Name: Connie Neckers

This is my Co-op Summary for Fall Semester 2013. In a way, it’s been a long 15 weeks, but also a short 15 weeks. At week 1, I identified several Learning Outcomes with my Co-op Supervisor to work towards during this semester. One of the Learning Outcomes included utilizing my blog, http://www.kimphilpot.wordpress.com, to document my experiences during the co-op. This is an online journal where I posted weekly updates regarding projects I worked on, things I learned ‘on the job,’ and summaries of different research topics. I also invited feedback and comments from my Co-op Supervisor, Connie Neckers, who responded with support and encouragement at every step.

One of the other Learning Outcomes included respecting project deadlines and working in partnership with the IT team to complete projects within the required timeframe. One of the projects I worked on included creating relationship and workflow diagrams for the database, servers, and tasks associated with each server. This was early on in the semester and was a good experience for me to see the visual picture of the relationships between the development server and the production server, including how the testing or QA server relates to both. I included the different server names, the common names for those servers, and their functions. This was also very interesting as it really helped me to see both the server name and the common name together. It also was helpful to see the process. I mistakenly had thought that code sitting in the QA server went directly into Production. But that is not the case. The code is first checked out from the Repository and put into QA for testing. Once it passes QA testing, then the original code from the Repository is put into Production. I always thought that the code moved from QA testing into Production.

Another project I worked on was the mapping of relationships between tables in the Vine database. This required researching the table relationships in the Schema Spy and then creating EER Model diagrams from MySQL showing the relationships between the tables. One of the folks in IT has used Schema Spy to do this initially and it is great, but there are a couple of tables that pretty much everything else relates to, so it is hard to visually see the relationships to the other tables in Schema Spy. The EER model will allow me to print large diagrams (34 x 44 inches) and enable me to spread out the different tables, providing a cleaner view of the relationships.

In addition, another goal for this semester was to be an active participant in the Database Architect meetings and other IT meetings (such as the Google Apps for Enterprise meeting) and provide feedback and thoughts as appropriate. I believe I accomplished this, in that I have heard several times from different IT team members that they appreciated my perspective and comments during meetings. Another goal that I have for this semester is to study and schedule the SQL Server 2012 certification test. Although I think I have gotten a little behind on this item, I do have the test scheduled for the first week of January, so I plan to use my 2 weeks between semesters to study hard for this certification. Earlier in the semester I identified a set of tutorial videos geared specifically for learning SQL 2012 and passing the certification test, so I plan to dig in to those videos and my SQL Server 2012 Training Kit in depth over the next 2 weeks.

An ongoing part of my co-op has been to make periodic website updates for our sister organization at http://www.healingcentercincinnati.org. I have continued to do this and provide great customer service with quick turn-around times. With severe weather knocking at the door, specifically this past week, the need for activating the ‘weather closure’ banner on the website leapt to the top of the list. In the event the organization would close for services, the ‘weather closure’ banner would be activated on the website and social media (Facebook and Twitter) messages would be posted to let people know of the closure. Although the organization did not actually close, I needed to be prepared to make this update outside of normal business hours. Providing great customer service, even to internal customers such as other departments, is critical in that it allows those other departments, in turn, to provide great customer service to their customers.

One last outcome that we identified in Week 1 of the semester was to possibly document the process for printing volunteer labels for Healing Center volunteers. Although I did not formally write about this process, I did talk about it briefly with my Co-op Supervisor. The idea for this particular project started almost 1 year ago, so documenting it now is a little harder.

*****************

Additionally, I have been able to help with several MySQL queries to retrieve specific sets of data or update records from our database. This was a great experience as it increased my hands-on knowledge of MySQL and some of the syntax particulars required for MySQL queries (vs SQL queries). Because I was also in a PHP/MySQL class this semester, it was a good tie-in to help with these MySQL queries in the workplace.

During this past semester, I also noticed that the Software Development Life Cycle (SDLC) was mentioned multiple times, so I did some research to further enhance what I had learned from a previous class the previous semester. The SDLC (Software Development Life Cycle) is the full process, from start (initial idea) to finish (launch and ongoing maintenance) of developing a software program. I would bet that some people lump all of the phases into one or two and probably think that coding is the most important phase. I found some information at http://bpmgeek.com/blog/software-development-life-cycle-basics which was very helpful – the information was clear and easy to understand.

This website (bpmgeek.com) listed 7 steps to the SDLC.

  • Preliminary Idea & Investigation
  • Feasibility Study
  • Analysis
  • Design
  • Coding
  • Testing
  • Maintenance

After a little more searching, I realized that the SDLC can be quite simple (idea, design, develop, release, maintain) to quite complex (showing 13 or more basic phases with multiple sub-phases under each one). As I see it, being able to articulate the SDLC to management or other involved parties would be very helpful. I imagine that there may be a vague understanding of the SDLC, thinking that it is a lot of coding and then magically producing a product that does every single thing the client wants. Obviously, that’s a pretty simple view. But, I’m sure that in some organizations, management folks might not realize all of the details that go into developing software. And those details affect expenses (both at the front end of development time and at the back end when the programmer is correcting things due to poor design or poor articulation of software requirements), client satisfaction, reporting, and ability to do business.

For my own purposes, I developed a hybrid model of the SDLC with the following elements:

  • Idea & Investigation: At Stage 1, Idea & Investigation, the initial idea about the project is identified. Client requirements are investigated and documented. Investigation could also include research about already-existing solutions or modifications to current projects that would meet the needs of the client.
  • Feasibility Study & Analysis: At Stage 2, Feasibility Study & Analysis, the client requirements are analyzed, cost projections are developed, and the full scope of the project is planned out. If there are other already-existing possibly solutions, those are studied as well to determine if that would be the best course of action.
  • Design Specifications: At Stage 3, Design Specifications are developed. This is important, as it will impact the overall cost of the project. Diagrams are developed to visually display the flow of logic within the software. This becomes the blueprint for the software project and needs to happen prior to any coding.
  • Coding & Testing: At Stage 4, Coding & Testing begins. Using the Design Specifications as a blueprint, each section of the software is coded and connected together to develop the overall software project. This stage also includes testing each section to determine if it functions as planned. At this point, any defects that are identified can be corrected.
  • Implement Systems & Evaluate Performance: At Stage 5, Implement Systems & Evaluate Performance, the program is launched and ready to use in the real-world application. Studies are completed to evaluate the performance. Is it operating the way the client wanted? Are there any unexpected results?
  • Ongoing Support & Maintenance: At Stage 6, Ongoing Support & Maintenance, any modifications that arise are made. Enhancements to the program are also included in this phase.

Although the SDLC runs in a clockwise fashion (according to my circular graph), at any stage, it may be necessary to reverse the path and go back to the previous stage to further develop or refine the project. Again, this is more for my personal use to provide a helpful reminder of the different stages in the Software Development Life Cycle.

Although the topic of ‘end user experience’ does not include any coding, it does help to cement the fact that computer programmers and web developers really need to work with the end user in mind. Any program or website needs to be user-friendly, that is, intuitive and easy for the end user to use. Components in a website or web application should be clearly labeled and easy to see for users. One example that I’ve noticed with Google Mail (for our organization) recently is that there is a little grid of squares in the upper right corner – this is not labeled at all. But, when you click on it, the window opens and you can see links for Calendar, Documents, Drive, and other options. Now that I know it’s there, I don’t need it labeled, but when it first appeared, it would have been nice to have a hover balloon pop up to let you know what the little grid of squares is. This is just an example of how web developers could enhance their web pages to provide a great experience for the end users.

I think the opportunity and requirement to document my learning experiences has been the most helpful over the last 15 weeks. It is important to be able to articulate what you know to others, and to be able to share your knowledge with others. Overall, my co-op experience has been a positive experience and I look forward to continuing this in the next semester.

Co-op Highlights 12

I was able to work on a couple of MySQL queries this past week, which proved fun.    The scenario is that we have an opportunity to sell certain items (for example a sweatshirt, a t-shirt, and a hat).  People can pay either by credit card online or they can mail a check in for payment (meaning that they would still owe money when you run a report IF we have not received their check yet).  The sweatshirts and t-shirts come in different sizes (small, medium, and large).

So, there is a need to generate a report that would show who ordered a sweatshirt, a t-shirt, or a hat, what size they ordered, and whether they have paid already (by credit card online) or not (mailing a check in but not yet received).

A co-worker had developed a query to find all of the people who had purchase a sweatshirt, t-shirt, or hat.  She also developed another query to find who had paid already.  The trick is to combine these 2 queries to show everyone that ordered AND if they have paid AND to show if they ordered 2 t-shirts, but 1 was a Large and 1 was a Small.  This last part is required to help with inventory management, so that our coordinator (overseeing this project) would know how many of what size to order.

I was able to refine the query a little by using a nested INNER JOIN within a LEFT JOIN, but it still left out the people who had ordered something, but not paid yet.  This is a query that is joining 2 tables and 1 view.  I am going to revisit it this week, as time was short last week to work on this further.

I think my lack of familiarity with MySQL is hindering my progress a bit – it takes me longer to figure something out than it would if someone worked with MySQL on a daily basis.  But, the good thing is, I am learning and that’s progress.  🙂