Monday, April 28, 2014

Misc. Ranting

Presentations

The last day of presentations are over and everyone really improved. Here are a few of my reactions to the pitches and the projects in general.

Automaton:
I really liked that this team made a project that they basically built from the ground up.  Talking to the team, it seems like the only technology they used was node.js everything else they made.  Seeing the final product, I was impressed with how much work they did in so little time.  Another thing I noticed is that the majority of the speech is a demo.  That really isn't that big of a deal I mean they have a lot to show and the point is to really show everything the application is capable of, right?  It would be nice to hear some a business plan or something that tells me how they will maintain the application because I am kind of curious.  The game itself is a little confusing, but its a cool idea and I really like it.

VisualScheduler:
Basically, I wanted to do a small review of our pitch just to write out some changes we should make.  I thought our pitch went well.  Way better than I thought it would.  Some things that I would change though is that we really need to talk about our technology.  We are using so many different libraries and languages, I think it would be neat to mention.  I have programmed in Java for years and we are using things that I had never heard of as of a few months ago so I feel our audience would like to know what was happening under the hood.  Ackley also made a good point today about having a time with us during our presentation.  If we had had one, then we would have been able to tell that we were short on our time and blab for another 40 seconds.  Another good point was to really push the schedule generator.  This feature is a main part of our business model and is really cool.  Talking about if for ~30 seconds was not nearly enough and selling that will be a big move for us.  I really want to win the best project and with our final talk, I think we can really drive that bad boy home.

G.E.R.A
This is a project that I think people would be into because "going green" has been the latest fad (for lack of a better word).  For me, I can't really see myself using it just because it is not really a topic I care about.  Ben is a good public speaker and, though there were a few bumps, he is animated and engaging.  I don't mean to sound overly pessimistic, but there are a few things about this application that rub me the wrong way.  I am not the biggest fan of the website layout.  It is not bad by any means, I just think it could be done a little cleaner and less clunky.  I really want to see what the missions look like to.  One of the big selling points of their pitch is that many applications are simply data entry.  For me, I can't really see how it wouldn't be merely data entry so I would love to see a small example.  Overall, their pitch was very solid.

Thoughts on the Team:
I am very happy with the team that I worked with.  Everyone worked super hard and gave it everything they had to make an outstanding application.  We worked very well as a team and, even though there were some disputes, we were able to back the final choice and make it work.  This project was a ton of work, but it was a great team experience and a great learning experience.  Dan and Zach know so much about programming and I was able to use the past few months to pick their brains and learn a ton.  In a few short months, Zach went from never looking at a line of Javascript to being a master of Javascript and AngularJS.  It is obvious that he put a lot of time and research into doing what he was assigned and doing it well.  Dan was the duct tape for the whole team.  No matter what part of the project I was working on, I was able to ask him what my next move should be and he always came up with insightful information.  Kellen came through with the static web pages and made them look exactly like the mock ups.  The biggest benefit of this project is that it is Dan's baby.  He is so close to the project and wants it to succeed so bad that he killed himself and made us to the same to make it perfect.  No matter what, there was something that Dan wanted us to do better which really helped to make the application what it is.



Wednesday, April 23, 2014

Final Push

It's almost time to call it a semester, but there is still a lot to do before we are done.  We have run into a couple little bugs that we need to fix to make our project sturdy and reliable.  One thing that I was surprised by is that screen resolution can really mess things up.  When using existing applications on my phone, laptop, and desktop the application always magically scales.  Sometimes not super well, but pretty good.  When trying our application on different devices, a lot of the styling gets really messed up.  It has been harder than I thought to fix this problem.  In fact, before trying the application on different devices, I didn't even know that this would be a problem.

Another very unfortunate bug that we have is that whenever we try to access our site from a phone's browser, we get an error saying that this type of address is unsupported.  I again did not think that this would be a problem.  I just figured that a browser was a browser and it should work.  Even though I carry my laptop with me everywhere, I really hate having to pull it out and I always search the web on my phone.  If this is going to be a practical application for college students, this issue needs to be resolved since students practically live on their phones.

The schedule generator is going rather well.  I have always struggled with JUnit testing, but I wrote some tests for the generator that make us pretty certain that it is functioning correctly.  These tests are not as robust as Ackley's tests (whose are?), but I am trying to get to that point.  One weird issue I ran into with making tests is that for the meeting time, start date, and end date, we are using the java.util.Date class.  When my test was receiving the JSON object from the backend, Jackson was unable to parse the fields of the JSON into these Date objects since we did it in an odd way.  After some internet research, I figured out that I needed to make time and date deserializers so that Jackson knows how these fields should be parsed into Dates.  This made the test suite work and I was then able to use assert statements to make sure the object was correct.

I am excited for the demo on Monday and I think everyone is going to be really impressed.  We really need to meet our time limit this go-round and talk about our business model.  If we have a killer presentation, I have the utmost confidence that our project will be selected as the winner of this semester.

Monday, April 21, 2014

2nd Round Of Presentations

Overall, everyone really stepped up with their second presentations.

Mechanapp:

This group delivered a solid first presentation, but showed a lot of improvement in their second one.  I really liked how James and Alan switched between talking and shedding light on different parts of the project.  Also, the demo was much improved and really gave a great flavor as to the usefulness of their application.

Demigod:

This group still has a long way to go,  but they were again much better than their first performance.  It is obvious that Matt does not like presenting, but the always acts lively to get the audience involved in the presentation.  Having a demo this time really helped me stay engaged rather than just watching a video of how it worked.  The only thing I noticed was that the other Matt (running the computer) was biting his nails the entire presentation and was really distracting.  Hopefully there is a challenge on their application to help people quit nail biting.

Powderade:

The presentation was much more engaging since the group was presenting and not on a video the entire time.  Contrary to what Ackley said, I did not find it to be that big of a deal that the snowboarder and the application demo did not match up.  I thought it was cool just to see the numbers change while someone was snowboarding.  If the video worked smoother next time around, I really liked the direction that there presentation went.

Friday, April 18, 2014

Progress Report

So we had our meeting on Wednesday with Ackley and he seemed pretty distraught that our schedule generator was not started.  He did have a valid point that it should have been completed earlier, but it will not be too difficult to implement.  All this feature is going to do is take the classes a user inputs and show them how they fit together.  That's it.  It will not be looking for all art classes that fit into a specific time and that are for seniors or something, we are just showing conbinations of exact classes.  While writing the backend for this feature though, I did realize that we made a huge mistake early on.

I think all of us were really excited about our project and were ready to get to hacking.  It turns out that that was a bad idea.  Obviously, teachers are always saying "develop requirements" and "develop a program structure" which is where we failed.  We did establish requirements and talk about structure somewhat, but not nearly enough.  We neglected to think about our future features and now implementing them is a pill.  If we had planned out our design more, the features would just fall into place, but it does not really feel as though that is the case.  I am hoping to do a large refactor to make the code more abstract, modular, and maintainable.   

Friday, April 11, 2014

Calendar Joy

Well I have been looking into the calendars that we can use for our web application.  I think I have decided that the Angular UI calendar is the best bet.  With the Google API, from what I gathered, even if we don't want to access a user's personal information we still have to authenticate them with Google.

Writing a calendar for the application has been really difficult.  I have been working on back end development for the majority of the project and I have been having to learn Javascript and Angular JS in a matter of days.  Javascript is similar to Java, but the scope is really messing with me.  I have been confused on what can be accessed, who can see variables, and so on.  I have been writing a calendar, but I am unfamiliar with this language so I am getting errors that I have had no idea how to solve.  The majority of my time has been spent on Google trying to debug something I don't fully understand.

As we approach the end of the semester, the thought that this project may not get done is scary.  We have so much to do, and no time to do it.  It has been really difficult having a team mate who lives out of town (and similar issues) to have team meetings because we do not meet nearly as much as other teams.  I feel like this is the cause of our lack of progress.  We have had a lot of hardships on the team and it has been tough to accomplish anything effective.  Hopefully, we can work hard to get the project done, but I wish we had more time to make it great.

Wednesday, April 9, 2014

Progress Report

Well, its the Thursday before our demonstration in class and we have a lot of work to do to get where we need to be.  We have four days to get a calendar up and going to add classes to, as well as allowing a user to accept a schedule and obtain the class CRNs.  The calendar is not as clear cut as we thought it would be and we are considering different technologies.  I know, it's way too late to be doing this.  We have been looking at Google Calendar API as well as the Angular UI.  The Google API is rather complex and would require our users to have a Google account to use the application.  The Angular UI is simple, but is hideous.  If we want to have a great UX, then the Angular calendar needs a visual overhaul.  The cool thing about the Google Calendar is that is can send push notifications to the user.  This would be so sweet!!! Also, we can communicate with the API using a REST interface, which is already all set up.  It would be trivial simply sending the API a POST request with the JSON that a user would like to add.  The Google API is what I am leaning towards, but we will see how it goes.

Sunday, April 6, 2014

Backend Finished

Well, it happened way way later than we would have liked but the backend is done.  Anything that the user wants to search like courses, instructors, etc is supported. This should have been finished way earlier and we are now down to the wire on finishing the application that we promised.  Our meeting with Ackley the other day made me realize how much we have left to do.  I am now being moved to the front end and have been doing hours of internet research to catch up with the rest of my team on AngularJS and Javascript.  I feel I have a good understanding of the framework and, luckily, I have usede MVC for many projects in the past.  Since AngularJS basically forces an MVC architecture, I should have no trouble catching up.  I am excited to make things look great for our user and to contribute to an outstanding user experience.