Create a Video Membership Web App from Scratch with Python, NoSQL, & FastAPI

Поділитися
Вставка
  • Опубліковано 15 вер 2024

КОМЕНТАРІ • 118

  • @CodingEntrepreneurs
    @CodingEntrepreneurs  2 роки тому +10

    Let's do this!
    Code: github.com/codingforentrepreneurs/video-membership
    Chapters
    00:00:00 Welcome
    00:05:27 Requirements
    00:06:51 Setup VSCode & Python Virtual Environment
    00:12:12 Hello World with FastAPI
    00:18:58 Picking a Database
    00:24:56 Create our NoSQL Database with AstraDB
    00:27:48 Basic AstraDB Configuration for FastAPI
    00:35:54 Configuration & Environment Variables
    00:43:30 Create our User model with Python & Cassandra
    00:51:08 Sync Cassandra Tabels via FastAPI On Startup
    00:58:40 Create a user via shell
    01:02:05 List Stored Values on API Endpoint
    01:05:15 User Create Method & Email Validation
    01:13:12 Security & Password Hashing
    01:22:45 Interactive Notebook to Analyze New Features
    01:32:18 Automated Tests
    01:50:25 Jinja Templates to Render HTML
    02:00:00 Jinja Template Inheritance & More
    02:06:44 FastAPI Forms FastAPI Login & Sign Up Forms
    02:15:16 User Data Validation with pydantic
    02:26:10 Implement pydantic Data Validation
    02:35:44 Pydantic Valid Data or Error Method
    02:44:06 Experiment with JWT Tokens
    02:58:02 Implement Auth Methods for JWT Tokens
    03:07:53 Shortcut Method for Rendering Jinja Templates
    03:19:53 Using Cookies & httponly within FastAPI
    03:27:54 Login & Set JWT
    03:37:09 Redirect Shortcut
    03:41:53 Login Required Decorator
    03:52:36 Render a template for HTTP Errors
    04:04:24 Authentication Middleware Backend
    04:20:50 Video Model
    04:27:57 UA-cam Video ID Extraction
    04:35:17 Notebook to Verify Video Add Feature
    04:41:51 Custom Exception Classes for Videos
    04:46:21 Routers for Sub Modules in FastAPI
    04:52:51 Video Create Schema
    05:02:59 Video Create View
    05:06:00 Video Create View Form
    05:18:52 Video List View & Title Field
    05:29:43 Dynamic URL Routing & Video Detail View
    05:40:50 Render Video on Detail Page
    05:46:56 The UA-cam JavaScript Player
    06:34:13 Video Watch Events Endpoint in FastAPI
    06:45:17 Watch Event Model
    06:55:30 Drop Table from Cassandra Database via Notebook
    07:03:45 More Watch Event Data
    07:09:24 Pydantic Model for Watch Event Data
    07:17:40 Watch Event Router
    07:22:32 Get Video Resume Time
    07:30:07 Playlist Model & Cassandra List Column
    07:34:42 Playlist Tests in Notebooks
    07:45:25 Playlist Routing & Templates
    07:55:36 HTMX, FastAPI, & Jinja
    08:04:07 Use HTMX to Handle Form Data
    08:16:36 Get or Create Video for Playlists
    08:24:49 Playlist Routers for Handling Video Additions
    08:37:23 Playlist Video Schema
    08:48:58 Remove Playlist Item via HTMX
    09:01:13 Edit or Remove Video
    09:11:04 Edit or Remove Video via HTMX
    09:27:16 Add Bootstrap & Improve Usability
    10:07:19 Login Required HTMX Redirect Header
    10:11:10 Logout View
    10:18:58 Prepare our Search Index
    10:33:00 Implement Algolia Client & API
    10:41:43 Update Search Index
    10:49:46 Search View & Update Index Method
    11:03:25 Thank you and next steps

  • @NiM44
    @NiM44 2 роки тому +11

    Guys believe me is super hard to create 11-hour video with editing in single video ! +++ great course

  • @tanjimulislam4762
    @tanjimulislam4762 2 роки тому +16

    I am Very thankful to you as you brought another brand new complete tutorial on FastAPI. I recently got an intern job as a backend developer. I cannot deny your contribution behind my skills growing. Still I am gradually learning from you master.

  • @baridzimaximillem6743
    @baridzimaximillem6743 2 роки тому +4

    I wrote myself django code following your django for begginners full course, and I went on to follow your blog tutorials in the first year and today I am a where I am as a developer and thank you to the role you played with your selfless hardwork in helping me when I was curious and yet lacking a clue how its done

  • @danielkamau8436
    @danielkamau8436 2 роки тому +3

    I have grown so much from your content, a newbie who changed career from journalism to tech, I have so much I have collected from you, this far wah!!! May Allah bless You abundantly...

  • @OloNadTrolo
    @OloNadTrolo 2 роки тому +6

    I'm 2 hours in, but this astoundingly good and just what I needed - step by step, start to finish development of a web app. I have an idea for a web app, but I have no clue how to approach some obstacles and hopefully going through a complete project will serve as a guidance of sorts. My background in coding is using Python for data analysis, so lots of useful nuggets thus far for me.

  • @professionalfacepuncher8361
    @professionalfacepuncher8361 2 роки тому +4

    hey Justin , thanks for the tutorial, i just want to thank you that i got a good paying job right after graduation because i used your django videos to build my fundamentals

  • @janirico5641
    @janirico5641 2 роки тому +28

    would love to see a Django version of this great project.

    • @CodingEntrepreneurs
      @CodingEntrepreneurs  2 роки тому +32

      Who else? Please comment on this thread 👇

    • @cyber-paddle
      @cyber-paddle 2 роки тому +6

      God bless Django! Django saves us from all these manual sunrises and sunsets!

    • @usaava
      @usaava 2 роки тому +2

      @@CodingEntrepreneurs Me

    • @thecodinghotel1791
      @thecodinghotel1791 2 роки тому +1

      @@CodingEntrepreneurs meeeeee

    • @CanBerbeer
      @CanBerbeer 2 роки тому

      @@CodingEntrepreneurs meee 🙂

  • @LilituLitu
    @LilituLitu 2 роки тому +1

    Just started, but can already tell I am going to learn a lot. Thanks for the guide!

  • @vladimirbern3138
    @vladimirbern3138 2 роки тому +5

    You are absolute stars! Wonder if you could do LMS(Learning Management System), I couldn't find a single end-to-end tutorial on this, so you might be able to uncover the uncovered topic.

  • @amitavasengupta5580
    @amitavasengupta5580 7 місяців тому +1

    Watched it in one go this sunday😂 way better than any weekend stupid plans

  • @TheAremoh
    @TheAremoh 2 роки тому

    FastAPI multi tenant application.
    I've really learnt from this channel. Thank you Justin

  • @anthonydattolo6297
    @anthonydattolo6297 2 роки тому +2

    It’d be really valuable to get your expert breakdown of pros and cons between DRF and FastAPI now that you’ve dove into fastAPI more

    • @cyber-paddle
      @cyber-paddle 2 роки тому +2

      DRF pros:
      - has all that Django has (all these batteries)
      DRF cons:
      - has all that Django has (all these batteries) - might be too heavy
      - async support is still on its way
      FastAPI pros:
      - Fast (async by design)
      - batteries are not included - lightweight
      FastAPI cons:
      - batteries are not included - you need to reinvent the wheel
      Ну как-то так...

  • @Noritoshi-r8m
    @Noritoshi-r8m 2 роки тому +1

    What a Christmas gift, WOW!!!!! Thank you sir for your knowledge, will try this.

  • @steliosioannides7128
    @steliosioannides7128 2 роки тому +2

    thank you so much Justin !
    your work is invaluable, helping us to get better and better.
    you are the absolute Django rock star ! !

  • @ai.201
    @ai.201 2 роки тому +1

    I remember you created twitter like app and now this, damn you genius af.

  • @minnami778
    @minnami778 2 роки тому +1

    Omg 11 Hours. Thank u very much. I wish u a merry Christmas n a happy new year 🥂🍾❣️

  • @TheAremoh
    @TheAremoh 2 роки тому +4

    What a gift for Xmas.
    Great tutorial as always

  • @impfect
    @impfect Рік тому +1

    Awesome in-depth and well-explained tutorial!

  • @abrahamngetich1415
    @abrahamngetich1415 2 роки тому +1

    Thank CFE for another great tutorial. It's a happy new year and a great journey into FastAPI with you. God bless!

  • @aloudiakite1217
    @aloudiakite1217 2 роки тому +2

    The best tutorial of the year

  • @renancatan
    @renancatan 2 роки тому

    stunning content, and yet for free, unbelievable!!
    Learning a lot, thanks for existing :)
    ~still 2 hours in it, cant wait to get the full content..

  • @bumblebee2012able
    @bumblebee2012able 2 роки тому +2

    Amazing as always, thanks for all of your time so far

  • @tariq.rashid
    @tariq.rashid Рік тому

    for autoplay you need to put in muted as well, then it will work

  • @smartchandan4879
    @smartchandan4879 2 роки тому

    The way you explain is mind blowing :)

  • @darkspirit4531
    @darkspirit4531 11 місяців тому +1

    are we going to use any kind of API?
    if yes is it free

  • @princewillinyang5993
    @princewillinyang5993 Рік тому +1

    Hello Justin, I'm trying to write unit test. I'm having challenges mocking the database and altering the keyspace name to enhance testing.
    Any help pls???

  • @mit8392
    @mit8392 9 місяців тому

    A want to make a membership website when users can add thier city coures regestred in and people can search people in same course or city how can do this i am stuck help you said if you have question Ask it

  • @musasibuyi4765
    @musasibuyi4765 2 роки тому

    Loved this. Subscribed. looking forward to more. Thank you

  • @letslearntogether8438
    @letslearntogether8438 2 роки тому +1

    Finally the face of the great voice... Rocks....

  • @harshAmiya
    @harshAmiya Рік тому +1

    how about a payment gateway?

  • @excels6277
    @excels6277 Рік тому

    Thank you very much! I've learned a lot!

  • @amarnathreddysurapureddy9111
    @amarnathreddysurapureddy9111 2 роки тому

    Hi sir,
    How to avoid __pycache__
    While running code it will give previous values
    Please help me

  • @andriodenavarrete4495
    @andriodenavarrete4495 2 роки тому +1

    Django version please! :)

  • @andriodenavarrete4495
    @andriodenavarrete4495 2 роки тому

    Im trying to save the video time to resume it when te client is back but in django, does anyone knows how to do that? Thank you in advance :)

  • @soufianebenyaala9206
    @soufianebenyaala9206 2 роки тому

    why did you use NoSQL in this project?

  • @Al-mougheer-Al-cyberany
    @Al-mougheer-Al-cyberany 2 роки тому +1

    I would like to see how to make a project using ssh

  • @sumanbanik3339
    @sumanbanik3339 2 роки тому

    First of all thank you so much for the video, for a self learner like me this content is pure gold.
    I was having an error while creating the user in the terminal, the error says "Connection name '' doesn't exist in the registry."
    Would really appreciate if someone helps me out..

  • @maxfrischdev
    @maxfrischdev Рік тому

    This one is still way over my Head.. BUT Already thank you for the huge Tutorial and .. See you in a bit! (okey, so what was a variable again..? haha jk) .. learning..

  • @terry.chootiyaa
    @terry.chootiyaa 2 роки тому +3

    *Hey buddy were are you these days ?....no new videos* 😐

  • @RohitSaini52945
    @RohitSaini52945 Рік тому

    Wow this is something great. Thanks a lot

  • @rcampbellnc
    @rcampbellnc 2 роки тому

    Project notes
    2:45:31 - here, my 'from jose import jwt' failed to import with an error 'unknown module jose' - when i did a 'pip install pyjwt', then the import worked.

    • @rcampbellnc
      @rcampbellnc 2 роки тому

      2:51:16 - passing in 'expires' but the timedelta is still using the expires_after (set to 10) - and yeah, I do SW QA for a living 🙂

    • @rcampbellnc
      @rcampbellnc 2 роки тому

      And he catches it at 3:01:25!

  • @green_universe
    @green_universe 2 роки тому

    Great Video 🤗. Thank You.

  • @AbhishekVerma-fe3wo
    @AbhishekVerma-fe3wo 2 роки тому

    Thank you so much for this tutorial

  • @jkmaciel
    @jkmaciel Рік тому

    Thank you!

  • @Al-mougheer-Al-cyberany
    @Al-mougheer-Al-cyberany 2 роки тому

    Thank u for this amazing work really amazing

  • @gambomaster
    @gambomaster 2 роки тому +1

    Thanks. 🙏

  • @Al-mougheer-Al-cyberany
    @Al-mougheer-Al-cyberany 2 роки тому

    Could you made a progressive web app with python as I think it is the future

  • @ravikumarreddy3773
    @ravikumarreddy3773 2 роки тому

    Thank you so much 😊

  • @pitchhome48
    @pitchhome48 Рік тому +1

    Thanks

  • @The_ProBoys
    @The_ProBoys Рік тому

    Django version please

  • @abdullashafi580
    @abdullashafi580 2 роки тому

    You are my Boss ☺️

  • @meylyssa3666
    @meylyssa3666 2 роки тому

    Would be nice to see MongoDB series

  • @sandykurnia7150
    @sandykurnia7150 2 роки тому +1

    Finally, thank you

  • @محمدعبدالرحيم-ر3ص9م
    @محمدعبدالرحيم-ر3ص9م 2 роки тому +1

    Watching

  • @ardabili
    @ardabili 2 роки тому

    Unbelievable 🥰🤩

  • @techworld3043
    @techworld3043 2 роки тому +1

    Killer content

  • @farazahmed1668
    @farazahmed1668 2 роки тому

    Love you bro

  • @EmptyNonsens
    @EmptyNonsens 2 роки тому

    this is crazy

  • @amazing-graceolutomilayo5041
    @amazing-graceolutomilayo5041 2 роки тому +1

    GOAT

  • @devkantthefullstackguy
    @devkantthefullstackguy 2 роки тому +2

    Damn

  • @masterdrop
    @masterdrop 2 роки тому +1

    wow

  • @vishwanath-ts
    @vishwanath-ts 2 роки тому +2

    You're a fucking legend

  • @paremkumar4802
    @paremkumar4802 2 роки тому

    Prem

  • @streamocu2929
    @streamocu2929 Рік тому

    please more fastapi tutorials, maybe make one premium course with stripe, social login, htmx and I pay 195$ ❤

  • @migs_dotcom
    @migs_dotcom День тому

    I am okay with this tutorial but why not Django?

  • @aarifhussain9751
    @aarifhussain9751 Рік тому

    AnyOne Help
    File "C:\Users\arif\VideoDelta\app\main.py", line 69, in login_post_view
    File "pydantic\main.py", line 339, in pydantic.main.BaseModel.__init__
    File "pydantic\main.py", line 1102, in pydantic.main.validate_model
    File "C:\Users\arif\VideoDelta\app\users\schemas.py", line 25, in validate_user
    user_obj = auth.authenticate(email, password)
    File "C:\Users\arif\VideoDelta\app\users\auth.py", line 14, in authenticate
    if not user_obj.verify_password(password):
    AttributeError: 'NoneType' object has no attribute 'verify_password'