Week 6
COMP3100 portfolio entry #3
Where we are now
People that are good at paying attention to detail will see that I don't have an entry for week 5. This can be justified by the fact that last week was quite busy for me, and I spent most of the time focusing on other courses. As such, since I didn't have a lot to write about, I decided to skip last week's entry entirely
Currently, we are at the middle of week 6. Development is proceeding as expected. We are planning to release around the end of September. Our plans have changed a bit, and instead of having a full public release, we decided to have a small beta for a limited number of users. After this, we'll decide whether or not we'll go live.
The main reason that forced us to rethink our plans has to do with the server. We are unsure if it'll be able to handle the expected load. We want to be confident first and confirm that the infrastructure satisfies our expectations. If everything goes smoothly, we'll go live shortly after.
When it comes to development, we are still working on the user interface. A lot of bug fixing was also done this week. Try to fix one bug, and ten new ones will be introduced, as they say... On a more positive note, we are starting to write automated tests now, and this will potentially help us speed the debugging process.
In addition to development, some of us (namely me, AJ and Andrew) will also be attending the ANU open day. We thought that this will be a good opportunity to add people to our mailing list and try and make PairFit popular on campus. As a secondary goal, I also want to use this opportunity to practice my pitching skills and engage with others. I am quite excited for this, and can't wait for Saturday to come.
As usual, everything is going ok, with a couple of exceptions. Monday and AJ are quite sick, and looked noticeably tired at the meetings this week. Also, Jarrod (our client) wasn't looking great either. Some of the assigned weekly tasks were not completed, and this slowed us down a bit. Fingers crossed, we'll be able to recover soon. The next couple of months are going to be really important for the project.
Measure of progress - Completed vs Open tasks
My contributions this week
This week, I also had to focus on the backend, and modify our server code. Last week we completed the event creation GUI, so this means that the functionality and the interface of the app need to be integrated together. As such, my contributions were adding node.js code to the app server, and creating HTTP methods that are used to service new requests from clients. Since I already had implemented some support from week 4, in anticipation of these tasks, this process was quite straightforward, and I did not have many issues.
On a side note: Honestly, I'd rather code functionality rather than work on the graphical environment. CSS is a tool that can become unnecessarily complicated. The mere fact that there exists a website like this just shows how weird the CSS language is...
In any case, I was able to update the server code to handle our new client-side requests and I proceeded to test this function a bit, manually. Everything is working as expected.
The other major thing I'm working on now is testing. At the start of the project, we were planning on using Jasmine to test the app. However, we changed to Protractor a couple of months back, since Jasmine looked too complicated for us to learn in a short amount of time. Since then, I really haven't had the time to check out Protractor. As such, I volunteered to learn more about the framework (and potentially teach the rest of the team how to use it). As such, I've been going through the documentation a lot lately, trying to wrap my head around it. As I said in the last portfolio entry, it's about time we started testing formally anyways. Part of the source code I've been editing can be seen below.
Overall, these were my main tasks for this week. Since I was able to complete everything around 2 days before the end of this week's sprint, I decided to go through the app on my own and try and locate minor inconsistencies and bugs, like different text sizes for similar elements, buttons rendering in different places for iOS and Android and so on. I was able to find some small issues (that are far too specific to mention here), so I added them to our issue tracker, and hopefully they will be placed in next week's sprint.
And finally, I suppose I could also mention my contribution to parts of the project that are not related to the app itself. As per the course guide, we need to present our progress to three other TechLauncher teams, next week, for assessment purposes. I took the liberty of going through the rubric for the presentation, setting up our slides in Google Drive, and assigning tasks related to the presentation to the other team members. I fear that, had I not reminded them, everyone else would ignore the presentation until the very last moment.
Sample test code, written by AJ and editted by me. Click to open.
describe("signin.test.js", function () { var username, password, submitButton; beforeEach(function() { browser.get('#/sign-in'); username = element(by.model('loginData.email')); password = element(by.model('loginData.password')); submitButton = element(by.css('[ng-click="submit(loginData)"]')); }); it('Correct Data Log in ', function () { //Start at sign-in expect(browser.getTitle()).toEqual('welome'); //Input Correct login info username.sendKeys('foo'); password.sendKeys('bar'); //Click Login submitButton.click().then(function() { browser.wait(function() { return browser.isElementPresent(by.css('ion-tabs')); }, 5000); }); //Expect it to take you to home expect(browser.getTitle()).toEqual('Events Feed'); }); it('Incorrect Data Log in Attempt', function () { expect(browser.getTitle()).toEqual('Sign In'); username.sendKeys('foot'); password.sendKeys('bart'); var popup = (by.css('.popup-container.popup-showing.active')); submitButton.click().then(function () { browser.wait(function () { return browser.isElementPresent(popup); }, 5000); }); expect(browser.getTitle()).toEqual('Sign In'); }); });
Part of the server code I've been working on
Resource I'm using to familiarise myself with the Protractor framework
Sample of the CSS code I contributed to. Click to expand.
.event-card .footer .decline { color: #44bbff; /* TODO: Actual colour */ float: right; font-size: 4vw; width: 30%; } .event-card .footer .invite { color: #44bbff; /* TODO: Actual colour */ font-size: 4vw; float: left; margin-right: 0px; width: 30%; } .event-card .item-avatar img { top: 5px !important; left: 5px !important; width: 10vh !important; height : 10vh !important; max-width: 45px !important; max-height: 45px !important; box-shadow: 2px 2px 2px #BBBBBB; } .event-card .item-lol img { position: relative; top: 2px; font-size: 20px; color: #44bbff; }
Closing thoughts
Things are a bit slow at the moment, and the two main causes are sickness and coursework. But still, I am confident we can pick up the pace and make up for the time we lost during the last two weeks.
As far as concerns go, I can't say I have any at the moment. The only thing I'm worried about is the presentation next week. Even though I feel comfortable speaking in public, I still get worried about these things. But judging from our performance last semester, we should be perfectly fine.
The different structure of marking should be beneficial for the team. Last semester, we couldn't really take into account the feedback given from others, since things listed as positive by one group of people were listed as negative from others. As an example, some individuals were quite impressed with the market research we did. Some others said our research was insufficient. These contradictions really made it hard to see what we needed to improve. At least, this semester, the presentations are assessed by the tutors of this course, and their feedback should be much more useful.
To conclude this entry, there is a lot of ground to cover during the next few weeks, and the midsem break. But, I'm still optimistic. We are still passionate about and commited to Pairfit, and I believe that it is just unluckiness, and not loss of interest that have caused other team members to miss/delay/be unable to complete tasks.