Logo

Warsztaty: Ruby on Rails

Kilka ważnych informacji

Przed przystąpieniem do rozwiązywania zadań przeczytaj poniższe wskazówki.

Jak zacząć?

  1. Stwórz fork repozytorium z zadaniami.
  2. Sklonuj repozytorium na swój komputer.
  3. Rozwiąż zadania i skomituj zmiany do swojego repozytorium.
  4. Wypchnij zmiany do swojego repozytorium na GitHubie.
  5. Stwórz pull request do oryginalnego repozytorium, gdy skończysz wszystkie zadania.

Zadania:

Wybierz jeden z dwóch projektów (lub jeżeli zdążysz - możesz oczywiście zrobić oba ;) ):

Warsztat: aplikacja do prowadzenia prostych notatek.

Napisać aplikację, której celem będzie zarządzanie notatkami (wyświetlanie notatek, dodawanie notatek, edytowanie notatek). Aplikacja będzie zawierać logowania (przez devise'a). Notatka powinna mieć pola tytuł, tekst i powinna być powiązana z użytkownikiem, który ją dodał (hint: metoda current_user i has_many/belongs_to).

Uwaga! Na żadnym etapie pracy nie korzystaj ze scaffoldów.

Etapy pracy:

  1. Stworzenie nowej aplikacji (o nazwie NoteApp)
  2. Utworzenie kontrolera HomeController, który obsłuży stronę główną aplikacji
  3. Dodanie do aplikacji devise'a i skonfigurowanie go
  4. Zabezpieczenie całej aplikacji
  5. Dodanie modelu Note z odpowiednimi polami
  6. Dodanie relacji has_many/belongs_to między User, a Note.
  7. Utworzenie NotesControllera, ze standardowymi akcjami REST - z wyjątkiem zawężenia do wyświetlanych i tworzonych notek w scopie current_user. Podpowiedź: @notes = current_user.notes; @note = current_user.notes.find(params[:id])
  8. Utworzenie odpowiednich widoków dla NotesControllera
  9. Dodanie polonizacji i polskich komunikatów devise'a
  10. Poprawki wyglądu i stylu kodu
  11. (*) Na stronie notes#index wyświetlaj tylko 3 rekordy, używając https://github.com/amatsuda/kaminari

Warsztat: książka adresowa

Zaimplementuj własny notatnik z kontaktami do znajomych zawierający ich numery telefonów, adresy email czy link do facebooka. Zadbaj o walidację email. Aplikacja ma się wyświetlać po wejściu na localhost:3000 (zdefiniuj w routes root). Do korzystania z aplikacji jest wymagane utworzenie konta i zalogowanie się (devise). Każdy użytkownik ma swoje osobne kontakty, powiązane z danym użytkownikiem (hint: metoda current_user i has_many/belongs_to).

Uwaga! Na żadnym etapie pracy nie korzystaj ze scaffoldów.

Etapy pracy:

  1. Stworzenie nowej aplikacji (o nazwie ContactApp)
  2. Utworzenie kontrolera HomeController, który obsłuży stronę główną aplikacji
  3. Dodanie do aplikacji devise'a i skonfigurowanie go
  4. Zabezpieczenie całej aplikacji
  5. Dodanie modelu Contact z odpowiednimi polami
  6. Dodanie relacji has_many/belongs_to między User, a Contact.
  7. Utworzenie ContactsControllera, ze standardowymi akcjami REST - z wyjątkiem zawężenia do wyświetlanych i tworzonych kontaktów w scopie current_user. Podpowiedź: @contacts = current_user.contacts; @note = current_user.contacts.find(params[:id])
  8. Utworzenie odpowiednich widoków dla ContactsControllera
  9. Dodanie polonizacji i polskich komunikatów devise'a
  10. Poprawki wyglądu i stylu kodu
  11. (*) Na stronie contacts#index wyświetlaj tylko 3 rekordy, używając https://github.com/amatsuda/kaminari

Repozytorium z ćwiczeniami zostanie usunięte 2 tygodnie po zakończeniu kursu. Spowoduje to też usunięcie wszystkich forków, które są zrobione z tego repozytorium.