w9d1 - decomposition

Today I decided to make my life a little easier and simplify the backbone views that I’ve been trying to implement. I didn’t plan to spend so much time on implementing backbone views and if i continue to dedicate time to that, i won’t be able to add in some other features that i had planned. I can always go back later and refactor, but my priority is getting everything implemented smoothly by Friday, so I’ll have to sacrifice some complexity.

w8d5 - Ohhhh, we're halfway there

    Week 8 done! These weeks are just flying by, especially now that we’re working on our Final Projects. After working on them for 4 full days, we got to show them off to the whole class. It was interesting to see how differently everyone has approached their projects, in particular, the pieces that everyone focused on varied greatly. Some people tend to focus fully on the back end of their site, meticulously testing and building features first. Some people flesh out their features and then spend a bit more time focusing the front end. Either way, it was exciting to see everyone’s progress, especially knowing that in another week, all of the clones will be fully ready to be seen by the world!

    As for my clone, it’s going well. I made some good progress with Backbone, although the demo I showed was strictly Rails. I still need to figure out exactly how to implement User authentication with Backbone. I’ve also been trying to figure out the best way to grab the signed in user, which is handled by the Rails server. So that will probably be my primary focus as I resume working on my clone this week. 

w8d4 - Backache

    Ugh, Backbone… I thought I was doing well yesterday and then Backbone comes along and slings me back down to Earth. I started trying to incorporate Backbone into my project, and it did NOT go as smoothly as I’d hoped. That’s not to say that it was a complete disaster, it was just frustratingly slow and I didn’t get as much done today as I would have liked. With that being said, I made sure not to affect the Rails version of the app, so even if the Backbone parts end up in the trash heap, I can easily revert it back to Rails.

    In particular, I was having trouble with utilizing subviews. I think part of it is just that I’m not very comfortable using them. I have to constantly refer back to previous material to get right, which is a big difference from when I was working in Rails. The other part of it is that conceptually, I’m having trouble wrapping my head around exactly how I need to separate my Views and Templates, as my models are intricately related and there isn’t a clean delineation for what needs to go where. That’s also part of Backbone that I struggle with compared to Rails. In Backbone, there aren’t many conventions that hold things together, you just sort of have to make it make sense the best you can. Rails is ALL conventions, and once you get used to it, it’s nice understanding how things fit together. I’m sure that as I work with Backbone, I’ll start to appreciate the open-endedness of it, but for now, it’s just frustrating.

    Tomorrow is our first demo day, and I’m very excited to see everyone else’s projects in progress. But before then, I would definitely like to get some of my Backbone pieces working. Looks like I have some work to do!

w8d3 - MVP! MVP! MVP!

    It was officially Day 2 of Final Projects, and I would say today went pretty smoothly for me. I was able to add in a few new features: a properly working timeline that shows all of the posts from the current user and the posts from users they follow, the ability to reply to posts, the ability to repost, and the ability to search for users. I also started working on some CSS in order to give myself some visual feedback for designing my Rails Views. I may have gotten a little carried away, but I can definitely say it looks much better than yesterday’s version.

    At this point, the project is beyond my initial estimation of the MVP, but I would like to add a couple more features and refactor a bit before attempting to layer in Backbone. I’m looking forward to adding Backbone, but I don’t know it nearly as well as Rails, so it will be a challenge not breaking everything. I have also been regularly pushing to Heroku, so if anyone wants to try out the (very much under construction) production version, be my guest!

www.the-chattr.com

w8d2 - The chattr around town...

    No more pairs, no more instructions (not explicit ones at least). Today marked the beginning of a new phase at app/Academy, one in which we finally get to build on all of the knowledge that we’ve spent the last 7 weeks accumulating. They’re finally pulling the training wheels off, and it’s an exciting time as we figure out how to keep pedaling. For my final project, I decided to build chattr, a clone of Twitter. It’s a site I’m very familiar with, and I thought it would also provide a good showcase for everything that we’ve learned. I also think I should be able to put my own little spin on it, so overall I felt it was a good choice.

    On Day One, I polished off user authentication, which I started the night before. Then I spent some time writing unit tests for my User model, using shoulda-matchers, which was sooooo much cleaner and easier to write than regular rspec. Once I had that out of the way, I moved onto my Post model (my version of Tweets), giving users the ability to make posts. The last thing I did before leaving today was figure out how to link up the follower/following relationship, which was trickier than I initially thought. I had to link two Users together using a Join table that keeps track of user_ids and follower_ids. Basically doing a self join through a separate join table. The actual logic was not that difficult, it was keeping track of the similar names that was tricky, but after renaming my fields and associations a few times, I came up with something that worked for me.

    Day Two will be all about configuring the post feed, and once that’s finished I will have arrived at my MVP (minimum viable product), which means I can start doing just a *tiny* bit of styling. Until then, the site will just have to suffer from a bad case of the 90’s.