Build a Full Stack Movie Streaming App in Go – Golang, React, MongoDB, OpenAI API Project Course
freeCodeCamp.org
View ChannelAbout
Learn math, programming, and computer science for free. A 501(c)(3) tax-exempt charity. We also run a free learning interactive platform at freecodecamp.org
Latest Posts
Video Description
Lean how to build a complete full-stack movie streaming app with AI-powered movie recommendations. You’ll use Go with the Gin-Gonic framework on the backend, React on the frontend, and MongoDB for data storage. For the AI features, you’ll connect your Go backend to OpenAI using LangChainGo. Sign up for MongoDB Atlas: https://www.mongodb.com/ ✏️ Course developed by @GavinLon 💻 Code: https://github.com/GavinLonDigital/MagicStream 🏗️ MongoDB provided a grant to make this course possible. ⭐️ Contents ⭐️ - 0:00:00 Introduction and Overview of the Course - 0:10:14 Setup Development Environment - 0:10:19 Install MongoDB and Compass (GUI for MongoDB) - 0:14:05 Install MongoDB Shell - 0:17:54 Launch Compass, Create and Seed MagicStream MongoDB Database - 0:23:38 Use MongoDB Shell to Interact with MongoDB Database - 0:29:42 Install Go (Golang) on Dev Machine - 0:34:31 Create Basic Go Application using Command Line Interface and Notepad - 0:38:45 Install Visual Studio Code on Dev Machine - 0:42:42 Create Full-stack Project Infrastructure in VSCode - 0:44:38 Create go.mod file for Go/Gin-Gonic Web API - 0:47:32 Install Go Extension for Visual Studio Code - 0:51:00 Start Creation of Code for Go/Gin-Gonic Web API - 0:51:26 Install Gin-Gonic (Gin) Web Framework - 1:06:33 Create Movie Model and GetMovies End Point - 1:31:01 Create Movie Controller - 1:33:01 Create GetMovies Gin-Gonic Endpoint Handler Function - 1:44:20 Create Reusable MongoDB Connection Code in database Package - 2:16:46 Create GetMovie Endpoint Function Handler - 2:35:58 Create AddMovie Endpoint Function Handler - 3:02:34 Install Postman and use Postman to test Post Request to AddMovie Endpoint - 3:14:41 Create User Model - 3:44:00 Create RegisterUser Endpoint Handler Function - 4:20:25 Create Login Functionality - 5:29:52 Create Middleware Functionality to Validate Incoming Access Tokens - 5:50:23 Configure Protected and Unprotected Gin (gin-gonic) Routes - 6:06:49 Update Movie Review - Engage with openAI through LangChainGo - 6:34:22 Sign up for Account with openAI - 6:59:32 Create Movie Recommendation Service Powered by AI - 8:13:57 Go/Gin-Gonic Best Practices - Minor Code Amendments - 8:54:51 Create Frontend Code Using React - 9:02:57 Create UI for Home Page - 9:59:05 Create Header Component - 10:24:43 Setup Routes using react-router-dom - 10:24:58 Create User Registration UI - 10:56:59 Create Login UI - 11:10:30 Create Auth Provider and Auth Context Functionality - 11:39:31 Create UI for Movie Recommendation Service - 12:05:37 Create UI for Updating Admin Movie Reviews - 12:38:29 Amend Code so that Access Token is Stored in http-only cookies (prevent XSS attacks) - 13:41:01 Using react-player to Play Movies in Browser - 14:04:27 Deploy full stack Web App to the Cloud - 14:08:13 Deploy MongoDB to Atlas and Seed Data from Local MongoDB - 14:18:42 Deploy Go/Gin-Gonic Web API to Render - 14:35:31 Deploy React Client Code to Vercel - 14:44:48 Outro
Streamline Your Coding Setup
AI-recommended products based on this video
![TP-Link USB C To Ethernet Adapter (UE300C) - J45 To USB C [Thunderbolt 3/4 Compatible] Type-C Gigabit Ethernet LAN Network Adapter, Compatible With Apple MacBook Pro 2017-2023, MacBook Air, And More](https://m.media-amazon.com/images/I/418xZkoG-RL._AC_UY654_FMwebp_QL65_.jpg)
TP-Link USB C To Ethernet Adapter (UE300C) - J45 To USB C [Thunderbolt 3/4 Compatible] Type-C Gigabit Ethernet LAN Network Adapter, Compatible With Apple MacBook Pro 2017-2023, MacBook Air, And More

Laptop Sleeve Case 11–14 Inch MacBook Air MacBook Pro Surface Laptop Dell XPS 13 HP Envy Pavilion Lenovo Yoga Slim IdeaPad Acer Swift Chromebook Samsung Galaxy Book Shockproof Leather Bag Colour Blue

Gumdrop ProTech Case for Dell New XPS 13 Plus 9320 Laptop- Slim Lightweight Case with Energy Displacement Protection, Non-Skid Rubber Feet and Frosted Exterior for Bumps and Drops (Black)

65W 45W USB C Laptop Charger Compatible with Dell Latitude 5420 5430 5520 5530 7340 7430 Inspiron 14 16 XPS 13 Chromebook 3100 Dell Computer Type C Fast Charging AC Adapter Power Cord

45W 65W AC Adapter Laptop Charger for Dell Inspiron 15 14 13 17 3000 5000 7000 Series 5558 5559 Charger Latitude E6440 E6430 3520 3420 XPS 13 14 9333 9350 Notebook Dell Computer Power Supply Cord

NA to Clamp, Quick Release NA to Rail Lock Clamp with 1/4in 3/8in Thread, Standard NA to Clamp Adapter for Camera Cage Friction Arm Ball Head Cold Shoe Microphone Monitor

Logitech K250 Bluetooth Keyboard with Numpad, Easy Connectivity, Compact Wireless Keyboard Made with Recycled Plastic, Spill-Resistant, Comfortable Keys - Windows/MacOS - Graphite

Logitech K400 Plus Wireless Touch TV Keyboard With Easy Media Control and Built-in Touchpad, HTPC Keyboard for PC-connected TV, Windows, Android, Chrome OS, Laptop, Tablet - Black

Lemorele Docking Station Dual Monitor, 6 in 1 USB C Hub Multiport Adapter w/2 HDMI 4K, 5Gbps USB3.0 & 2 USB2.0, 100W PD Charging - USB C Dock for Laptop Dell/HP/MacBook/Surface - Plug and Play

USB C Docking Station Dual Monitor for Dell Hp,15-in-1 Laptop Docking Station 3 Monitors USB C Hub with Dual 4K HDMI,8K DP,Button,PD Charging,Ethernet,6 USB A&C,SD/TF, Audio USB-C Multiport Adapter

Selore USB C Docking Station for Laptop Dual HDMI Monitor, 8 in 1 Triple 4K Docking Station 4 Monitors Adapter,VGA,100W PD,2USB A 2.0,USB C 2.0 USB C Hub for MacBook HP Dell Lenovo

Lemorele 10 in 1 USB C Docking Station Dual Monitor, Laptop Dock USB C Hub Multiport Adapter Triple Monitor W/2 HDMI 4K, VGA, 3 USB 3.0/2.0, PD, SD/TF, 3.5MM Audio for Lenovo, Surface, MacBook

Logitech G203 Wired Gaming Mouse, 8,000 DPI, Rainbow Optical Effect LIGHTSYNC RGB, 6 Programmable Buttons, On-Board Memory, Screen Mapping, PC/Mac Computer and Laptop Compatible - Black

Logitech G305 LIGHTSPEED Wireless Gaming Mouse, Hero 12K Sensor, 12,000 DPI, Lightweight, 6 Programmable Buttons, 250h Battery Life, On-Board Memory, PC/Mac - Black

Logitech G502 HERO High Performance Wired Gaming Mouse, HERO 25K Sensor, 25,600 DPI, RGB, Adjustable Weights, 11 Programmable Buttons, On-Board Memory, PC / Mac, Black

Logitech M185 Wireless Mouse, 2.4GHz with USB Mini Receiver, 12-Month Battery Life, 1000 DPI Optical Tracking, Ambidextrous, Compatible with PC, Mac, Laptop - Black

Dell UltraSharp 24 Monitor - U2424H

Dell UltraSharp U2723QE 27" 4K UHD WLED LCD Monitor - 16:9 - Black, Silver EPEAT

Dell UltraSharp U2725QE 27' 4K Thunderbolt-Hub-Monitor mit Bildwiederholfrequenz Von 120Hz
![SAMSUNG T9 4TB Portable SSD, USB 3.2 Gen. 2x2, Black, Upto 2000MB/s Read Speed - MU-PG4T0B/AM [Canada Version]](https://m.media-amazon.com/images/I/71EESd1deTL._AC_UL960_FMwebp_QL65_.jpg)
SAMSUNG T9 4TB Portable SSD, USB 3.2 Gen. 2x2, Black, Upto 2000MB/s Read Speed - MU-PG4T0B/AM [Canada Version]
![SAMSUNG T7 4TB, Portable SSD, Grey, up to 1050MB/s, USB 3.2 Gen2, Gaming, Students & Professionals, External Solid State Drive (MU-PC4T0T/AM), Grey [Canada Version]](https://m.media-amazon.com/images/I/91YfRIy7kYL._AC_UL960_FMwebp_QL65_.jpg)
SAMSUNG T7 4TB, Portable SSD, Grey, up to 1050MB/s, USB 3.2 Gen2, Gaming, Students & Professionals, External Solid State Drive (MU-PC4T0T/AM), Grey [Canada Version]
![SAMSUNG 990 PRO SSD 4TB PCIe Gen4 NVMe M.2 Internal Solid State Hard Drive, Up to 7,450MB/s, Heat Control, Direct Storage and Memory Expansion, MZ-V9P4T0B/AM [Canada Version]](https://m.media-amazon.com/images/I/81WuG6lQuDL._AC_UL960_FMwebp_QL65_.jpg)
SAMSUNG 990 PRO SSD 4TB PCIe Gen4 NVMe M.2 Internal Solid State Hard Drive, Up to 7,450MB/s, Heat Control, Direct Storage and Memory Expansion, MZ-V9P4T0B/AM [Canada Version]
![SAMSUNG 870 EVO SATA SSD 500GB 2.5” Internal Solid State Drive, Upgrade PC or Laptop Memory and Storage for IT Pros, Creators, Everyday Users, MZ-77E500B/AM [Canada Version]](https://m.media-amazon.com/images/I/911ujeCkGfL._AC_UL960_FMwebp_QL65_.jpg)
SAMSUNG 870 EVO SATA SSD 500GB 2.5” Internal Solid State Drive, Upgrade PC or Laptop Memory and Storage for IT Pros, Creators, Everyday Users, MZ-77E500B/AM [Canada Version]

10.1 Inch Touch Portable Monitor IPS Screen 1366x768P 60Hz 400 Brightness 99% sRGB HDMI USB-C Monitors Switch for Xbox PS3/4/5 Laptop Compatible with Raspberry Pi, Mini Touch Screen

ELECROW 8 Inch Portable Monitor, 1280x800 Mini HD Display with Built-in Speakers, USB Powered, Non-Touch LCD Screen for Raspberry Pi, PC, Laptop, Jetson Nano, Game Consoles

7 Inch Portable Monitor Touchscreen HD 1024x600 LED Display Dual HDMI Port Small Monitor for PC Raspberry Pi Laptop Computer Xbox PS4/5 Switch Built-in Speakers







![How to build your own learning path using Open Source with Kunal Kushwaha [Podcast #200]](https://imgz.pc97.com/?width=500&fit=cover&image=https://i.ytimg.com/vi/VgBQ0yBSjfM/hqdefault.jpg)
![Harvard CS50 prof David J. Malan on why you should learn programming slowly [Podcast #197]](https://imgz.pc97.com/?width=500&fit=cover&image=https://i.ytimg.com/vi/ZK6XWSCCgPQ/hqdefault.jpg)








![How to turn Open Source into a Job with Nick Taylor [Podcast #181]](https://imgz.pc97.com/?width=500&fit=cover&image=https://i.ytimg.com/vi/m7nkioXNiik/hqdefault.jpg)

![Google Cloud Associate Cloud Engineer Course [2025] - Pass the Exam!](https://imgz.pc97.com/?width=500&fit=cover&image=https://i.ytimg.com/vi/OlAmyf8_4O4/hqdefault.jpg)



![How to Survive in Tech When Everything's Changing w/ 21-year Veteran Dev Joe Attardi [Podcast #174]](https://imgz.pc97.com/?width=500&fit=cover&image=https://i.ytimg.com/vi/07NdHM6pE6M/hqdefault.jpg)


![Getting a developer job in 2025 with Lane Wagner [Podcast #157]](https://imgz.pc97.com/?width=500&fit=cover&image=https://i.ytimg.com/vi/wjj2gZbcoNw/hqdefault.jpg)










![AI is Overrated – Why ThePrimeagen Ripped Out GitHub Copilot From His Code Editor [Podcast #124]](https://imgz.pc97.com/?width=500&fit=cover&image=https://i.ytimg.com/vi/SuWKCv3ewXw/hqdefault.jpg)
