Full Stack Ecommerce Store With Admin Dashboard From Scratch - Next.js, Prisma, Stripe, Tailwind

Поделиться
HTML-код
  • Опубликовано: 14 июн 2024
  • Join the Slack Developer Program for exclusive access to beta features, sandboxes, resources, and more: api.slack.com/developer-progr...
    Next.js Simplified Course: reactsimplified.com/#next-js-...
    Creating an ecommerce site is not easy. There are so many different things that go into even a simple ecommerce site from an admin dashboard, to payment processing, to account management, and so much more. In this video I will go through everything you need to do in order to get up and running with your very first ecommerce shop entirely from scratch with Next.js, Tailwind, Prisma, and TypeScript.
    📚 Materials/References:
    Next.js Simplified Course: reactsimplified.com/#next-js-...
    GitHub Code: github.com/WebDevSimplified/n...
    Intl Number Formatter Video: • Formatting Is So Easy ...
    Zod Crash Course Video: • Learn Zod In 30 Minutes
    Next.js Caching Article: blog.webdevsimplified.com/202...
    🌎 Find Me Here:
    My Blog: blog.webdevsimplified.com
    My Courses: courses.webdevsimplified.com
    Patreon: / webdevsimplified
    Twitter: / devsimplified
    Discord: / discord
    GitHub: github.com/WebDevSimplified
    CodePen: codepen.io/WebDevSimplified
    ⏱️ Timestamps:
    00:00:00 - Introduction
    00:00:52 - Sponsor
    00:02:10 - Database Setup
    00:12:05 - Admin Dashboard Page
    00:37:24 - Admin Product Pages
    01:34:36 - Admin Authentication
    01:45:22 - Customer Home Page
    02:00:58 - Customer Products Page
    02:03:32 - Next.js Caching
    02:10:08 - Customer Product Purchase Page
    03:02:28 - Admin Customers Page
    03:04:18 - Admin Sales Page
    03:06:48 - Purchase Receipt Email
    03:24:38 - Customer My Orders Page
    #Ecommerce #WDS #NextJS

Комментарии • 282

  • @WebDevSimplified
    @WebDevSimplified  2 месяца назад +18

    Join the Slack Developer Program for exclusive access to beta features, sandboxes, resources, and more: api.slack.com/developer-program?AMER_US_EN_Q1_SLKAW_Developer_Program_Web_Dev_Simplified&

  • @anhqui19822011
    @anhqui19822011 2 месяца назад +26

    I've been looking for this project for a long time. Thank Kyle for awesome project!

  • @violinsheetmusicblog
    @violinsheetmusicblog Месяц назад +17

    This video omits a lot of details for those just starting out, but it's great for those who already have worked with most of these tools in the past. Thanks!

    • @bencipherx
      @bencipherx 5 дней назад

      Thank you for your feedback which I find useful. Please can you highlight what he omitted so I can review them or suggest an alternative prerequisite video.
      I have never seen or used next before but i learnt its like Django which I am very used to. I also have experience with ExprezsJS and React

  • @ahmedyasser5058
    @ahmedyasser5058 2 месяца назад +16

    We've been waiting for something like this so long bro thanks for everything you do on the channel ♥

  • @MrCuteguylol
    @MrCuteguylol 2 месяца назад +14

    Thank GOD. I have a Next JS project in my job and your video came up. Damn.

  • @themks8452
    @themks8452 2 месяца назад +11

    this is going to be the best video on this channel

  • @anirudhnomula2942
    @anirudhnomula2942 Месяц назад +1

    A wholesome project with almost a lot of best practices covered , definetly recommend to watch this ❤

  • @AgustinAstronomy
    @AgustinAstronomy 2 месяца назад +4

    thanks for this amazing video. So many key concepts are covered here, like redirects from api route to pages, prisma, server actions. Thanks!

  • @user-fx8vu1bf6p
    @user-fx8vu1bf6p 25 дней назад +2

    Thank you Kyle. Much Appreciated. I'm an hour into the tutorial and i must say, "I'm learning some real full stack here".

  • @whitewalker19
    @whitewalker19 2 месяца назад +4

    man mad respect..this is what I was searching for

  • @anand_dudi
    @anand_dudi Месяц назад +2

    This is most useful tutorial on nextjs i have ever seen as senior react node developer

  • @7doors847
    @7doors847 2 месяца назад +3

    This looks like a fun project. Looking forward to it. Thanks!

  • @andrewtcoder
    @andrewtcoder 2 месяца назад +2

    Amazing video!!! Thank you so much! You're the best teacher!!!!

  • @EcomCarl
    @EcomCarl Месяц назад +1

    Incredible tutorial on building an efficient eCommerce site with minimal code! Leveraging tools like Next.js and Prisma not only streamlines development but also enhances scalability and maintenance 👍.

  • @thabosiphiwemngoma1859
    @thabosiphiwemngoma1859 2 месяца назад +1

    About time. Thank you for this. Now you should try other backends like python. Your breakdowns are amazing

  • @the__jive
    @the__jive 2 месяца назад +8

    Thank you very much Kyle! I learned a lot from this video, ❤.

  • @telur_ramen
    @telur_ramen 2 месяца назад

    thank you so much for this amazing course!

  • @lenaggar
    @lenaggar 2 месяца назад +2

    I really admire your speed from thought to implementation and iteratively moving forward while not spending too much time considering different options in each crossroads you hit
    I usually get stuck on these mini decisions along the way while working. Perfectionism harms my velocity quite a lot!
    Maybe you can talk about how you manage the need for perfectionism! (if you do face it of course 😅)

  • @404-not-found-service
    @404-not-found-service 2 месяца назад

    Thank you very much for the video, this type of content is appreciated.

  • @nasa-eemadadam2213
    @nasa-eemadadam2213 2 месяца назад +1

    Awesome tutorial 😁 need more nextjs project 😊😊😊

  • @user-ru8hn9hb5c
    @user-ru8hn9hb5c 2 месяца назад

    You are one of the best on RUclips

  • @jrom_ai
    @jrom_ai 2 месяца назад +2

    AMAZING tutorial!!!

  • @AlexMarcoDAngelo
    @AlexMarcoDAngelo 6 дней назад +1

    EXELENT! 👍 I wish there was a shopping cart so can purchase multiple products, but of course you intended this to be basic! Do you have any other videos where can be upgraded to a shopping card? ☺

  • @berkayakbey1080
    @berkayakbey1080 Месяц назад +2

    i love the way you shake your head left and right like an aggressive crocodile trying to rip off a flesh from a dear

    • @utku3463
      @utku3463 Месяц назад +1

      haha deme deme ayıp

  • @AliRaza-gr8to
    @AliRaza-gr8to 8 дней назад

    Wow, wow wow excellect. Mater of Everything, Next, React, Typescript, Tailwind, Css, Sass, ..... and with such a Speed. God Bless You. Very Informative..

  • @laduniestu
    @laduniestu 2 месяца назад

    wish you all the besttt 🔥🔥🔥

  • @X-razcal-X
    @X-razcal-X 2 месяца назад

    Great video. Thank you 🎉

  • @raphauy
    @raphauy Месяц назад

    Awesome!!! Thank you very much!!!

  • @jmgutierrez962
    @jmgutierrez962 2 месяца назад +1

    Thank You sir..This is really really helpful..

  • @AlexanderMihailov-tx8pk
    @AlexanderMihailov-tx8pk 2 месяца назад

    thats amazing! Thank you

  • @joel-rg8xm
    @joel-rg8xm 2 месяца назад +1

    Gem video to bookmark, thx

  • @floriangogea9712
    @floriangogea9712 2 месяца назад

    Thanks a lot! You're so kind...

  • @justinhoward6384
    @justinhoward6384 2 месяца назад +2

    Kyle drops another hit

  • @MrGunshippilot
    @MrGunshippilot 2 месяца назад

    Great content!
    Thank you very much for doing this.
    How would you perform client-side validation, e.g. similar to react-hook-form?

  • @joelmason6818
    @joelmason6818 2 месяца назад

    Something I would greatly appreciate is that you create another version of this for solid items shipped with a popular shipping calculator included. Thus would be cool and would help plenty of people selling actual items vs. digital downloads. Thx in advance!

  • @artemonstrick
    @artemonstrick 2 месяца назад

    WOW ALMOST 4 HOURS OF MY FAVORITE WOBBLY HEAD TALKING! WOHOOOOOOOO!1111

  • @kiliansprotte6592
    @kiliansprotte6592 Месяц назад

    Great video, thanks! How about making a follow-up video on comparing the different state management approaches with regard to component tests? :) I think this could be an important factor and another way to highlight the differences.

  • @husseinsalim2398
    @husseinsalim2398 2 месяца назад +1

    Sounds great

  • @adejoh6650
    @adejoh6650 2 месяца назад

    This is a great project!!
    Thanks🙏
    You talk as fast as Ben Shapiro...no doubt you would be the Fastest Rapper on Earth if you switch jobs!!!

  • @JediMediator
    @JediMediator 2 месяца назад

    Have you considered doing any tutorials on building some kind of shipping integration? I looked into it recently and found it very intimidating.

  • @Habesha_Today
    @Habesha_Today 2 месяца назад

    Dev please do more videos on Next-js and TypeScript especially on Ecommerce-Site and other complex projects

  • @frontend_ko
    @frontend_ko 2 месяца назад +2

    thanks for really nice video.
    can you create a video for i18n in app router? it's too complicated in app router
    my only concern for this tutorial is that
    the middleware for admin auth was done in dev mode.
    i'm not sure it's gonna really work in production mode because everything is cached by default.

  • @christenw.1726
    @christenw.1726 2 месяца назад

    Thank you ❤

  • @ShadowsPowerFy
    @ShadowsPowerFy Месяц назад

    Thanks a lot!

  • @user-ru8hn9hb5c
    @user-ru8hn9hb5c 2 месяца назад

    When I finish this, I'll try adding product attributes, more fields, etc.

  • @ashil816
    @ashil816 2 месяца назад

    Great content, thank you. Imagine we are planning a React Native app for this shop, utilizing the same API/database. What are the best practices in Next.js 14 for exposing the API to external users? Is it feasible for Next.js 14 to handle both scenarios, or should we opt for a dedicated backend?

  • @asyncrohan
    @asyncrohan 2 месяца назад

    Hey kyle thanks for this one , can you guide us how to improve our css as a full stack dev because we focus on logic more than ui

  • @user-km2qp6un8x
    @user-km2qp6un8x 2 месяца назад

    Hi, thanks for this. Stupid question - any particular reason why you aren't using arrow functions for components, i.e. ?

  • @nelsonyu4112
    @nelsonyu4112 Месяц назад

    Thank you Sir! Really appreciate the time you put into this tutorial, it saved me a lot of time from navigating best practices. I tried the Gen AI tools but they are not doing nearly as well as this because of new paradigms like App Router.

    • @WebDevSimplified
      @WebDevSimplified  Месяц назад +1

      Thank you so much for the support! I am glad I could help.

    • @nelsonyu4112
      @nelsonyu4112 Месяц назад

      ​@WebDevSimplified on top of what you have shown us here, i'd love to see what's the best way to integrate with i18n. The particular part i am exploring is the server side actions where you addProduct or updateProduct, which redirects back to the Product dashboard, wondering what's the cleanest way to retrieve the locale from server side and include in the redirects. Looking forward to your suggestions or another video 😊

    • @WebDevSimplified
      @WebDevSimplified  23 дня назад +1

      Next.js has a bunch of documentation on including i18n in an application. I have considered making a video on i18n, but it is hard since it is something that is very particular to the app you are building.

    • @nelsonyu4112
      @nelsonyu4112 14 дней назад

      I tried a few approaches ended up using paraglide.

  • @Sokoladomeistrai-kq1to
    @Sokoladomeistrai-kq1to Месяц назад

    Thank you!!!

  • @ricardoestrella95
    @ricardoestrella95 2 месяца назад +3

    No hate, just suggestion. I appreciate this video, but just as js mastery, you should also upload that kind of videos, just as this one! Nice video :)

  • @thiagosullivan
    @thiagosullivan 2 месяца назад

    That white Jackson is awesome 🥰

  • @codeconcise365
    @codeconcise365 2 месяца назад

    You might think Kyle is ELISA with his robotic head movement and fast-pace speech

  • @NoIngNames
    @NoIngNames 2 месяца назад +1

    So, am I missing something or upon successful purchase no record is made in Order table of the database?

  • @wilsontomisin9582
    @wilsontomisin9582 2 месяца назад

    Thanks bro🎉🎉🎉

  • @anirudhnomula2942
    @anirudhnomula2942 Месяц назад +2

    wow that was so fast for me , guess im a noob afterall , right now studied and coded almos till 43 min , will take this forward tomorrow , thanks for this video , wanted to start my own ecom site

    • @anirudhnomula2942
      @anirudhnomula2942 Месяц назад +1

      checking in again today , completed till 51:33 , was trying to load till 1:20:00 but it was way too much for me so instead tried coding and ended till 51 min , thank you so much for packing a lot of stuff , i have a newfound respect for u

    • @anirudhnomula2942
      @anirudhnomula2942 Месяц назад

      i tried a lot to complete this in one go from 51 min but ending giving up at 2hr:15min~:, atleast this i coded till that point , alot of things seem more clear when we code it out , thanks again for all ur effort , u really made it simple, true to ur word , gn

    • @anirudhnomula2942
      @anirudhnomula2942 Месяц назад

      Ok today its finally done , i gave up to code along when u started web hooks 🙃 but scanned fro there till the end as it was mostly react email and a bit of same which was done with admin products page but finally i completed this whole video feels so nice to be able to check this of the list

    • @anirudhnomula2942
      @anirudhnomula2942 Месяц назад +1

      So it took me 10 days to actually complete it 😂 and u did it in 4~5 hrs 😮 glad i found this video learnt a lot from this video , really appreciate it from bottom of my heart

  • @lostinthenarrativve
    @lostinthenarrativve 2 месяца назад +3

    Fuuuuck me this is what we've all been waiting for in years

    • @YT-su2sq
      @YT-su2sq 2 месяца назад

      I would love to.

  • @alijalloul122
    @alijalloul122 Месяц назад

    when caching the calls to the db, why not use memo as a simpler way to cache the fetched data till the user either exists the website or manually reloads?

  • @DeaViNG
    @DeaViNG 2 месяца назад

    are there alternatives to stripe I could use if it is not supported in my country?

  • @waelhlali2196
    @waelhlali2196 2 месяца назад

    Great work, can you do it with mern stack, redux and redux toolkit ?

  • @M1a2n3o43
    @M1a2n3o43 2 месяца назад

    hey man while you were making the add new product form, i tried to it my own way using the form component by shadcn just as it says in the docs and it was imposible.i even posted a question in stackoverflow and people had a hard time finding the issue. could you maybe make a video about the proper way to make forms with shadcn with form and react hook form? Would be a gem of a video. thanks anyway great tutorial.

  • @joshuastephenkartes4171
    @joshuastephenkartes4171 Месяц назад +2

    Hey, Kyle! So, I'm not sure this question has been asked yet in the comments. You're using the "use server" directive in /src/app/admin/_actions/products.ts, but then you're using the client-side `File` type in the `fileSchema` validation. I'm not sure if I missed something earlier in the video that would prevent the "File is not defined" error due to referencing `File` in a server component ...?

    • @programmingjobesch7291
      @programmingjobesch7291 Месяц назад

      stuck here as well

    • @devrajchatribin
      @devrajchatribin 11 дней назад

      const fileSchema = (typeof File !== "undefined")
      ? z.instanceof(File, { message: "Required" })
      : z.any(); // Provide a fallback schema or handle appropriately
      Try this out, worked for me

  • @kamanipaul5972
    @kamanipaul5972 23 дня назад

    ❤ love you Kyle

  • @klkiessertggksmsmsjfldd
    @klkiessertggksmsmsjfldd 2 месяца назад +1

    finished this. You should extend this sample with user login, purchases and cart. PEACE

  • @adyreacts5976
    @adyreacts5976 Месяц назад

    Appreciate your granularity, you did not even skip a damn skeleton. Thanks Kyle. A host of topics covered

  • @DarkM0ds
    @DarkM0ds 17 дней назад

    Hi Kyle or anyone,
    do you guys know how to get the billing address to show up with PaymentElement? I have added an AddressElement and it does add the cehckbox that says
    'Billing is same as shipping information'
    but it only gives country and ZIP code. do we not need also the billing address?

  • @pablom8854
    @pablom8854 2 месяца назад +3

    Some relevant timestamps for me
    5:15 price in cents
    9:17 restrict
    9:40 download verification
    12:30 shad config

  • @Nodsaibot
    @Nodsaibot 2 месяца назад

    whats with the PascalCase styling on elements? lol
    also you should try and make your cam 3x smaller when coding

  • @user-se1zm5cz7g
    @user-se1zm5cz7g 7 дней назад

    @WebDevSimplified
    I have a question for if this project can be deployed in AWS Amplify?????
    Thank you for the awesome project! 💯❤

  • @JBUDDTV
    @JBUDDTV Месяц назад

    how do you santize the data before putting into the database ?

  • @jaasielantunes7320
    @jaasielantunes7320 18 дней назад

    The npm run email command is not working in my terminal. Do I need to install any CLI?

  • @vert-vh2wh
    @vert-vh2wh Месяц назад

    @webdev with the picture uploaded is it possible that I can use api that give me the product image if I type product name or sku

  • @allusio
    @allusio 2 месяца назад

    Why you use react caching and next unstable_cache. It is looks like they do the same thing.

  • @vali69
    @vali69 Месяц назад +1

    I decided to just download the project because it's been taking too long to write it while following the video and it just doesn't run... great... I love webdevving Edit: nvm I forgot to run prisma migrate to make the database... I'm such a goof. Now I can toy with this like I originally wanted to

  • @alecdorasandler6690
    @alecdorasandler6690 2 месяца назад +1

    Email service bookmark 2:57:00

  • @beamngdrivepr
    @beamngdrivepr Месяц назад

    Is processing possible to upload a video playlist?

  • @Tanner-cz4bd
    @Tanner-cz4bd 2 месяца назад

    What do you use for auth

  • @siehrichmond7693
    @siehrichmond7693 2 месяца назад

    Hello Walker 🤠, can you add life simplification to your work...🤓.You make it easier

  • @bryandelacruz9066
    @bryandelacruz9066 2 месяца назад

    Hi, may i know what database used in this project? thank you

  • @kenthefley2226
    @kenthefley2226 2 месяца назад

    Is this a production ready app?

  • @nathanbrews9951
    @nathanbrews9951 25 дней назад

    How do I store images Images [ url ]... sizes, colour, quantity etc ...

  • @user-le8kh8cr4n
    @user-le8kh8cr4n 2 месяца назад +2

    well done, can i re-design and deploy for business use ??

  • @ehsanjaved494
    @ehsanjaved494 8 дней назад

    How would you deploy this on a hosting vps site

  • @user-hm1ld3bg3g
    @user-hm1ld3bg3g Месяц назад

    How page loading function works well? It seems that there is no particular code that implements this function but it works well without any states

    • @abdulkerimyalcn3911
      @abdulkerimyalcn3911 Месяц назад

      i agree you. How does loading.tsx work we didin't import it anywhere

  • @huiwang4694
    @huiwang4694 15 дней назад

    could u use nextauth in this course thanks

  • @suntienda5749
    @suntienda5749 24 дня назад

    I need to do a project for school, and it's important to complete it because the teacher got a real client. The client wants a sales page, but nobody knows how to program a web page.

  • @buraxta_
    @buraxta_ 2 месяца назад

    🔥🔥🔥

  • @savindupasintha
    @savindupasintha Месяц назад

    Brother I need to know some thing. I am currently in singapore and no time to do self learning things.
    1. can you tell use to your daily life how going ?
    2. How you manage your time , also you doing job ?

  • @masadamsahid
    @masadamsahid 2 месяца назад

    If you guys using yarn and encounter error ERR_ESM_REQUIRED when running the react-email like bellow:
    [your_nextjs_app_path]/node_modules\ora\index.js:65
    if (process.platform === 'win32') {
    ^
    Error [ERR_REQUIRE_ESM]: require() of ES Module ...
    You might have to delete your node_modules directory and then reinstall all the dependencies USING NPM (npm install), and DON'T use YARN (yarn). And then try to run the react-email script as in the video (npm run email).
    Hope this helps you well.

  • @matthiasnienhaus7735
    @matthiasnienhaus7735 2 месяца назад

    20:18 How do you split the string into multiple lines within the cn() function? I get an unterminated string literal error 1002 when I try that.

    • @jamesb1664
      @jamesb1664 2 месяца назад

      If you notice it happen when he saves the changes - he has prettier extension enabled to ‘format on save’

  • @LoeRL1
    @LoeRL1 Месяц назад +1

    Could anyone explain what's happening here in terms of database? I normally use mongodb but in the bits of the video I have watched so far there are no calls to a database.

    • @toptry5
      @toptry5 Месяц назад +2

      he use prisma sql database, which setup locally

  • @nicofabeiro
    @nicofabeiro День назад

    Is anybody else having trouble with the webhooks part? i just get back 404 errors from them and aside from variable name changes it is letter by letter a copy of the lesson.

  • @rajeshkannan748
    @rajeshkannan748 2 месяца назад +1

    text-muted-forehand is tailwind classes ?
    I couldn't find that in tailwind css doc

    • @algaldia
      @algaldia Месяц назад

      Didn't find either.

    • @kyriakosbekas
      @kyriakosbekas Месяц назад +1

      They are classes that are generated due to the tailwind config file. When you setup shadcn/ui, some variables for colors, animation, etc. are added there and therefore you have access to these generated classes

    • @algaldia
      @algaldia Месяц назад +1

      @@kyriakosbekas Thank you!!

  • @AntonVanjukhin
    @AntonVanjukhin Месяц назад

    Can somebody help me please to add multiple images in product?

  • @douglast.9790
    @douglast.9790 Месяц назад

    is using next auth?

  • @Reacts441
    @Reacts441 Месяц назад

    Is this project available in GitHub please?

  • @codewithguillaume
    @codewithguillaume 2 месяца назад

    ❤❤❤

  • @maheshthakkar7178
    @maheshthakkar7178 25 дней назад

    Can someone provide me .env file format for this project

  • @7th.convict
    @7th.convict Месяц назад

    Navlink text wont even show for me.

  • @ruanxun9454
    @ruanxun9454 Месяц назад

    I have the same layout as you do, however, the layout.tsx in (customerFacing) does not work, I have to remove the parenthesis for it to work, it seems like a conflict between the root layout and the layout inside (customerFacing), anyone facing the same issue?

    • @ruanxun9454
      @ruanxun9454 Месяц назад +1

      I figured it out, just forgot to delete the page.tsx file in the app root