แบ็กเอนด์ Ruby on Rails พร้อมส่วนหน้า React/Redux ผู้ใช้สามารถบันทึกรายการโปรดและเพิ่มตอนลงในรายการได้ พวกเขาสามารถดูรายการของพวกเขาในรูปแบบปฏิทินเพื่อดูว่ารายการทีวีของพวกเขาออกอากาศเมื่อใดและที่ไหน ผู้ใช้ยังสามารถดูรายการที่ได้รับความนิยมและมีผู้ชมมากที่สุดตลอดจนรายการที่ฉายรอบปฐมทัศน์ในสัปดาห์นั้น โปรเจ็กต์นี้สร้างขึ้นอย่างอิสระโดยฉัน Matthew Thorry เป็นแอปสุดท้ายของฉันที่ Flatiron School สำหรับโปรแกรม Software Engineering Immersive
ฉันสร้างแบ็กเอนด์ของแอปโดยใช้ 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
)
ผู้ใช้สามารถบันทึกรายการจาก SearchResults
ได้โดยใช้ปุ่มบน SearchItem
รับผิดชอบในการดึงและแสดงข้อมูลเพิ่มเติมจาก trakt.tv API สถานะ Redux พิเศษประกอบด้วย trending
(ตอนที่ความนิยมเปลี่ยนแปลงไปในวันสุดท้าย) watching
(รายการที่มีผู้ชมมากที่สุด) ratings
(อาร์เรย์ของ user_shows ของผู้ใช้ซึ่งรวมถึงการให้คะแนน) และ isFetching
(บูลีน) สิ่งพิเศษประกอบด้วยสามคอนเทนเนอร์: DashboardContainer
, TrendingContainer
และ MostWatchedContainer
DashboardContainer
จัดการหน้า Landing Page หลังจากเข้าสู่ระบบ โดยมีสองรายการย่อยคือ DashboardLineupList
และ DashboardOnTonightList
ซึ่งแต่ละรายการมีรายการย่อย DashboardLineupItem
และ DashboardOnTonightItem
DashboardLineupList
แสดงตอนต่างๆ ในรายการของผู้ใช้ที่ออกอากาศในวันปัจจุบัน DashboardOnTonightList
จะแสดงตอนที่ไม่ได้อยู่ในรายการของผู้ใช้ แต่ออกอากาศวันนี้และได้รับการจัดอันดับสูง
TrendingContainer
เรียกใช้ trakt.tv API เพื่อรับรายการที่กำลังมาแรงล่าสุด และเป็นรายการระดับบนสุดของ TrendingItem
ซึ่งจะแสดงผลลัพธ์แต่ละรายการของข้อความค้นหา
MostWatchedContainer
เรียกใช้ trakt.tv API เพื่อรับรายการที่มีผู้ชมมากที่สุดและเป็นรายการระดับบนสุดของ MostWatchedItem
ซึ่งจะแสดงผลลัพธ์แต่ละรายการของการสืบค้น ผู้ใช้ยังสามารถกรองผลลัพธ์ตามเวลาที่กำหนด (สัปดาห์ เดือน ปี ตลอดกาล)
เพื่อนร่วมชั้นของฉันที่ Flatiron School เป็นคนที่ดีที่สุดและช่วยเหลือดีที่สุดเสมอ ดังนั้นขอขอบคุณ! ขอขอบคุณอาจารย์ของผม Johann Kerr, Lindsey Wells และ Andrew Cohn ที่คอยเป็นตาที่สองให้กับงานของผมเสมอมา