Ruby on Rails 後端和 React/Redux 前端。用戶可以保存他們最喜歡的節目並將劇集添加到他們的陣容中。他們可以以日曆格式查看他們的陣容,以了解他們的電視節目播出的時間和地點。用戶還可以查看熱門節目、觀看次數最多的節目以及本週首播的節目。這個專案是由我 Matthew Thorry 獨立創建的,作為我在 Flatiron 學校的軟體工程沉浸式專案中的最後一個應用程式。
我使用 Ruby on Rails 創建了應用程式的後端。我使用了兩個不同的 API 來取得電視資料:trakt.tv API 和 TVmaze API,並且取得請求是從後端完成的。這些模型是User 、 Show 、 Episode 、 UserShow 、 UserEpisode 。一個User可以擁有許多節目,並且可以透過節目擁有許多劇集。他們還可以有許多user_shows和user_episodes (用於收視率等)。所有模型都需要控制器,因為 CRUD 操作適用於所有模型。
前端是使用 React 和 Redux 建立的。它有超過兩打組件和四個減速器(節目、劇集、搜尋、附加),代表應用程式的四個主要容器。
負責從 API 和後端取得和顯示演出資訊。 Show Redux 狀態包括myShows (用戶保存的節目)、 onTonight (今天來自 API 的節目)、 premieres (本週來自 API 的首映節目)和isFetching (布林值)。節目的主要容器是ShowContainer 、 PremieresContainer和ShowCalendar 。
ShowContainer的子級是ShowList和ShowItem (孫級);其他子項是ShowPage和同級SuggestedList 。
PremieresContainer和ShowCalendar沒有子級,但它們是容器,因為它們負責多項任務,包括獲取節目或劇集以及添加/刪除用戶保存的項目。
負責從 API 和後端取得和顯示劇集資訊。 Episode Redux 狀態包含myLineup (使用者儲存的劇集)、 showEpisodes (特定節目的劇集,從 TVmaze API 擷取)和isFetching (布林值)。有一個容器, EpisodeContainer 。 EpisodeContainer的子級是EpisodeList和EpisodeItem (孫級)。
用戶可以查看劇集並從EpisodeItem將特定劇集添加到他們的陣容中。
負責根據使用者輸入從 TVmaze API 取得並顯示節目資訊。 Search Redux 狀態包含results (搜尋結果)和isFetching (布林值)。這個容器是SearchContainer ,它有一個子容器 ( SearchResults ) 和一個孫容器 ( SearchItem )。
使用者可以透過SearchItem上的按鈕儲存SearchResults中的節目。
負責從 trakt.tv API 取得和顯示額外資訊。 Extras Redux 狀態包括trending (最近一天受歡迎度變化的劇集)、 watching (擁有最多觀眾的節目)、 ratings (包括收視率的用戶 user_shows 數組)和isFetching (布林值)。 Extras 包含三個容器: DashboardContainer 、 TrendingContainer和MostWatchedContainer 。
DashboardContainer管理登入後的登陸頁面。它有兩個子項目: DashboardLineupList和DashboardOnTonightList ,它們各有一個子項目: DashboardLineupItem和DashboardOnTonightItem 。 DashboardLineupList顯示用戶陣容中當天播出的集數。 DashboardOnTonightList顯示不在用戶列表中但今天播出且評價較高的劇集。
TrendingContainer呼叫 trakt.tv API 來取得最新的趨勢節目,並且是顯示每個查詢結果的TrendingItem的父級。
MostWatchedContainer呼叫 trakt.tv API 來取得最多觀看的節目,並且是顯示每個查詢結果的MostWatchedItem的父級。使用者還可以根據指定時間(週、月、年、曾經)過濾結果。
我在熨斗學校的同學總是最優秀、最樂於助人的,所以謝謝你們!也要感謝我的導師 Johann Kerr、Lindsey Wells 和 Andrew Cohn,他們一直是我工作的第二雙眼睛。