Hello everyone! It’s the last week of lecture. Here are your week 10 slides.
This week we’ll be talking about a couple plugins, sending emails, and a little rails security. Followed by show and tell. Woo!
Go to this repo for the week 9 rubyholic codes:
It’s that time again! Here are your week 8 slides.
This week we’ll be talking about advanced active record techniques. See you tonight!
Hi everyone! For the rest of the quarter we’re going to be working on the Rubyholic project. We will employee techniques we’ve learned (and are learning) in the book to finish this project. The finished product is due on March 29th.
The Rubyholic project is a website for Rubyists to find their local Ruby groups around the country. The website should let a person find their local ruby group, and it should also let someone create their ruby group. The site will show where and when any particular ruby group is meeting, along with maps and any other pertinent information.
We will have 3 models.
A Group should have many Events. An Event should belong to a Location. A Group should have many Locations through Event. Take a look at the document I link to below for the attributes each of these models should have.
We will have 3 RESTful controllers that manage each of these objects.
Take a look at the attached documents below for my rough sketches of each screen, and the flow. The arrows indicate flow, they aren’t actually part of the website.
You should have already started this project. We’ll be modifying the datastructures from last week just a little bit. This is a rough outline, and only indicates how I might tackle this problem. If you want to tackle it in a different order, that is fine. Just explain to me your strategy. Ultimately I only care that the project gets completed (with tests of course).
On March 1st, I expect the basic models to be finished. If you turn in only two models (like you were assigned) that is fine. Just know that you will have to fix the join table to add the Event model later. I also expect the GroupsController#index method working.
On March 8th, I will be expecting GroupsController#show, GroupsController#new, GroupsController#create, GroupsController#update, and GroupsController#edit working. GroupsController#show view won’t contain any map or Event information yet. It will merely show Group information.
On March 15th, I would expect to see LocationsController#new, LocationsController#create, LocationsController#edit, and LocationsController#update working. I would also like to see the GeoCoding working too.
March 22nd, I want to see EventsController#new, EventsController#create, EventsController#edit, and EventsController#update working. I would also expect to see the events show up on the GroupsController#show page along with a google map mapping out the different locations for each event.
March 29th should be searching week. Most of the pages and controllers should be wired together. I want to see Sphinx integration for search, along with pagination and sorting on the GroupsController#index page. I would also like to see the site get someone prettied up this week. Custom CSS and an animated gif or two.
This homework is more free form. If you don’t agree with some of the page flow, or would like to change bits around, that is fine. Just let me know what you are changing. It is OK (and encouraged) to work in groups on this project. I want to see you all testing first, then writing the implementations to make those tests pass.
To grade this homework, I will be looking at overall progress, test completeness, including code coverage, and coding style. I want to see well tested code with good OO techniques.
Here is a PDF showing (most) of the screens that you will be implementing. I did not include edit screens because those should just reuse the “new” views for the most part. I’m also missing a couple arrows because I couldn’t get OmniGraffle to draw a line to another page. If you’d like to modify the document, here is the OmniGraffle file for the PDF.
I encourage you all to discuss this on the mailing list and work together. This project is intended to give you more freedom, so if you want to change things, just run it by me. I’m flexible. Good luck!
has_many :things
has_many :stuff, :through => :things
It’s that time again! Tonight we’ll be talking about generating XML, JSON, i18n, and tests, tests, tests!
Here are the week 5 slides.
Hello everyone! Here are the slides for week 4.