Monday, March 31, 2014

The big UX

User Experience

Well after devoting the majority of my blogging time to the actual code and development, I think it is time to talk about the user experience that we are trying to achieve.  So we have some mock ups of what the site design will look like and, from my client hat point of view, I really like the design.  It has a very professional feel to it as well as being very clear and concise.  The help section is very clearly marked and easy to find in case the user is unsure of how to use the product.  Below is a link to see what we have so far as far as mock ups go, and implementing the site to look this way is currently in progress.

UNM Visual Design Mock Ups

The user experience of this product is significantly better than what UNM is currently using for purposes of scheduling.  Personally, every time I have made up a schedule on the UNM website, I search my classes beforehand and jot down the CRN numbers and times of classes I need to take in a spreadsheet.  If I am registering and a class I put in my schedule is full, then I basically must rush through this whole process again to rearrange my schedule.  The UNM Visual Scheduler improves user experience by having all the necessary tools for a user in one place.  With a built in calendar and schedule generator, this whole terrible registering process becomes automated and all the user has to to is choose their preference of schedule.  In my mind, the design is clean, elegant, easy to use, and will provide people the information they need in a readable format.  Once this design is implemented, I know that our users will keep coming back semester after semester.


Saturday, March 29, 2014

Progress Report

Progress

Well after only about 4 hours in Starbucks and being pushed into buying a hobo lunch, I have made a significant amount of progress.  I got the backend returning any kind of entity that a user specifies and performing accurate database queries.  I had accomplished this before, but it had a very brute force feel to it that looked terrible and was hard to follow so I am slightly happier with this new implementation.  There are some repeated parts of code that look very copy-paste and I have been trying to think of a way to further abstract this.  For now though, there is a 95% working implementation.  I must still implement this to work with specified meeting times and instructors, but for now it seems to work well for everything else.

The progress is looking good for the demo on Wednesday and I am hoping to really impress Ackley.  After hearing about some of the meetings that other teams have had, I am nervous about the cosmetic appearance of our application.  I do feel that our mock ups will help us implement a site with a friendly user experience and nice flow.  I am super stoked about how programming went today and am excited for the rest of the team to check it out and provide feedback.

Tuesday, March 25, 2014

Progress Report

Progress

I have made a backend that can construct queries to the database based on how much or how little information is provided to the backend.  As of right now, it returns only section entities, but will soon return any type of entity that is specified.  Integrating the backend with the angularJS frontend, however, has proven to be more difficult than expected.  It has been hard to get the front end to actually make a post request to the backend and it doesnt appear that they even talk at all.  I have written a small test class for the backend as a proof of concept, but I am hoping to have the front and back end communicating for the demo tomorrow.

Saturday, March 22, 2014

Progress Report

I've been trying to get back into the programming groove after spring break and it has honestly been hard to get motivated.  I have been thinking of how to implement the backend in an abstract way rather than having to brute force all the possible queries a user can make.  I have found it hard to find a pattern in all of the data and have been doing a brute force approach right now to hopefully figure out how to abstract all of the code.  I am also trying to figure out how to construct queries with meeting time and instructor as this data is not directly correlated with classes in the database. Hopefully this will be finished in time for a killer demo on Wednesday.

Sunday, March 9, 2014

Progress

Progress

I have been working on making the Model and Controller for the unmvisual project.  I was hoping to get this done by the weekend, but it turns out that I went down a rabbit hole all day yesterday and was not able to get anything concrete accomplished.

In doing this though, I learned a lot about how JSON objects really work and I have a great idea to get this part of the project done.  Using JPA 2.0, if an argument that is accepted into a function is defined as JSON in the annotations of the method, it will be automagically parsed and made an instance of said object.  I did not realize this and worked on making a JSON string parser which took hours and was a waste.

I really want to up the pace of our project as it feels like we have been stuck where we currently are forever.  If we can get the front end and back end communicating properly, then we can all dog pile on the javascript front end and focus on making it look as pretty and be as user friendly as possible.  The fact that most of our project is in javascript is mildly unnerving because none of us have ever written any javascript, so it will take some time to learn.  




Saturday, March 8, 2014

Midsemester Evaluations

Evaluation of Myself

 I am nervous about writing my midsemester evaluation and trying to convince somebody that I have been working hard.  To me, I know I have been working hard and making progress to benefit my group, but convincing someone of that is not as easy as it sounds.

When it comes to the project, I have been working on it at least a little bit everyday.  Progress is slow but that is because the technology I am working with requires a huge learning curve.  I have never worked with the Java Persistence API, Jersey, Maven, JSQL and many other technologies that are key in my role of making the backend.  I have put a ton of research time into learning these technologies and have made many little proof of concept programs to really figure out how they work.
Yesterday, I did some test programs with constructing JPQL queries using JPA 2.0 and I am going to implement what I learned in the backend today.  


Friday, March 7, 2014

Progress Report

Progress Report

Well today we had our team meeting with Ackley and, unfortunately, I missed it.  I was working late on the project and slept through my alarm.  This is the worst thing that could happen because I had a demo ready to show about what me and the team have been doing so I feel as though I let them all down.  This is very unprofessional and I should have come up with a plan to ensure that this didn't happen.

On the bright side, I have successfully made a JerseyTest that calls the backend and can send JSON objects back and forth.  Also, the backend is able to successfully query the database and return a JSON. Right now, the backend will spit out everything in one table and only accepts path arguments.  As the front end will be making very specific queries, the team and I were thinking of sending the request as a JSON to the server using the POST method in REST so that the URI does not get too long or complicated.  From what I have read, it is common practice to send large queries as POST requests so this should not be considered bad practice.

To query the database, I am making a JSON parser using Jackson to parse these large JSON queries from the front end.  The trick is going to be constructing a JPQL query from the relevant information provided.  This part of the project should, hopefully, be done by the weekend.    

Wednesday, March 5, 2014

The Frustration Ensues...

Progress and Problems

At the last meeting, my task was to make very simple queries to a database based on a request from the front end.  This has not been going well  My problem right now is a never ending circle of dependency issues.  It seems like every time I start up the project, something new is broken and I am wasting hours fixing it.  Hopefully, these will get resolved soon and productivity will exponentially increase.

On a bright side, I have made all of the entity class objects for Dan to throw into the database using JPA and it seems to be working very well.  Also, half of our group has started using Intellij full version rather than Eclipse as it has many tools to help with Javascript editing.  Seeing as how the entire group will be working with Javascript soon, we figured this would be a wise choice.

Today, I am trying to fix a 404 error that is being thrown because, for some reason, I cannot access the URI that I specified using REST.  Hopefully this will get sorted out soon.