Skip to content

3rdflr/youtube_clone

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

53 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐ŸŽฅ Bound

A Minimalist YouTube Clone with Limited Viewing Experience

Node.js, Express, MongoDB, ๊ทธ๋ฆฌ๊ณ  ES6 ๋ฅผ ์ด์šฉํ•œ 10๊ฐœ์˜ ์˜์ƒ์„ ๋ณด๋ฉด ์˜์ƒ์ด ์ž๋™์œผ๋กœ ์‚ญ์ œ๋˜๋Š” โ€œํ•œ์ •๋œ ์˜์ƒ ๊ณต์œ  ํ”Œ๋žซํผโ€

๐Ÿ”— Live Demo: youtube-clone-bound-2025.fly.dev


๐Ÿ“– Table of Contents


๐Ÿ–ผ๏ธ Preview

๐Ÿ–ผ๏ธ Watch Preview

landing page

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2025-10-28 แ„‹แ…ฉแ„Œแ…ฅแ†ซ 11 45 07

/videos

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2025-10-28 แ„‹แ…ฉแ„Œแ…ฅแ†ซ 11 49 23 videos ์ƒ์„ธ ๋ฐ ๋Œ“๊ธ€ แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2025-10-28 แ„‹แ…ฉแ„’แ…ฎ 4 27 31

/videos/upload

youtube-clone-bound-2025 fly dev_videos_upload

/videos/{video_num}/edit

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2025-10-28 แ„‹แ…ฉแ„’แ…ฎ 4 29 50

/users

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2025-10-28 แ„‹แ…ฉแ„’แ…ฎ 4 31 03

/users/edit

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2025-10-28 แ„‹แ…ฉแ„’แ…ฎ 4 31 51

๐Ÿ“š ํ”„๋กœ์ ํŠธ ๊ฐœ์š”

Bound๋Š” ๋‹จ์ˆœํ•œ ์œ ํŠœ๋ธŒ ํด๋ก ํ˜•ํƒœ๋ฅผ ๋„˜์–ด, ์‹œ์ฒญ ์ œํ•œ์ด ์žˆ๋Š” ์ƒˆ๋กœ์šด ํ˜•ํƒœ์˜ ์˜์ƒ ๊ณต์œ  ํ”Œ๋žซํผ์„ ๋ชฉํ‘œ๋กœ ํ•ฉ๋‹ˆ๋‹ค.
์‹œ์ฒญ์ž๊ฐ€ 10๊ฐœ์˜ ์˜์ƒ์„ ๋ณด๋ฉด ํ•ด๋‹น ์˜์ƒ์ด ์ž๋™ ์‚ญ์ œ๋˜๋ฉฐ,
โ€œํ•œ์ •๋œ ์ฝ˜ํ…์ธ  ๊ฒฝํ—˜โ€์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.


๐Ÿง  ์ œ์ž‘ ๋™๊ธฐ

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์— ๋Œ€ํ•œ ์ดํ•ด๋„ ํ™•์žฅ๊ณผ
์ง์ ‘์ ์ธ ํ’€์Šคํƒ ๊ฐœ๋ฐœ ๊ฒฝํ—˜์„ ๋ชฉํ‘œ๋กœ ์‹œ์ž‘ํ•œ ํ”„๋กœ์ ํŠธ์ž…๋‹ˆ๋‹ค.
๋ผ์šฐํŒ…, ์„ธ์…˜ ๊ด€๋ฆฌ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ชจ๋ธ๋ง์„ ์ง์ ‘ ๊ตฌํ˜„ํ•˜๋ฉฐ
์„œ๋ฒ„ ์‚ฌ์ด๋“œ ๋กœ์ง์˜ ํ๋ฆ„์„ ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.


โš™๏ธ ๊ธฐ์ˆ  ์Šคํƒ

๐Ÿงฉ Backend

NodeJS Express MongoDB Mongoose AWS S3

๐Ÿ’… Frontend

Pug Sass

๐Ÿงฐ Dev Tools

Webpack Babel Nodemon Prettier


๐Ÿ’ก ์ฃผ์š” ๊ธฐ๋Šฅ

๊ธฐ๋Šฅ ์„ค๋ช…
๐Ÿ”‘ ๋กœ๊ทธ์ธ / ํšŒ์›๊ฐ€์ž… ์ผ๋ฐ˜ ๊ณ„์ • + GitHub OAuth ๋กœ๊ทธ์ธ ์ง€์›
๐ŸŽฅ ์˜์ƒ ์—…๋กœ๋“œ ๋กœ์ปฌ ์—…๋กœ๋“œ ๋ฐ ์นด๋ฉ”๋ผ ์ดฌ์˜ ๊ธฐ๋Šฅ
๐Ÿ” ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ ์˜์ƒ ์ œ๋ชฉ ๊ธฐ๋ฐ˜ ๊ฒ€์ƒ‰
โณ ์ž๋™ ์‚ญ์ œ ์‹œ์Šคํ…œ ์˜์ƒ์ด 10ํšŒ ์ด์ƒ ์‹œ์ฒญ๋˜๋ฉด ์ž๋™ ์‚ญ์ œ
๐Ÿ‘ค ํ”„๋กœํ•„ ๊ด€๋ฆฌ โ€œBoundโ€๋œ ์‹œ์ฒญ ํšŸ์ˆ˜ ๋ฐ ์—…๋กœ๋“œ ๋‚ด์—ญ ํ™•์ธ
๐Ÿ’ฌ ๋Œ“๊ธ€ ๊ธฐ๋Šฅ ์˜์ƒ๋ณ„ ๋Œ“๊ธ€ ์ž‘์„ฑ ๋ฐ ์‚ญ์ œ ๊ฐ€๋Šฅ

๐Ÿงฉ ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ

src/
โ”œโ”€โ”€ server.js         # Express ์„œ๋ฒ„ ์„ค์ • ๋ฐ ์‹คํ–‰
โ”œโ”€โ”€ routers/          # ๋ผ์šฐํŒ… ๋กœ์ง (root, user, video, api)
โ”‚   โ”œโ”€โ”€ rootRouter.js
โ”‚   โ”œโ”€โ”€ userRouter.js
โ”‚   โ”œโ”€โ”€ videoRouter.js
โ”‚   โ””โ”€โ”€ apiRouter.js
โ”œโ”€โ”€ controllers/      # ์š”์ฒญ ์ฒ˜๋ฆฌ ๋กœ์ง (๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง)
โ”‚   โ”œโ”€โ”€ userController.js
โ”‚   โ””โ”€โ”€ videoController.js
โ”œโ”€โ”€ models/           # Mongoose ์Šคํ‚ค๋งˆ ์ •์˜
โ”œโ”€โ”€ views/            # Pug ํ…œํ”Œ๋ฆฟ ํŒŒ์ผ
โ”œโ”€โ”€ middlewares.js    # ์ธ์ฆ / ์—…๋กœ๋“œ ๋“ฑ ๊ณตํ†ต ๋ฏธ๋“ค์›จ์–ด
โ””โ”€โ”€ assets/           # ์ •์  ํŒŒ์ผ (CSS, JS, ์ด๋ฏธ์ง€)

๐Ÿ—๏ธ ์•„ํ‚คํ…์ฒ˜ ๊ฐœ์š” (MVC)

Model โ€” ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ (MongoDB, Mongoose)
View โ€” UI ๋ Œ๋”๋ง (Pug)
Controller โ€” ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ์ฒ˜๋ฆฌ
Router โ€” URL ๊ฒฝ๋กœ ๋ถ„๋ฆฌ ๋ฐ Controller ํ˜ธ์ถœ

๐Ÿ”„ ๋ฐ์ดํ„ฐ ํ๋ฆ„

Client Request
  โ†“
Middleware (session, morgan, auth ๋“ฑ)
  โ†“
Router (userRouter / videoRouter ๋“ฑ)
  โ†“
Controller (๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ์ฒ˜๋ฆฌ)
  โ†“
Model (DB ์กฐํšŒ ๋ฐ ์ˆ˜์ •)
  โ†“
Controller โ†’ View (Pug ๋ Œ๋”๋ง)
  โ†“
Client Response

About

Youtube Clone built using NodeJS, Express, Mongo, and ES6

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published