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,他们一直是我工作的第二双眼睛。