When I arrived at the Dojo yesterday (a bit late), I was surprised by how empty it was. Turned out everyone was holed up in the WebFun room already started on their belt exams! Or at least everyone that showed up was. I missed the discussion on Thursday because I was busy working with the Coding Dojo alumni in another room, but apparently Instructor Fiaz told my cohort mates that they could take the day off since they weren’t required to take the belt exam until next week. The only one that showed up and took the exam was Armando, and he got his graded by Fiaz the same afternoon. He satisfied the 9.5 points required to get his black belt and got cleared to join in on project week! I got a collaborator!
The rest of the afternoon was spent filling Armando in on the details of the project. I pulled my whiteboard back over to the Python area and we went over our priorities for the MVP and divvied up some tasks to complete in the next couple days. I had been working on building some basic routes and controller methods in the morning and switched back over to templates that afternoon. Seeing as I was still deep in the HTML and CSS, I continued working on front-end stuff. I finished the account creation page and an account creation success landing page by the end of the day. Armando, meanwhile, got started on setting up the Django admin tools to start populating the database with test data. He also took on the task of figuring out how to upload, store, and access files.
In order to really start collaborating, we had to figure out how to use git a little better. Adding Armando to the repository as a collaborator on GitHub was easy enough. He managed to clone it and get work no problem as well. We still didn’t know how to handle merging/pulling/branching or anything like that though. Fiaz slacked us a nice GitHub collaboration workflow diagram but it was still kinda ambiguous without any written explanation. We decided to ask him about it later.
Armando and I both came in today (Saturday) to get some more work done as well. It wasn’t until the afternoon when we finally decided to really figure out how to use git. Armando and I both had plenty of modified code and we wanted to get the master updated as smoothly as possible so we asked for some guidance from another Coding Dojo Alumni. We had a big, fat merge conflict and he helped walk us through this whole process of removing the affected files from the repository and re-adding them after successfully merging to commit them back in. It was a kinda weird process and I still don’t understand it fully, but I’m sure by the end of project week we’ll have dealt with enough merge conflicts that we’ll be conflict resolution pros. In addition, we were enlightened by Fiaz that the git flow should always be commit -> pull -> push. That little tidbit should prevent us from running into problems.
By the end of the day I had finished up all the HTML minus minor tweaks and template features that will be added later. I didn’t go all the way with the CSS on the main Drive page yet because Armando persuaded me to figure out how to use the Materialize framework to save some time. I do kinda agree that coding all those crazy dropdown menus and stuff will be more of a pain in the ass than learning a CSS framework. So I’ll finish that up later. It ain’t pretty, but at least we’ve got a full wireframe so we can start testing out real functionality. After finishing up the bare minimum CSS I switched over to the login/registration logic. I had a UserManager class from previous projects that I’ll be able to reuse some of for validation/authentication, but it’s going to need to be fleshed out with some more methods to make way for AJAX features. I only wrote a bit of jQuery so far, but I hope to finish the whole set of login registration features complete with AJAX by Monday afternoon. I’m taking a day off tomorrow to spend some quality time with my wife.