Learning documentation day 1 - sandyMax974/acebook-markzuckerbergisalizard GitHub Wiki

Day 1

Today was the first day of our project to create a Facebook clone. After establishing essentials like team name and team logo, we set out to plan our first two-day sprint after lunch. However, we quickly realised that we couldn't plan much, because none of us really knew anything about Rails, or how a Rails project works. In order to develop our app, we needed to understand our development environment, and for that environment to be live. So we set out to spend the afternoon independently reading through the project documentation, getting our heads around the rails file structure and looking into how to deploy our app via heroku. This would enable us to come back tomorrow morning, and start planning and dissecting some of our tasks into smaller user stories, to be addressed before our first sprint review. We also needed to understand the practical aspects of working in an Agile way.

In terms of the project documentation, we looked through:

We also looked at some Mackenzie Child videos on youtube about how to get started with Rails, which explained the project structure in more detail. One of these videos even directly provided the solution to one of our project tasks (listing posts in descending date order).

Obstacles

  • Initially we were a little stuck because we didn't really know where to start; there was also the question of how to document our tasks in an Agile way when our first task was just to figure out what was going on in Rails! Ultimately, we came up with an initial user story about deploying the app, of which a constituent part was getting to grips with Rails.
  • We had some trouble initially where people didn't have node installed, and then trouble getting the rspec tests to work. These were both relatively easy fixes (google showed the rspec error message was a consequence of not having the latest version), but showed the value of us each having a look around the repo and checking that everything was working properly, before diving into development.

Concrete learning:

  • Rails is convention rather than configuration based, meaning it assumes consistent patterns of behaviour and acts on that basis.
  • Rails is designed around CRUD web apps and makes those apps easy to implement at a basic level.
  • Rails seems like it makes what we've been doing over the past few weeks about one million times easier. The MVC connects in a very streamlined way, and ActiveRecord makes interacting with databases a lot more straightforward.
  • Things like routes are basically put into place automatically by Rails, and can thus be accessed and manipulated very easily from within erb files. It also automatically generates RESTful route names.

To address tomorrow:

  • catch up - how is everyone feeling about rails architecture now?
  • app deployment - set the posts index as the root of our app before we deploy?
  • we will need database seeds for development and testing - set these up?
  • first user stories - break these down into small tasks
  • web tools - are there any dev tools we want to use? wireframing? diagramming? accessibility?
  • rails console looks like it will be useful but I needed to update gems - can we all use it?

areas to read up on further:

  • ActiveRecord - migrations, associations, validations.
  • the asset pipeline