Saturday, May 5, 2012

Final Post

Well, the semester is now drawing to a close, and as the saying goes, all good things must pass in time. Looking back upon the semester, I feel that I grew significantly over the course of the past semester and I am really glad to have had the experiences I had. I learned how to work work with a new language and how to work with members of a group for a long period of time. I have never had to work with a group for more than a month, and this semester, learning how to comunicate effectively and how to grow individually and as a member of a group. Looking back, professor Ackley had asked us in class what we would tell "beginning of the semester us" if we had a time machine. And at this point I would definitely tell myself: Sucks to be you. Because it was rough, taking CS460, CS444, CS375 and CS362 was pretty killer and while I learned a lot, I cant say that I would want to do it again. So Thus concludes this chapter in my life, not only for the semester, but for my undergraduate career. So I bid farewell to all of you who have followed the ups and downs of this project.
If you feel like messing with our creation go to : dndwebsitecreator.com

Peace!

Thursday, May 3, 2012

Its the final countdown!!!!

Sorry, that song is going to be stuck in your head now for the rest of the week, at least it has a good guitar rift! Anyways though, We are nearing the end, essentially the project is "done" or more like, as done as it can be at this point. Tomorrow we have due our 1 page paper that we will give to our judges to be able to remember our project by and have something to be graded on.  With that being said, I will be posting that here later today. On that note, As I look back on the semester, I really wish that we could have had more time to show off our project and all its functionality, because I feel like there is a lot of functionality an nuances that we had to work on and get the kinks out of to be able to make the project usable by a normal user. That being said, it feels like we will give our presentation and then that's it... nothing afterwards, granted I know Ackley will be going through our code after it is all said and done and looking at our code and grading us based on what is there, but the fact that we dont get to show it to people is kinda sad, but such is life. Beyond that though I really feel that I learned a lot this semester. I gained a lot of experience working with group members, who going into this project I would have never picked to work on a project of such magnitude with and also, how to be able to effectively communicate with people who are completely different from me and program completely differently from me. With all that said, I am very very glad this semester is drawing to an end.

Thanks!

Sunday, April 29, 2012

Future additions

Well, as the semester draws to a close and our team puts in the "finishing" touches to the project, I feel that it is time to reflect on what we set out to do as a group and evaluate progress therein and also to ask what feature we would have liked to implement most if we had more time. First off I will address the things that we accomplished this semester. At the beginning of the semester we set out to create a website that would be easy for the average new web-user to create a website and publish it to their own pre hosted website. I believe that this was an ambitious goal, but, more or less, we have accomplished it. If given more time I would have liked to clean up the user interface significantly, and I think I would have liked to take the UI, completely throw it away and start over from scratch. The reason for this is because after doing a level of end user testing, I have found that people have a hard time navigating the menu. So it would have been cool to bring in outside users into the development process to make the user experience as fluid as possible. But, again, I believe that over all, we accomplished the goal we set out to do.
     On that note though, if we were able to have more time to ad another one feature, I would have liked to add functionality for users to be able to specify the z indexing level of individual elements. The reason this would be most helpful to users with an above average level of web knowledge, but would also allow users another level of functionality that we do not currently support. Another thing that I think would have added another level of believability to this project and would have given people more faith in this project.

Sunday, April 22, 2012

Nearing the end

Well, as it has been said before, the end is neigh and we are approaching the end of this journey in software engineering, this past week we had our final one on one group meeting with professor Ackley and it actually went really well, while we had some hic-cups during the presentation with things like icons not loading and such, it really went well, and he was happy with where we stood at that point in time and the direction we are going with the rest of the project. So our goal for this week was to be ready to give a 7 minute presentation about the state of our project next week and show off how far we have come to the rest of the class, and also to make some tutorial videos showing how to use our product and what all is available to people. So, John Schulz has been hard at work getting tutorials up and getting that done, which has been a huge help. I have personally been adding the final touch, the so called cherry on top to our program which is the ability to load prebuilt templates and themes to the project. Initially we were going to go with only the ability to load in a "template" that allows users to just have a sort of overarching color and menu theme that they could customize, but didn't really make a website for them. But now we have implemented Themes as well. The difference between a theme and a template is that a template only changes the "template" tab in the editor, where as if you choose to use a prebuilt theme then that modifies your entire project and essentially gives you a completely built project that all you have to do is add in content for and you're done. So those are nearing completion and now all we need to do is have our meeting to discuss the flow of the presentation and we will be all set :) from there it is all about marketing and continued bug fixes, but i feel that we are in a good place overall and that it will all work out :).

Thursday, April 5, 2012

Current Status and moving forward

Believe it or not, our last client meeting with professor Ackley actually went well, I was partially shocked. Most of the reason I was shocked was because only 10 minutes before our program was not rendering output or zipping the files we created, BUT we were able to track down the bug, fix it and then have a successful meeting. Now as for what is next: Nail down what "marketing" means. I hadnt really thought about what doing marketing really means, so after thinking about it some, what I believe this means is getting real clients actually using our program, this is scary because of how many bugs we are still experiencing with our program, not to mention we dont have a server yet set up to run our program on and store the database, so this week/ weekend is going to be dedicated to getting this box set up and ready to go with people being able to login remotely and work on the project as well as be able to test the current status of specific pieces of functionality we need. While this makes me nervous, I guess all we can do is see how it goes and hope I am able to set it up. I will be updating this post as progress/ problems arise. Currently, the server is "created" but I need to configure the router and download some additional software to be able to get it working.

[EDIT]

I actually had the server that we were going to use, removed from my possession, pseudo forcefully, therefore, we may revert to using a site like hostgator.com. Again, will post updates as we decide things.

Monday, March 26, 2012

User Experience

Forward:
This document is designed to outline why, when a user comes to our website, he/ she will want to stay on this site and create a website.

The hook:
When an individual first navigates to our website, either first from a google search or a link from another website, we know that they will be looking for a way to create a custom website. Once the user is on the page, we are now marketing toward individuals who are web-savvy, but do not have the skill-set/time to develop their own website. Now that we have limited down our client base who will be using our product, we now must look at what will incline people to stay on this page.

When the user begins to look at our front page, they will see a page that is well designed using web 2.0 styles and includes testimonials by other users who have used our site and created websites that are out in the world, living and active. They will be able to click links to see the other user’s websites and have the ability to examine websites that were made by our developers.
Also, in addition to this, we will have a button  directly on the front page ( separate from the link in the menu) that will direct them to creating a new user. This will be placed near the bottom of the front page and will act as a sort of “big red button” that after they are drawn into the website by the testimonials and other features of our site, they will be inclined to create a new user. This will draw the new users in and make them want to create an account with our website and get started creating their own website!
In conclusion, with the plethora of features that our website offers people, and the different testimonials and example websites that we display to the user, users will have no choice but to use our product and create their own website.

The User story:

    Once the user has created an account and logged in for the first time, they will be greeted by familiar tools that they will have seen in other editors similar to ours, on the left they will see the primary toolbar and on the right they will the properties editor that gives them full customization over each element that they place in their webpage. And in the middle of the screen they will see their main workspace where they will add all their content into their website.

Most likely, the user will start by hovering over the different tools that to see what each of their functions do. Once they have a grasp on what each element does they will begin the 5 step journey to website creation:

First: They will decide what the theme of their website is going to be, what color scheme will be used, who the target audience is, and so on.

Second: They will map out the pages to be used for this site: Ex. Home, Contact, Blog, Photos, etc.

Third: They will create the master template. This is important because the feel that is created here will translate to all the other pages. It is important for them to add the menu bar here and any Text that you want to translate onto every other page, common places for this kind of text are in the footer and header.

Fourth: They will begin adding content and customizing the individual pages. In this step you will be adding images, text, forms, and other miscellany that will be constrained only to individual pages.

Fifth: Publishing their page! They will take the code that was generated and add into the public_html folder that is provided to you by your web-hosting company and Voila! They will have created their website in 5 simple steps.

Saturday, March 24, 2012

Canvas Serialization: status: failed

Today after approximately 4 hours of work, I discovered something quite unfortunate. We are unable to serialize Canvases...It took a long time just to figure out how to serialize something using GWT (to do this I had to create a spike for serialization) once I was able to serialize a string, I took to the task of serializing a SmartGWT canvas, this yielded the following result:












Previously, it was my understanding that Ian had already confirmed that serialization of a canvas object was possible, but when I tested his code, I found that what was actually happening was that nothing was being serialized, but instead he was getting java.io* errors, the reason being that you are unable to serialize things client side like he was trying, therefore he never ran into this beautiful error. I believe the reason this went unnoticed was due to the fact that his error gets thrown, and you get output of it, but it gets silently ignored and does not crash the web app. But, once serialization was implemented server side correctly, I found out that it is impossible to serialize a canvas.

      In light of this discovery, I feel that we as a group need to go back to the drawing board concerning how to save our projects. I believe that the only way that we will be able to save projects though will be through a technique of back parsing, where we take our parsed html ( because it can be read in as a string)  and we will serialize that and save it to the server. When the client wants to load their project, we will grab the html, and parse it back into Canvases. How this will work? I have no idea. But here's hoping for the best.......



[EDIT]
I attempted to force a smartGWT canvas to be serializable using this class:

public class CanvasSerializable extends Canvas implements IsSerializable, Serializable {
private static final long serialVersionUID = 5670628250770755450L;
}


but that only gave me a more different error: