Tuesday, November 30, 2010

Graphic Interface

I’ve been tweaking and creating the interface for a couple of weeks now, pretty much the main layout was designed and completed a week ago, but I had to change little things in order to make most of the team happy with the interface, its quite tricky since everyone has different opinions and no one is really wrong, so I had to change button or css styles a couple of times (at least) to make the interface what it is now.

Even though it may look simple a look of time was invested on details and functionality, we also wanted it to look simple and sleek since we are not trying to sell anything to anyone or trying to make people to come back, etc. the site is all about functionality and that was our main concern all along the way.

The tools used for the creation of the site were the Adobe Creative Suite for images and some css editing (the rest of it was made using TextWrangler), the site was mainly tested on Chrome and Firefox, but it was quite tricky to use tools that text the xhtml (to avoid tag soups) since we were using some django code here and there, but overall the site had no problems running in these two browsers.

Acceptance Testing.


Yesterday, I worked with my partner Sebastian Olivares in the acceptance test of our project. Sebastian is a member of @ESC (The student group to who we are developing the aplication). Since we have an almost finish version, we wanted to see it in action and also find some parts on which we can keep working during the final days.

After Sebastian used the software, he was very satisfied. He described the aplication as very useful and simple. He said that the graphics were really nice and the system in general worked very well for the intention of the project.

He also found some simple things that could be implemented:

- In the creation of tickets, specify that in that section we are creating the tickets.
- In the creation of events, in the time section, specify the right format of the hour (H:MM), because he had to repeat it twice until he finally added a right time.




Here we can see the video of the testing. We used Camptasia 5.0 to record the audio and video of the screen.


Saturday, November 27, 2010

From logic to graphic.

The past week I have been working on the implementation of the Ticket seller logic into the graphic interface. I explained the logic of the ticket seller section in previous posts. In order to do this I had to do several points:

- Create the HTML file named assignSellers.hmtl.

- Create the showsTicketsSellers method in views.py.

The main changes were created in the assignSellers.html file.

The two parts of the code that are more important are the creation of the assignSellers button in the toolbar and the creation of the pop up of the assign sellers. In general, this two codes are the more relevant to make possible the graphic interface. There are some variables that I had to adjust. Those variables were width and height. Also, there is a mouseOver function, that is the responsible of changing the color of an icon when the mouse goes over it.

The name of the fields were changed in the table that can be found at the end of the archive:

Ticket number

Seller

Since I had all the logic ready, it was not so hard to finish the graphic interface. All I had to do was make the proper convertions and use those files that I had made in the last month.

The next step would be do the same (Converting from logic to graphic interface), but in the Incomes and Expenses sections.

Sunday, November 21, 2010

Programming day

Today was a day of programming . It all started when we met at Vips for breakfast, after spending some time talking we continue the project. We divided the applications that were missing to make the meeting more dynamic. Among those applicactions, I had to do:
ShowStadistics: this functionality shows all data we store, for example: event data, number of tickets, tickets sold, tickets unsold, how much is gained, among other things.
AddEvent and DeleteEvent: these features were already implemented but my job here was to link this features with the system through the dialog.



Login: this features is to validate whether the user's session is valid or not. If the user is no logged, the system displays the login.html for enter the username and password.

Another point to have in mind is that our system is characterized by following the principle of "Keep it releasable" because we pre-tested our file before we upload them.

The last thing I did today was to update the info of our system in the google code because it showed the idea that we had at the beginning of the semester.

First complete working version!

Today we finished setting all the modules in the system, including ticket sellers, incomes, outcomes and improved design of statistics. The system can be used now completely, with all the functionalities it was planned to have. We are really excited about this!

We also fixed some bugs in our code. We are looking forward to continue doing tests to our system so we can ensure everything is working in the right way. We will also continue improving some small details about the menus and graphic interface in general.

Saturday, November 20, 2010

Finances.

In the past week, I have been working in the finances part of the project. In this section, the users will be able to check the current statistics of a particular event. This statistics will be calculated based on the numbers of sold tickets and their price. There is another element that is taken into account when calculating the incomes and outcomes of an event. In every event, there could exist more incomes than only the sold tickets, and also, in this section the user should add the outcomes or the different costs of an event.

I have been focusing in three main functions. Add incomes and outcomes, modify incomes and outcomes and delete incomes and outcomes. In order to do this, I had to create the application of the financial module. Once this was done, I started to work in the model, forms and views.

Model: In the models I created income and outcome.

Forms: In this section I had to create some forms like AddIncomeForm, AddOutcomeForm, ModifyIncomeForm, ModifyOutcomeForm, DeleteIncomeForm, DeleteOutcomeForm. I had several problems in order to use the current event that the user selected (This happens because the JQuery functionality is not ready yet, so I had to simulate it by using a variable called eventId).

Views: I created the main methods here, those methods are: AddIncome, AddOutcome, ModifyIncome, ModifyOutcome, DeleteIncome, DeleteOutcome.

In general, I used some of the functions that were already created to guide me. To finish this part of the project, the stats section needs to be finished. This requires the use of JQuery.


Thursday, November 18, 2010

New functionalities

I realized that there wasn't a function to delete events. So I implemented it. The user can select one or more events from a list with all the events inside of it and then delete them.

I made some changes to event models. I set name and date fields as unique_together, this is for not allowing users to create an event with the same name in the same date two or more times. As event names can be repeated, but in different dates, this is why I added this restriction. So, when the user tries to add a repeated event, a message is thrown informing the user the event already exists.

Also, I implemented the functionality that allows users to set the price of the ticket.