Next.js 14 Admin Dashboard Tutorial | Fullstack Next.js 14 Project with Server Actions

แชร์
ฝัง
  • เผยแพร่เมื่อ 23 พ.ย. 2024

ความคิดเห็น • 279

  • @mohamedlifa741
    @mohamedlifa741 ปีที่แล้ว +116

    A project like this is significantly better than those repetitive OpenAI SaaS projects.

    • @therealdevopsintern
      @therealdevopsintern ปีที่แล้ว +1

      You are absolutely right

    • @coderkiemcom
      @coderkiemcom ปีที่แล้ว

      absolutely right

    • @ahmeism90
      @ahmeism90 ปีที่แล้ว +2

      come on, check his channel, nothing but repetitive Dashboard projects :D

    • @reallyforreal323
      @reallyforreal323 ปีที่แล้ว

      @@ahmeism90 lol :v

    • @reallyforreal323
      @reallyforreal323 ปีที่แล้ว +2

      I think I go with OpenAI SaaS, it's show you aware of what is comming =))

  • @cnamaster
    @cnamaster ปีที่แล้ว +31

    i almost practiced 20 hours for 2 tutorial of nextjs and im in the path of mastering it, thanks lama dev. i hope next tutorial come soon and i actually want to learn how to build complete app with high level of security, lama dev thanks for being with me, im gonna build and upload my modern website! love from IRAN

  • @joshpowerfitness9718
    @joshpowerfitness9718 6 หลายเดือนก่อน +4

    I finished it after 6 months. I am so glad I eventually did it. Following you for more. Much love and respect

  • @Yasinafridi
    @Yasinafridi 8 หลายเดือนก่อน +2

    I was so confused abou how next js authentications and API works. I watched many toturial but didnot find any helpful. But after watching this video now i understand Next js and will try to create some dummy projects.
    Thanks for this awesome toturial😍

  • @albiamilvenv.3620
    @albiamilvenv.3620 10 หลายเดือนก่อน +2

    I love this kind of tutorial, I am student and new for next.js and I just by watching this video I learn a lot. Although I can't memorize them all , I just watch it over and over hahaha😄. Lama dev, can you make a tutorial or a continuation of this video with file or image upload. Well appreciated works.❤

  • @sugo8920
    @sugo8920 11 หลายเดือนก่อน +3

    love your videos. you clearly know what your talking about. you make it look very simple. easy to trust your design decisions

  • @jamesnelson174
    @jamesnelson174 ปีที่แล้ว +5

    Honestly this is better than those AI that are paid. Good work.

  • @danglad5546
    @danglad5546 ปีที่แล้ว +12

    Lama, if you create a course on Next.js 14 + Headless CMS (preferably the simplest one, without deployment, i.e. not Strapi), let it be a one-page Landing page. For example, this could be Contenful simple and effective, or another but equally simple (although all of them are not relatively simple), but still it would be a very interesting lesson and there are very few of them on the Internet especially for Next.js 14. This is just an idea for future project, if you have the time or inclination to do it, I'd be happy to take a look!

  • @AktefaTest
    @AktefaTest 9 หลายเดือนก่อน

    I have just watch 27 minutes from this tutorial, its really empowring and much great tutorial, wow its like from zero to hero thank you man

  • @haiffy
    @haiffy ปีที่แล้ว +1

    I have been waiting for nextjs admin dashboard tutorial for years, thanks

  • @that-Tree-of-Life
    @that-Tree-of-Life 11 หลายเดือนก่อน +1

    Thank you for this next.js tutorial! Took me a bit longer than I expected (never learnt about next-auth before) but this is so helpful! Great explanation

  • @nedalturas
    @nedalturas ปีที่แล้ว +3

    Well explained, well coded and really interesting project, I am also making a crm like project and was really having trouble doing it. I opened TH-cam and this video popped first. Thanks for this!

    • @web3ology
      @web3ology 8 หลายเดือนก่อน

      can i get the code??

  • @TommyAMV
    @TommyAMV 10 หลายเดือนก่อน

    This is the most informative tutorial about Next.js 14 features I’ve seen so far. Thank you! 😄 You answered all of my questions

  • @PolatjonQurbonov
    @PolatjonQurbonov 11 หลายเดือนก่อน

    I like, when you say " OK, Perfect" :) . Thank you, for your lessons !!!

  • @lautarososa9581
    @lautarososa9581 11 หลายเดือนก่อน +2

    in the pagination fetch.
    Error: MongoServerError: BSON field 'skip' value must be >= 0, actual value '-2'
    here is an solution. in all fetch that includes the BSON find() and skip();
    .skip(-2 + (itemsPerPAge * page) );

  • @coder5336
    @coder5336 ปีที่แล้ว +2

    Thank you man. Server actions make sense now. I wonder what is you opinion on API vs server actions. Can't wait the next video

  • @sajidalam9972
    @sajidalam9972 ปีที่แล้ว +2

    Plz make some more projects on next js and tailwind css only ❤ your project is more valuable than any course that cant provide

  • @darshmostafa6044
    @darshmostafa6044 ปีที่แล้ว +4

    We want more Projects using Mern Stack Technology please ❤️♥️

  • @dejangjorgievski5370
    @dejangjorgievski5370 6 หลายเดือนก่อน

    Hey there! I really enjoyed watching your video about setting up an admin dashboard. It was super informative! I'm currently working on a project where I need to implement different user roles for the admin dashboard. I noticed you covered the basics of setting up the dashboard, but I was wondering if you could do a follow-up video or provide some guidance on how to add different user roles, like "admin," "moderator," and "viewer." Any tips or suggestions on how to approach this would be greatly appreciated! Thanks in advance!

  • @MehmetOzgulnet
    @MehmetOzgulnet ปีที่แล้ว +2

    23:30 - If the avatar image doesn't show, manually refresh the page. Also, import the "Image" component from "next" lib.

    • @leciel87
      @leciel87 7 หลายเดือนก่อน

      holy....s... THX bro!

  • @BCSMohdHaider
    @BCSMohdHaider 11 หลายเดือนก่อน +1

    Hello sir thank you so much for teaching us. just want you to let you that please make tutorials on advance topics of MERN for example, zod with react-form-hook, react-i18 for Multilanguage application, and tutorial on webRtc. please make tutorials on this top. because we have more than enough videos on MERN but these advance topic are having very less tutorials

  • @viral.clips99
    @viral.clips99 5 หลายเดือนก่อน +2

    it does not work if middleware.js is in the root but works if it is in src directory

  • @deslogsales6045
    @deslogsales6045 ปีที่แล้ว +1

    This is what I have been looking for. Thank you so much ❤

  • @jordanealmeida5986
    @jordanealmeida5986 6 หลายเดือนก่อน +1

    I followed the entire tutorial, but I still have an error, which unfortunately I can't resolve, when adding the middleware it doesn't redirect.
    Server Error
    TypeError: Invalid URL
    This error happened while generating the page. Any console logs will be displayed in the terminal window.
    help me :(

  • @benixmaximus
    @benixmaximus ปีที่แล้ว +2

    Really looking forward to doing this project. Just some feedback... I do wish it was mobile responsive though as people looking at my portfolio will often visit it using a mobile device.

  • @watDfacts
    @watDfacts 5 หลายเดือนก่อน

    I am @1:13:56 and after I finish this tutorial I am going to use bootstrap in my next training project. Thank you very much Lama Dev for this video tutorial! It's so great!

  • @reiniervarkevisser
    @reiniervarkevisser ปีที่แล้ว +7

    Again an amazing tutorial 🎉🎉

  • @ehsansafari
    @ehsansafari 8 หลายเดือนก่อน +1

    @LamaDev thanks for video. can you share VSCode theme?

  • @zyncc
    @zyncc 9 หลายเดือนก่อน

    This tutorial is absolutely amazing thank you so much!!!💯

  • @tko786
    @tko786 11 หลายเดือนก่อน

    Own css better then framework . Very nice I will use this in my project on large skill

  • @Farhathameera-rm3fs
    @Farhathameera-rm3fs ปีที่แล้ว +3

    Hi Lama, please upload new project using React, Next Js with Typescript which is very usefull for us

  • @trend_tech4500
    @trend_tech4500 11 หลายเดือนก่อน +1

    Authentication session is required separately in a another video. would help us a lot❤❤

  • @clonedmosquito
    @clonedmosquito 10 หลายเดือนก่อน +1

    finally made it work. But these url need to be run first time inside. first time every page taking forever

  • @derekmwachinga8272
    @derekmwachinga8272 10 หลายเดือนก่อน

    This is GREAT Lama Dev! KUDOS!

  • @emanuelameh5722
    @emanuelameh5722 ปีที่แล้ว

    I'm feeling excited about this already

  • @sylvesterasiedu
    @sylvesterasiedu ปีที่แล้ว +1

    Hello, compliments of the day to you and thanks for your videos and the hard work you put into them. Can you kindly create a tut that shows how to monitor user inactivity in Nextjs 14 and logout when there hasn't been any user activity (first notifies user via modal warning first - if no response, logs user out after inactivity timeout expiry). Secondly, a tut on how to manage routing based on user role (so protected pages logic)

  • @brutal-gaming-yt
    @brutal-gaming-yt ปีที่แล้ว +2

    In the connectToDB function you are trying to cache existing connection if it's not available in a caching object. But the object is inside the function. So everytime we try to connect to db it will be create a new instance of the caching object. So the caching should not be inside the function.

    • @LamaDev
      @LamaDev  ปีที่แล้ว +2

      You are right. Fixed! Thank you for the comment ☺️

  • @mathewadeyemi5389
    @mathewadeyemi5389 11 หลายเดือนก่อน

    God will always bless you abundantly and continue increase your knowledge, we always enjoying you , by the grace of God you will enjoy yourself.

  • @russellwilliams2888
    @russellwilliams2888 10 หลายเดือนก่อน

    Thank you Lama a great tutorial. The only issue I have is with the pagination feature. When the disabled prop is set on the

  • @DieuTran-ox7yb
    @DieuTran-ox7yb ปีที่แล้ว +66

    Why don't you use tailwind and typescript? 😞

    • @TC-gv9fs
      @TC-gv9fs ปีที่แล้ว +2

      I had the same question ⁉️

    • @rufusr5880
      @rufusr5880 ปีที่แล้ว +30

      Why should he?
      Tailwind is the worst cancer I have seen in web dev for ages.
      Typescript is usefull but slowly looses popularity lately. Probably not used to keep it simple

    • @Chriss-cn1ch
      @Chriss-cn1ch ปีที่แล้ว

      ​@@rufusr5880useless comment. No offense

    • @suliman8273
      @suliman8273 ปีที่แล้ว +19

      Pure js and css is easier than headache of Typescript

    • @iamsaurabhmaurya
      @iamsaurabhmaurya ปีที่แล้ว

      ​@@rufusr5880tailwind is nothing is just css people just hate it for no reason

  • @tejasukalkar2199
    @tejasukalkar2199 ปีที่แล้ว +2

    One full stack project with Nextjs + Ruby on rails as backend + postgresql as database please 😁

  • @peleteiro222
    @peleteiro222 9 หลายเดือนก่อน

    I think the video is great. I would consider do the server part for lower level audience.

  • @kylo2073
    @kylo2073 ปีที่แล้ว +4

    is it just me, facing error when try to login 3:21:40 , entering correct username and password but the wrong credentials keep appear, and when i reload the page then its redirect me to dashboard instead. tried github code, and still the same

    • @maitregims52
      @maitregims52 ปีที่แล้ว +1

      me too

    • @kimanhdo3008
      @kimanhdo3008 ปีที่แล้ว

      do you have a solution? I have same problem

    • @andrei.duduman
      @andrei.duduman ปีที่แล้ว +2

      There is a fix on the Github repo on the Pull Requests. All you have to do is in the authenticate function is set the redirect to false and manually redirect outside the try catch block.
      export const authenticate = async (prevState, formData) => {
      const { username, password } = Object.fromEntries(formData);
      try {
      await signIn('credentials', { username, password, redirect: false }); // add redirect false
      } catch (err) {
      return 'Wrong Credentials!';
      }
      redirect('/dashboard'); //manually redirect
      };

    • @dimakolesnikov2034
      @dimakolesnikov2034 ปีที่แล้ว

      @@andrei.duduman still doesnt work for me after fixing it. Saying wrong credentials

    • @kylo2073
      @kylo2073 ปีที่แล้ว

      @@andrei.duduman thank you! its works

  • @gamerbenja695
    @gamerbenja695 3 หลายเดือนก่อน

    Would you please make a video explaining how to manually update the session data after updating user information, e.g the user avatar and username

  • @programador5784
    @programador5784 ปีที่แล้ว

    Hello friends, and thank you Lama for your content, something here worries me, until now in the content that I have found they always mentioned that for the content of the components that generate the routes, arrow functions should not be used, but I see that your You always use them, so I don't know what to do there, although I suppose I should go to the documentation hehehehehe. thank you so much.

  • @heniyentertainment
    @heniyentertainment ปีที่แล้ว

    thank u lama for this great project i have big respect for u

  • @stacked-dev
    @stacked-dev 11 หลายเดือนก่อน

    I have a quick question. I've implemented cookies and JWT authentication in my NestJS backend. Now I'm working on the Next.js frontend, and I have a server component that sends a request to the backend (Nest) to get protected data. However, I'm receiving an "unauthorized" message from the backend in the server component.
    Note: I'm using HTTPS-only cookies and ngrok for HTTPS in development.
    How to solve this? means how i can configure next js
    How i can forwards the secure cookies from Server compoents to the nest js backend that are comming from the browser

  • @mahiddandamun5570
    @mahiddandamun5570 ปีที่แล้ว

    Thankyou for the wonderful project. I am a beginner and starting to learn the backend, and I am following along with your tutorial. I would like to ask if I'm going to need Node.js for the backend, or if Nextjs is capable enough to do the fetching of the data and handling of backend logic? Since I've been watching a lot of videos about Next.js, and some of them say that Next.js is a full-stack framework and is only good for client-side web due to its ssr and not good for backend intensive projects. I would like to ask your take here thankyou.

  • @zulqadarabbas7567
    @zulqadarabbas7567 7 หลายเดือนก่อน

    Question for the experts: What should I do if the DB is lets say MySql/Postgres? Is there an effecient way?

  • @廣瀬文雄-q3p
    @廣瀬文雄-q3p 8 หลายเดือนก่อน +1

    you're my savior

  • @Devlopsofar
    @Devlopsofar ปีที่แล้ว

    This is a very cool tutorial an d i have been enjoying you tutorials, i learn react completely from this channel and now i'm learn nextjs. KUDUS to Lama Dev. Thanks for the tutorials. i have one confusion here on how to add social media login with role base authorization.

  • @RavindraSingh-lp9pl
    @RavindraSingh-lp9pl ปีที่แล้ว +1

    Lama the king of React

  • @lxdjango3101xl
    @lxdjango3101xl ปีที่แล้ว

    Hi Lama, at 20.21, line number 83 I can't render anything {cat.title}. only when I use "return" i.e. return {cat.title}, it starts to work all of a sudden. Any idea why?

  • @veztre
    @veztre 11 หลายเดือนก่อน

    I copied your completed project but my problem is that once the credential is correct it doesn't directly proceed to dashboard instead I need to refresh the page before the dashboard is shown. thanks for your code I'm learning a lot

  • @IamDarkAngeL1
    @IamDarkAngeL1 ปีที่แล้ว

    Another amazing video from our Master

  • @sakitchimufaza3547
    @sakitchimufaza3547 11 หลายเดือนก่อน +1

    Have anyone tried the completed code recently? i found an error when I am login in. it says user is null

  • @gmancodes
    @gmancodes ปีที่แล้ว

    When / how is the products and users tables being created given the completed file? It seems you are using previous database info to make the user or bypassing the login auth. How do we do this? Does mongoose have no auto schema push like prisma?

  • @shahrozeaslam102
    @shahrozeaslam102 ปีที่แล้ว +1

    Finally😍❤️ cant wait to learn it

  • @eprisrichardson678
    @eprisrichardson678 3 หลายเดือนก่อน

    I went down a 20 minute rabbit hole looking at the artwork of the person who did the astronaut illustration. 😂

  • @risalahalhukmi3454
    @risalahalhukmi3454 10 หลายเดือนก่อน

    Thanks for the tutorial. But my RootLayout is affecting (the header and footer of my app appear in the dashboard page) the DashboardLayout because I put Header and Footer component in my RootLayout. How is the solution?

  • @AshokKumar-k3n6h
    @AshokKumar-k3n6h 3 หลายเดือนก่อน

    Thanks for this wonderful tutorial. Please let me know how to return an error like incorrect email or password from auth.js to actions.js because as per your code it is not throwing an actual error to login page.

  • @FerSpanos
    @FerSpanos 8 หลายเดือนก่อน

    Great video thank you. I am new, How i keep de conexion open from the terminal when i deployed i keep my laptop open all the day?

  • @zanhbenz
    @zanhbenz 6 หลายเดือนก่อน

    Do you know why when we run build the system show Fetch Failed some page fetch data from server component to next server api. someone talk should change 127.0.0.1 but load page receive 500

  • @mohdsahil226
    @mohdsahil226 ปีที่แล้ว +1

    Really, great tutorial. Would you please also add a video of adding animation while adding or removing users?
    I am able to add item inside a modal, but not able to edit because I have to fetch edit data on client which is not possible by server action. is there any way to do this?

  • @sahibrzayev8968
    @sahibrzayev8968 7 หลายเดือนก่อน

    Why my page content does not change when i type dashboard/products url? Thanks for help

  • @matiax101
    @matiax101 10 หลายเดือนก่อน

    I'm trying to login against a remote API. It works just like the video. But how can I show the custom message that the API provides? may be the user provided "wrong credentials", or may be the user "is not active". Any suggestions? I'm talking about the catch block in authenticate() from lib/actions

  • @elahehs2674
    @elahehs2674 9 หลายเดือนก่อน

    thanks for great tutorial! i just finished this project and deployed in vercel i have 405 error do you have any idea how to fix this?

  • @TemmyCodingLifestyle
    @TemmyCodingLifestyle ปีที่แล้ว

    Thank you . I have a question. What's the difference between using custom authconfig and using WithAuth from next js. Which is better? And also can i use signout in the auth.js also can i use signout in a server component

  • @mrx4532
    @mrx4532 5 หลายเดือนก่อน

    thanks man for this great tutorial
    It helped me aloy ❤❤❤

  • @RickyJohw
    @RickyJohw 4 หลายเดือนก่อน

    The margin adding to 'cat' doesn't work, cause span is an inline element. Have to change it to a block element or something.

  • @Arman-kp8jf
    @Arman-kp8jf ปีที่แล้ว

    good job man! thanks for this video!

  • @Rutthawit
    @Rutthawit 11 หลายเดือนก่อน

    I'm follow all step of your code. But a createsAt date data from mongodb not showing in the 'Created At' column. Can anyone help me about this?

  • @huletech
    @huletech ปีที่แล้ว

    thank you its really amazing project

  • @tao2869
    @tao2869 ปีที่แล้ว

    Hi, is it possible to implement a cron job with next.js without deploying to vercel? Also how can next.js server components cache data in in memory?

  • @talhaSohail-m6f
    @talhaSohail-m6f ปีที่แล้ว

    hi
    how can we use middleware for APIs like in nodejs and how can get userID from token and perform some actions on API like in nodejs?
    How can pass token from frontend using axios interceptors like in react?

  • @tahaahmadi7446
    @tahaahmadi7446 ปีที่แล้ว

    hi lama; at first thank you so much for sharing lots of valuable content to us; please talk about converting react web to PWA; i couldn't find any good example for this problem

  • @ChrisClark-z3j
    @ChrisClark-z3j ปีที่แล้ว +2

    Great Tutorial! I am getting an Error: NEXT_REDIRECT thrown after auth (even though the username hash and mongo connection are all OK). try catch block in the authenticate function in actions.js If i remove the catch all works fine. Anyone else have this ?

    • @phucbdvn
      @phucbdvn ปีที่แล้ว +1

      I also get this problem. I am trying to find the solution. Please share with me if you fixed it. Thanks.

    • @fatihdonmez5338
      @fatihdonmez5338 ปีที่แล้ว

      Did you solve the problem?

    • @tianhaoshao7355
      @tianhaoshao7355 ปีที่แล้ว

      I get same issue, did anyone figure out why?

    • @muhammedzahidm1029
      @muhammedzahidm1029 ปีที่แล้ว

      faced the same problem :(

    • @maitregims52
      @maitregims52 ปีที่แล้ว

      me too

  • @valeriarubioh
    @valeriarubioh ปีที่แล้ว

    can someone explain me how can I create a user? I downloaded the completed repo and link to my mongodb but I can't figure out how can I access to the dashboard route because I cant log in

  • @andysavage2361
    @andysavage2361 7 หลายเดือนก่อน

    This is a fantastic tutorial !

  • @sced17
    @sced17 11 หลายเดือนก่อน

    Thank you very much Lama dev, your explanation is very useful, but I can't connect to mongodb... Can someone publish the repository of the database to generate it locally, please?

  • @clonedmosquito
    @clonedmosquito 10 หลายเดือนก่อน

    My next task is create responsive navigation using this code as base. Also i probably name folder as database and schema folders not lib

  • @chhuang789
    @chhuang789 8 หลายเดือนก่อน

    Teacher type comp then code auto complete added. What's extension that shoud be installed?

  • @FallExploreAndTaste
    @FallExploreAndTaste 5 หลายเดือนก่อน

    sir can you make tutorial with this admin dashboard but with modal form for add and edit data please? i try 3 days but i still got error and im very stuck

  • @boywithtrouble
    @boywithtrouble ปีที่แล้ว

    what is extension , when you typing "comp" and complete the function??

  • @prasenjitsutradhar3368
    @prasenjitsutradhar3368 ปีที่แล้ว

    Build a CRM like tool. There is no video available on the youtube....pls I need it!

  • @russellmutamba9899
    @russellmutamba9899 7 หลายเดือนก่อน

    love your content! keep it up

  • @tomasburian6550
    @tomasburian6550 10 หลายเดือนก่อน +2

    Does anybody know how to do the whole authentication with TypeScript? There are quite a lot of issues with it when in V5, especially when not using Prisma.

    • @Amvflix7
      @Amvflix7 10 หลายเดือนก่อน

      can you share the link of your repo? I want assets, the completed project link that lama provided, didn't have complete assets.

    • @tomasburian6550
      @tomasburian6550 10 หลายเดือนก่อน +1

      @@Amvflix7 I scrapped the project because it's not possible to deploy it or use it in a professional world. This whole video is only giving you a vague idea of how things work but you're still left with a lot to figure out for yourself if you want to ever deploy it anywhere.

  • @nastybadger-tn4kl
    @nastybadger-tn4kl 10 หลายเดือนก่อน

    I think i changed directory structure with src and it broke everything. logout dont return to login page.

  • @theangelofspace155
    @theangelofspace155 ปีที่แล้ว

    It looks, awesome I do want ro bookmarks this crash tutorials for future reference, but simce they are on JS and not TS, I cant actually keep them as my production references. I wish future full crash course are on TS.

  • @techiesakar
    @techiesakar 10 หลายเดือนก่อน

    I want NextAuth to call signOut event when refresh token expire.
    Is there any way to do it ?

  • @coralioballester
    @coralioballester ปีที่แล้ว

    Thank you for this great tutorial. Are you hasing passwords on the server here? Your hashing function is in addUser, in "user server" file. Is this safe? i'm just asking

  • @saroj3483
    @saroj3483 9 หลายเดือนก่อน

    anybody can help me i have watched the tutorial and i have download this project from git hub i have run this npm i and npm run dev and when i route to dashboard its asking me login and i have tried to setup the mongodb and passsed the uri and password still i have no collections there help me with this or tell me the process of running the full stack next js project

  • @rogercardona4160
    @rogercardona4160 2 หลายเดือนก่อน

    Hello Lama, a question, so I was able to complete the deployment and everything in the VPS, but after finishing the section the app stops running, how can I make it running always?

  • @zunnoorainrafi5985
    @zunnoorainrafi5985 ปีที่แล้ว

    Hi,
    Please share your thoughts on Remixjs

  • @nagaraj-biradar
    @nagaraj-biradar ปีที่แล้ว

    Thanks for this video, it's nicely done. Can you come up with Full-stack Airbnb Clone in Next.js and Mongo DB.

  • @nastybadger-tn4kl
    @nastybadger-tn4kl 10 หลายเดือนก่อน

    After refreshing users , it show the user name then admin logged in username replaces it

  • @ПетрЛипатов-ф9п
    @ПетрЛипатов-ф9п 5 หลายเดือนก่อน

    second half is really confusing, changing server actions into api routes, not completing them, jumping into implementation of auth

  • @JorgeMenaDev
    @JorgeMenaDev ปีที่แล้ว

    no loading(feedback to the user) when deleting or adding an user?

  • @borishitz5724
    @borishitz5724 ปีที่แล้ว

    the best tutorials all the way

  • @nastybadger-tn4kl
    @nastybadger-tn4kl 10 หลายเดือนก่อน

    Username gets replaced in user detailpage. need to find why..who is doing it