لطفا جهت اطلاع از آخرین دوره ها و اخبار سایت در
کانال تلگرام
عضو شوید.
آموزش ساخت برنامه های وب با Go - سطح متوسط
Building Web Applications with Go - Intermediate Level
نکته:
آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
نمونه ویدیوها:
توضیحات دوره:
آموزش ساخت یک اپلیکیشن تجارت الکترونیک امن با Go (Golang) نحوه ساختن یک وب سایت فرانت اند با استفاده از Go چگونه با استفاده از Go یک API بک اند بسازیم نحوه ساخت چندین برنامه از یک پایه کد واحد نحوه ساخت میکروسرویس ها در Go احراز هویت کاربر در احراز هویت Go API با استفاده از توکنهای Stateful چگونه به کاربران اجازه دهیم رمز عبور را به روشی امن و ایمن بازنشانی کنند نحوه ادغام پردازش کارت اعتباری Stripe با یک Go back end پرداختهای یکباره یا تکراری با Stripe بهترین روشها برای انجام تراکنشهای امن با کارت اعتباری پیش نیازها : درک اولیه از زبان برنامه نویسی Go یک درک اولیه از HTML، CSS، و جاوا اسکریپت درک اولیه از نحو SQL
این دوره دنباله ساختن برنامه های کاربردی وب مدرن در Go است. در این دوره، ما بیشتر از بار اول پیش می رویم. ما یک نمونه برنامه تجارت الکترونیکی خواهیم ساخت که از چندین برنامه مجزا تشکیل شده است: یک فرانت اند (که محتوا را به عنوان صفحات وب به کاربر نهایی ارائه می دهد). یک back end API (که در صورت لزوم توسط قسمت جلویی فراخوانی می شود) و یک میکروسرویس که فقط یک کار را انجام می دهد، اما آن را بسیار خوب انجام می دهد (به صورت پویا فاکتورهای PDF را می سازد و آنها را به عنوان پیوست ایمیل برای مشتریان ارسال می کند).
این برنامه موارد جداگانه را می فروشد و همچنین به کاربران امکان می دهد اشتراک ماهانه خریداری کنند. همه تراکنشهای کارت اعتباری از طریق Stripe پردازش میشوند، که مسلماً یکی از محبوبترین سیستمهای پردازش پرداخت موجود امروز است، و دلیل خوبی دارد: توسعهدهندگان آن را دوست دارند. Stripe یک API (رابط برنامه نویسی کاربردی) غنی ارائه می دهد و در بیش از 35 کشور در سراسر جهان موجود است و با بیش از 135 ارز کار می کند. به معنای واقعی کلمه، میلیونها سازمان و کسبوکار از نرمافزار و APIهای Stripe برای پذیرش پرداختها، ارسال پرداختها و مدیریت آنلاین کسبوکار خود با داشبورد Stripe استفاده میکنند. با این حال، در بسیاری از موارد، توسعهدهندگان میخواهند بتوانند راهحل سفارشیتری بسازند و کاربران نهایی را ملزم نکنند که هم به یک برنامه وب و هم به داشبورد Stripe وارد شوند. این دقیقاً همان چیزی است که ما در این دوره به آن خواهیم پرداخت.
ما با یک ترمینال مجازی ساده شروع می کنیم، که می تواند برای پردازش تراکنش های به اصطلاح "کارت موجود نیست" استفاده شود. این یک برنامه وب کاملاً کاربردی خواهد بود که از ابتدا در Go ساخته شده است (گاهی اوقات به عنوان Golang شناخته می شود). قسمت جلویی با استفاده از بسته غنی html/template Go ارائه میشود و کاربران احراز هویت شده میتوانند پرداختهای کارت اعتباری را از یک فرم امن، یکپارچه با Stripe API پردازش کنند. در این بخش از دوره به موارد زیر می پردازیم:
نحوه ساختن یک برنامه وب ایمن و آماده تولید در Go
نحوه گرفتن اطلاعات لازم برای تراکنش امن با کارت اعتباری آنلاین
نحوه فراخوانی Stripe API از یک Go back end برای ایجاد payIntent (ابژه Stripe برای مجوز دادن و انجام تراکنش)
هنگامی که این کار را انجام دادیم، در بخش بعدی دوره یک برنامه وب دوم ایجاد می کنیم که شامل یک وب سایت ساده است که به کاربران امکان می دهد محصولی را خریداری کنند یا اشتراک ماهیانه را خریداری کنند. باز هم، این یک برنامه وب خواهد بود که از ابتدا در Go ساخته شده است. در این بخش از دوره، موارد زیر را پوشش خواهیم داد:
چگونه به کاربران اجازه خرید یک محصول واحد را بدهیم
چگونه به کاربران اجازه خرید اشتراک ماهانه تکرارشونده (یک طرح خطی) را بدهیم
نحوه رسیدگی به لغو و بازپرداخت
نحوه ذخیره تمام اطلاعات تراکنش در پایگاه داده (برای بازپرداخت، گزارش و غیره).
نحوه بازپرداخت تراکنش
نحوه لغو اشتراک
نحوه ایمن سازی دسترسی به قسمت جلو (از طریق احراز هویت جلسه)
نحوه ایمن سازی دسترسی به API پشتیبان (با استفاده از نشانه های حالت دار)
نحوه مدیریت کاربران (افزودن/ویرایش/حذف)
چگونه به کاربران اجازه دهیم رمز عبور خود را به صورت ایمن و ایمن بازنشانی کنند
نحوه خروج یک کاربر و لغو حساب کاربری فوراً از طریق وب سوکت
هنگامی که این کار کامل شد، کار روی میکروسرویس را شروع میکنیم. میکروسرویس یک رویکرد خاص برای توسعه نرمافزار است که پیشفرض اصلی ساخت برنامههای بسیار کوچکی است که یک کار را انجام میدهند، اما آن را به خوبی انجام میدهند. یک میکروسرویس کوچکترین اهمیتی به اینکه برنامه کاربردی آن را چه می نامد، ندارد. کاملاً مجزا و کاملاً آگنوستیک است. ما یک میکروسرویس میسازیم که کارهای زیر را انجام میدهد:
یک بار JSON را میپذیرد که یک خرید جداگانه را توصیف میکند
یک فاکتور PDF با اطلاعاتی از بار JSON تولید میکند
یک ایمیل برای مشتری ایجاد می کند و PDF را به آن پیوست می کند
ایمیل را ارسال می کند
همه این مؤلفهها (جلو، انتهای پشتی و میکروسرویس) با استفاده از یک پایه کد که چندین باینری تولید میکند، با استفاده از Gnu Make ساخته میشوند.
سرفصل ها و درس ها
معرفی
Introduction
معرفی
Introduction
کمی در مورد من
A bit about me
اشتباهات: همه ما مرتکبشان می شویم.
Mistakes: we all make them.
نحوه درخواست کمک
How to ask for help
نحوه درخواست کمک
How to ask for help
معرفی
Introduction
معرفی
Introduction
کمی در مورد من
A bit about me
اشتباهات: همه ما مرتکبشان می شویم.
Mistakes: we all make them.
راه اندازی محیط ما
Setting up our environment
در حال نصب Go
Installing Go
در حال نصب Go
Installing Go
نصب IDE
Installing an IDE
یک حساب Stripe رایگان دریافت کنید
Get a free Stripe account
یک حساب Stripe رایگان دریافت کنید
Get a free Stripe account
در حال نصب make
Installing make
نصب MariaDB
Installing MariaDB
دریافت مشتری پایگاه داده
Getting a database client
راه اندازی محیط ما
Setting up our environment
نصب IDE
Installing an IDE
در حال نصب make
Installing make
نصب MariaDB
Installing MariaDB
دریافت مشتری پایگاه داده
Getting a database client
ساخت ترمینال کارت اعتباری مجازی
Building a virtual credit card terminal
چیزی که قراره بسازیم
What we're going to build
چیزی که قراره بسازیم
What we're going to build
راه اندازی یک برنامه وب (بی اهمیت).
Setting up a (trivial) web application
راه اندازی مسیرها و ساخت تابع رندر
Setting up routes and building a render function
راه اندازی مسیرها و ساخت تابع رندر
Setting up routes and building a render function
نمایش یک صفحه
Displaying one page
پسوند بهتری برای قالب های Go و VS Code
A better extension for Go templates and VS Code
ایجاد فرم
Creating the form
ایجاد فرم
Creating the form
اتصال فرم ما به stripe.js
Connecting our form to stripe.js
اتصال فرم ما به stripe.js
Connecting our form to stripe.js
اعتبار سنجی سمت مشتری
Client side validation
اعتبار سنجی سمت مشتری
Client side validation
دریافت PayIntent - راه اندازی بسته پایانی
Getting the paymentIntent - setting up the back end package
دریافت PayIntent - راه اندازی بسته پایانی
Getting the paymentIntent - setting up the back end package
دریافت PayIntent - شروع کار بر روی back end api
Getting the paymentIntent - starting work on the back end api
دریافت PayIntent - تنظیم مسیر و کنترلر و استفاده از make
Getting the paymentIntent - setting up a route and handler, and using make
دریافت PayIntent - تنظیم مسیر و کنترلر و استفاده از make
Getting the paymentIntent - setting up a route and handler, and using make
دریافت PayIntent - در حال تکمیل مدیریت ما
Getting the paymentIntent - finishing up our handler
دریافت PayIntent - در حال تکمیل مدیریت ما
Getting the paymentIntent - finishing up our handler
در حال بهروزرسانی جاوا اسکریپت جلویی برای فراخوانی PayIntent ما
Updating the front end JavaScript to call our paymentIntent handler
دریافت قصد پرداخت و تکمیل تراکنش
Getting the payment intent, and completing the transaction
ایجاد رسید
Generating a receipt
ایجاد رسید
Generating a receipt
در حال پاک کردن url API و کلید قابل انتشار Stripe در فرم ما
Cleaning up the API url and Stripe Publishable Key on our form
دانشتان را امتحان کنید
Test your knowledge
ساخت ترمینال کارت اعتباری مجازی
Building a virtual credit card terminal
راه اندازی یک برنامه وب (بی اهمیت).
Setting up a (trivial) web application
نمایش یک صفحه
Displaying one page
پسوند بهتری برای قالب های Go و VS Code
A better extension for Go templates and VS Code
دریافت PayIntent - شروع کار بر روی back end api
Getting the paymentIntent - starting work on the back end api
در حال بهروزرسانی جاوا اسکریپت جلویی برای فراخوانی PayIntent ما
Updating the front end JavaScript to call our paymentIntent handler
دریافت قصد پرداخت و تکمیل تراکنش
Getting the payment intent, and completing the transaction
در حال پاک کردن url API و کلید قابل انتشار Stripe در فرم ما
Cleaning up the API url and Stripe Publishable Key on our form
دانشتان را امتحان کنید
Test your knowledge
فروش آنلاین محصول
Selling a product online
قراره چی بسازیم؟
What are we going to build?
پایگاه داده را ایجاد کنید
Create the database
ایجاد فرم محصول
Creating the product form
انتقال جاوا اسکریپت به یک فایل قابل استفاده مجدد
Moving JavaScript to a reusable file
تغییر هندلر برای گرفتن یک ساختار
Modifying the handler to take a struct
صفحه ویجت را برای استفاده از داده های ارسال شده به الگو به روز کنید
Update the Widget page to use data passed to the template
تست عملکرد تراکنش
Testing the transaction functionality
درج تراکنش جدید
Inserting a new transaction
درج سفارش جدید
Inserting a new order
یک نکته: رفع مشکل در محاسبه مبلغ
An aside: fixing a problem with calculating the amount
شروع به ذخیره اطلاعات مشتری و معاملات
Getting started saving customer and transaction information
روش ذخیره پایگاه داده مشتری را ایجاد کنید
Create the save customer database method
صرفه جویی در مشتری، معامله و سفارش از طرف کنترل کننده
Saving the customer, transaction, and order from the handler
اجرای یک تراکنش آزمایشی
Running a test transaction
رفع خطای پایگاه داده و ذخیره جزئیات بیشتر
Fixing a database error, and saving more details
تغییر مسیر بعد از پست
Redirecting after post
در حال بازبینی ترمینال مجازی ما
Revising our Virtual Terminal
رفع یک اشتباه در تابع قالب فرمت ارز
Fixing a mistake in the formatCurrency template function
فروش آنلاین محصول
Selling a product online
قراره چی بسازیم؟
What are we going to build?
پایگاه داده را ایجاد کنید
Create the database
اتصال به پایگاه داده
Connecting to the database
اتصال به پایگاه داده
Connecting to the database
ایجاد صفحه محصول
Creating a product page
ایجاد صفحه محصول
Creating a product page
ایجاد فرم محصول
Creating the product form
انتقال جاوا اسکریپت به یک فایل قابل استفاده مجدد
Moving JavaScript to a reusable file
تغییر هندلر برای گرفتن یک ساختار
Modifying the handler to take a struct
صفحه ویجت را برای استفاده از داده های ارسال شده به الگو به روز کنید
Update the Widget page to use data passed to the template
ایجاد تابع قالب فرمت ارز
Creating a formatCurrency template function
ایجاد تابع قالب فرمت ارز
Creating a formatCurrency template function
تست عملکرد تراکنش
Testing the transaction functionality
ایجاد جدول پایگاه داده برای اقلام برای فروش
Creating a database table for items for sale
ایجاد جدول پایگاه داده برای اقلام برای فروش
Creating a database table for items for sale
اجرای مهاجرت های پایگاه داده
Running database migrations
اجرای مهاجرت های پایگاه داده
Running database migrations
ایجاد مدل های پایگاه داده
Creating database models
ایجاد مدل های پایگاه داده
Creating database models
کار بر روی توابع پایگاه داده
Working on database functions
کار بر روی توابع پایگاه داده
Working on database functions
درج تراکنش جدید
Inserting a new transaction
درج سفارش جدید
Inserting a new order
یک نکته: رفع مشکل در محاسبه مبلغ
An aside: fixing a problem with calculating the amount
دریافت اطلاعات بیشتر در مورد یک تراکنش
Getting more information about a transaction
دریافت اطلاعات بیشتر در مورد یک تراکنش
Getting more information about a transaction
مشتریان
Customers
مشتریان
Customers
شروع به ذخیره اطلاعات مشتری و معاملات
Getting started saving customer and transaction information
روش ذخیره پایگاه داده مشتری را ایجاد کنید
Create the save customer database method
صرفه جویی در مشتری، معامله و سفارش از طرف کنترل کننده
Saving the customer, transaction, and order from the handler
اجرای یک تراکنش آزمایشی
Running a test transaction
رفع خطای پایگاه داده و ذخیره جزئیات بیشتر
Fixing a database error, and saving more details
تغییر مسیر بعد از پست
Redirecting after post
کنترل کننده PaymentSucceeded ما را ساده می کنیم
Simplifying our PaymentSucceeded handler
کنترل کننده PaymentSucceeded ما را ساده می کنیم
Simplifying our PaymentSucceeded handler
در حال بازبینی ترمینال مجازی ما
Revising our Virtual Terminal
رفع یک اشتباه در تابع قالب فرمت ارز
Fixing a mistake in the formatCurrency template function
تنظیم و شارژ یک پرداخت تکراری با استفاده از Stripe Plans
Setting up and charging a recurring payment using Stripe Plans
در این بخش قرار است چه چیزی بسازیم؟
What are we going to build in this section?
ایجاد طرح در داشبورد Stripe
Creating a Plan on the Stripe Dashboard
تنظیم فرم
Setting up the form
کار بر روی جاوا اسکریپت برای پلن ها
Working on the JavaScript for plans
ادامه با جاوا اسکریپت برای اشتراک در یک طرح
Continuing with the Javascript for subscribing to a plan
پس از عضویت کاربر، یک کنترل کننده برای درخواست POST ایجاد کنید
Create a handler for the POST request after a user is subscribed
در حال به روز رسانی کنترل کننده ما برای تکمیل یک اشتراک
Updating our handler to complete a subscription
ذخیره اطلاعات تراکنش و مشتری در پایگاه داده
Saving transaction & customer information to the database
ذخیره اطلاعات معامله و مشتری II
Saving transaction & customer information II
نمایش صفحه رسید پلان برنز
Displaying a receipt page for the Bronze Plan
تنظیم و شارژ یک پرداخت تکراری با استفاده از Stripe Plans
Setting up and charging a recurring payment using Stripe Plans
در این بخش قرار است چه چیزی بسازیم؟
What are we going to build in this section?
ایجاد طرح در داشبورد Stripe
Creating a Plan on the Stripe Dashboard
ایجاد خرد برای صفحه جلویی و کنترلر
Creating stubs for the front end page and handler
ایجاد خرد برای صفحه جلویی و کنترلر
Creating stubs for the front end page and handler
تنظیم فرم
Setting up the form
کار بر روی جاوا اسکریپت برای پلن ها
Working on the JavaScript for plans
ادامه با جاوا اسکریپت برای اشتراک در یک طرح
Continuing with the Javascript for subscribing to a plan
پس از عضویت کاربر، یک کنترل کننده برای درخواست POST ایجاد کنید
Create a handler for the POST request after a user is subscribed
روش هایی برای ایجاد مشتری Stripe ایجاد کنید و در یک طرح مشترک شوید
Create methods to create a Stripe customer and subscribe to a plan
روش هایی برای ایجاد مشتری Stripe ایجاد کنید و در یک طرح مشترک شوید
Create methods to create a Stripe customer and subscribe to a plan
در حال به روز رسانی کنترل کننده ما برای تکمیل یک اشتراک
Updating our handler to complete a subscription
ذخیره اطلاعات تراکنش و مشتری در پایگاه داده
Saving transaction & customer information to the database
ذخیره اطلاعات معامله و مشتری II
Saving transaction & customer information II
نمایش صفحه رسید پلان برنز
Displaying a receipt page for the Bronze Plan
احراز هویت
Authentication
معرفی
Introduction
ایجاد صفحه ورود
Creating a login page
نوشتن جاوا اسکریپت خرد برای احراز هویت در پشت انتهای
Writing the stub javascript to authenticate against the back end
یک مسیر و کنترلر برای احراز هویت ایجاد کنید
Create a route and handler for authentication
یک تابع کمکی writeJSON ایجاد کنید
Create a writeJSON helper function
ایجاد یک تابع کمکی invalidCredentials
Creating an invalidCredentials helper function
بررسی احراز هویت در انتهای پشت
Checking authentication on the back end
کمی خانه داری
A bit of housekeeping
استخراج نشانه از هدر مجوز
Extracting the token from the authorization header
چالش: بررسی انقضا
Challenge: Checking for expiry
راه حل چالش
Solution to challenge
در حال امتحان کردن یک مسیر محافظت شده
Trying out a protected route
احراز هویت
Authentication
معرفی
Introduction
ایجاد صفحه ورود
Creating a login page
نوشتن جاوا اسکریپت خرد برای احراز هویت در پشت انتهای
Writing the stub javascript to authenticate against the back end
یک مسیر و کنترلر برای احراز هویت ایجاد کنید
Create a route and handler for authentication
یک تابع کمکی writeJSON ایجاد کنید
Create a writeJSON helper function
شروع فرآیند احراز هویت
Starting the authentication process
شروع فرآیند احراز هویت
Starting the authentication process
ایجاد یک تابع کمکی invalidCredentials
Creating an invalidCredentials helper function
ایجاد یک تابع کمکی پسورد مطابقت
Creating a passwordMatches helper function
ایجاد یک تابع کمکی پسورد مطابقت
Creating a passwordMatches helper function
اطمینان از اینکه همه چیز کار می کند
Making sure that everything works
اطمینان از اینکه همه چیز کار می کند
Making sure that everything works
یک تابع برای تولید یک توکن ایجاد کنید
Create a function to generate a token
یک تابع برای تولید یک توکن ایجاد کنید
Create a function to generate a token
تولید و ارسال یک توکن
Generating and sending back a token
تولید و ارسال یک توکن
Generating and sending back a token
ذخیره توکن در پایگاه داده
Saving the token to the database
ذخیره توکن در پایگاه داده
Saving the token to the database
ذخیره توکن در حافظه محلی
Saving the token to local storage
ذخیره توکن در حافظه محلی
Saving the token to local storage
تغییر لینک ورود بر اساس وضعیت احراز هویت
Changing the login link based on authentication status
تغییر لینک ورود بر اساس وضعیت احراز هویت
Changing the login link based on authentication status
بررسی احراز هویت در انتهای پشت
Checking authentication on the back end
کمی خانه داری
A bit of housekeeping
ایجاد توابع خرد برای تأیید اعتبار یک نشانه
Creating stub functions to validate a token
ایجاد توابع خرد برای تأیید اعتبار یک نشانه
Creating stub functions to validate a token
استخراج نشانه از هدر مجوز
Extracting the token from the authorization header
اعتبار سنجی توکن در انتهای پشتی
Validating the token on the back end
اعتبار سنجی توکن در انتهای پشتی
Validating the token on the back end
در حال آزمایش اعتبارسنجی رمز ما
Testing out our token validation
در حال آزمایش اعتبارسنجی رمز ما
Testing out our token validation
چالش: بررسی انقضا
Challenge: Checking for expiry
راه حل چالش
Solution to challenge
پیاده سازی میان افزار برای محافظت از مسیرهای خاص
Implementing middleware to protect specfic routes
پیاده سازی میان افزار برای محافظت از مسیرهای خاص
Implementing middleware to protect specfic routes
در حال امتحان کردن یک مسیر محافظت شده
Trying out a protected route
تبدیل پست ترمینال مجازی به استفاده از قسمت پشتی
Converting the Virtual Terminal post to use the back end
تبدیل پست ترمینال مجازی به استفاده از قسمت پشتی
Converting the Virtual Terminal post to use the back end
تغییر صفحه ترمینال مجازی برای استفاده از Fetch
Changing the virtual terminal page to use fetch
تغییر صفحه ترمینال مجازی برای استفاده از Fetch
Changing the virtual terminal page to use fetch
بررسی تراکنش ذخیره شده
Verifying the saved transaction
بررسی تراکنش ذخیره شده
Verifying the saved transaction
محافظت از مسیرها در Front End و بهبود احراز هویت
Protecting routes on the Front End and improving authentication
حفاظت از مسیرها در قسمت جلویی
Protecting routes on the front end
محافظت از مسیرها در Front End و بهبود احراز هویت
Protecting routes on the Front End and improving authentication
نوشتن میان افزار در قسمت جلویی برای بررسی احراز هویت
Writing middleware on the front end to check authentication
نوشتن میان افزار در قسمت جلویی برای بررسی احراز هویت
Writing middleware on the front end to check authentication
حفاظت از مسیرها در قسمت جلویی
Protecting routes on the front end
خروج از قسمت جلویی
Logging out from the front end
خروج از قسمت جلویی
Logging out from the front end
ذخیره جلسات در پایگاه داده
Saving sessions in the database
ذخیره جلسات در پایگاه داده
Saving sessions in the database
ایمیل و رمز عبور بازنشانی می شود
Mail and Password Resets
رمز عبور بازنشانی می شود
Password resets
پیاده سازی پیوندهای امضا شده برای پیام ایمیل ما
Implementing signed links for our email message
تنظیم صفحه بازنشانی رمز عبور
Setting up the reset password page
افزودن بسته رمزگذاری
Adding an encryption package
استفاده از بسته رمزگذاری ما برای قفل کردن بازنشانی رمز عبور
Using our encryption package to lock down password resets
ایمیل و رمز عبور بازنشانی می شود
Mail and Password Resets
رمز عبور بازنشانی می شود
Password resets
ارسال نامه قسمت اول
Sending mail Part I
ارسال نامه قسمت اول
Sending mail Part I
Mailtrap.io
Mailtrap.io
Mailtrap.io
Mailtrap.io
ارسال نامه قسمت دوم
Sending mail Part II
ارسال نامه قسمت دوم
Sending mail Part II
ایجاد الگوهای ایمیل ما و ارسال یک ایمیل آزمایشی
Creating our mail templates and sending a test email
ایجاد الگوهای ایمیل ما و ارسال یک ایمیل آزمایشی
Creating our mail templates and sending a test email
پیاده سازی پیوندهای امضا شده برای پیام ایمیل ما
Implementing signed links for our email message
با استفاده از بسته urlsigner ما
Using our urlsigner package
با استفاده از بسته urlsigner ما
Using our urlsigner package
ایجاد مسیر و کنترل کننده رمز عبور بازنشانی
Creating the reset password route and handler
ایجاد مسیر و کنترل کننده رمز عبور بازنشانی
Creating the reset password route and handler
تنظیم صفحه بازنشانی رمز عبور
Setting up the reset password page
ایجاد یک مسیر برگشتی برای مدیریت بازنشانی رمز عبور
Creating a back end route to handle password resets
ایجاد یک مسیر برگشتی برای مدیریت بازنشانی رمز عبور
Creating a back end route to handle password resets
تنظیم انقضا برای ایمیل های بازنشانی رمز عبور
Setting an expiry for password reset emails
تنظیم انقضا برای ایمیل های بازنشانی رمز عبور
Setting an expiry for password reset emails
افزودن بسته رمزگذاری
Adding an encryption package
استفاده از بسته رمزگذاری ما برای قفل کردن بازنشانی رمز عبور
Using our encryption package to lock down password resets
ساخت صفحات مدیریت برای مدیریت خریدها
Building Admin pages to manage purchases
راه اندازی صفحات خرد برای فروش و اشتراک
Setting up stub pages for sales and subscriptions
فهرست کردن همه فروش ها: پرس و جو پایگاه داده
Listing all sales: database query
فهرست کردن همه فروش ها: تابع پایگاه داده
Listing all sales: database function
فهرست کردن همه فروشها: نوشتن کنترلر و مسیر API
Listing all sales: writing the API handler and route
لیست تمام فروش ها: جاوا اسکریپت جلویی
Listing all sales: front end javascript
میزمان را زیباتر کنیم و چند بررسی در جاوا اسکریپت اضافه کنیم
Making our table prettier, and adding some checks in JavaScript
راه حل چالش
Solution to challenge
نمایش فروش: قسمت 1
Displaying a sale: part 1
نمایش اشتراک
Displaying a subscription
ساخت صفحات مدیریت برای مدیریت خریدها
Building Admin pages to manage purchases
بهبود بخش جلویی ما و تنظیم یک منوی مدیریت
Improving our front end and setting up an Admin menu
بهبود بخش جلویی ما و تنظیم یک منوی مدیریت
Improving our front end and setting up an Admin menu
راه اندازی صفحات خرد برای فروش و اشتراک
Setting up stub pages for sales and subscriptions
به روز رسانی مهاجرت ها و تنظیم مجدد پایگاه داده
Updating migrations and resetting the database
به روز رسانی مهاجرت ها و تنظیم مجدد پایگاه داده
Updating migrations and resetting the database
فهرست کردن همه فروش ها: پرس و جو پایگاه داده
Listing all sales: database query
فهرست کردن همه فروش ها: تابع پایگاه داده
Listing all sales: database function
فهرست کردن همه فروشها: نوشتن کنترلر و مسیر API
Listing all sales: writing the API handler and route
لیست تمام فروش ها: جاوا اسکریپت جلویی
Listing all sales: front end javascript
نمایش نتایج ما در یک جدول
Displaying our results in a table
نمایش نتایج ما در یک جدول
Displaying our results in a table
میزمان را زیباتر کنیم و چند بررسی در جاوا اسکریپت اضافه کنیم
Making our table prettier, and adding some checks in JavaScript
راه حل چالش
Solution to challenge
نمایش فروش: قسمت 1
Displaying a sale: part 1
نمایش فروش: قسمت 2
Displaying a sale: part 2
نمایش فروش: قسمت 2
Displaying a sale: part 2
نمایش اشتراک
Displaying a subscription
بازپرداخت
Refunds
بازپرداخت از داشبورد Stripe
Refunds from the Stripe Dashboard
قسمت جلویی را برای بازپرداخت بهروزرسانی کنید
Update the front end for refunds
بهبود قسمت جلویی
Improving the front end
بازپرداخت
Refunds
بازپرداخت از داشبورد Stripe
Refunds from the Stripe Dashboard
اضافه کردن یک تابع بازپرداخت به بسته کارت ما
Adding a refund function to our cards package
اضافه کردن یک تابع بازپرداخت به بسته کارت ما
Adding a refund function to our cards package
ایجاد یک کنترلر API برای پردازش بازپرداخت
Creating an API handler to process refunds
ایجاد یک کنترلر API برای پردازش بازپرداخت
Creating an API handler to process refunds
قسمت جلویی را برای بازپرداخت بهروزرسانی کنید
Update the front end for refunds
بهبود قسمت جلویی
Improving the front end
افزودن اجزای رابط کاربری به صفحه فروش
Adding UI components to the sales page
افزودن اجزای رابط کاربری به صفحه فروش
Adding UI components to the sales page
به روز رسانی وضعیت به بازپرداخت در پایگاه داده
Updating status to refunded in the database
به روز رسانی وضعیت به بازپرداخت در پایگاه داده
Updating status to refunded in the database
لغو اشتراک ها
Cancelling Subscriptions
گرفتن شناسه اشتراک
Capturing the subscription id
اضافه کردن یک تابع لغو اشتراک به بسته کارت ما
Adding a CancelSubscription function to our cards package
در حال اتمام قسمت جلویی
Finishing up the front end
لغو اشتراک ها
Cancelling Subscriptions
گرفتن شناسه اشتراک
Capturing the subscription id
اضافه کردن یک تابع لغو اشتراک به بسته کارت ما
Adding a CancelSubscription function to our cards package
ایجاد یک کنترل کننده برای لغو اشتراک
Creating a handler to cancel a subscription
ایجاد یک کنترل کننده برای لغو اشتراک
Creating a handler to cancel a subscription
اصلاح قسمت جلویی
Modifying the front end
اصلاح قسمت جلویی
Modifying the front end
در حال اتمام قسمت جلویی
Finishing up the front end
صفحه بندی داده ها
Paginating Data
در حال به روز رسانی الگوی all-sales.page.gohtml
Updating the all-sales.page.gohtml template
بهبود صفحه بندی در قسمت جلویی
Improving pagination on the front end
افزودن شنوندگان به دکمه های پیمایش صفحه
Adding listeners to page navigation buttons
صفحه بندی داده ها
Paginating Data
ایجاد یک روش پایگاه داده برای صفحه بندی تمام سفارشات
Creating a database method to paginate all orders
ایجاد یک روش پایگاه داده برای صفحه بندی تمام سفارشات
Creating a database method to paginate all orders
تغییر کنترل کننده AllSales برای استفاده از داده های صفحه بندی شده
Modifying the AllSales handler to use paginated data
تغییر کنترل کننده AllSales برای استفاده از داده های صفحه بندی شده
Modifying the AllSales handler to use paginated data
در حال به روز رسانی الگوی all-sales.page.gohtml
Updating the all-sales.page.gohtml template
بهبود صفحه بندی در قسمت جلویی
Improving pagination on the front end
افزودن شنوندگان به دکمه های پیمایش صفحه
Adding listeners to page navigation buttons
بردن کاربر به تصحیح صفحه داده ها با کلیک
Taking user to correct page of data on click
بردن کاربر به تصحیح صفحه داده ها با کلیک
Taking user to correct page of data on click
چگونه صفحه بندی را در صفحه همه اشتراک ها پیاده سازی کردم
How I implemented pagination on the all subscriptions page
چگونه صفحه بندی را در صفحه همه اشتراک ها پیاده سازی کردم
How I implemented pagination on the all subscriptions page
مدیریت کاربران
Managing Users
نمایش لیست کاربران
Displaying the list of users
ایجاد فرم افزودن/ویرایش کاربر
Creating a user add/edit form
ذخیره یک کاربر ویرایش شده - قسمت دوم
Saving an edited user - part two
راه اندازی وب سوکت ها
Setting up websockets
مدیریت کاربران
Managing Users
راه اندازی قالب هایی برای مدیریت کاربران
Setting up templates to manage users
راه اندازی قالب هایی برای مدیریت کاربران
Setting up templates to manage users
اضافه کردن مسیرها و کنترلرها در قسمت جلویی
Adding routes and handlers on the front end
اضافه کردن مسیرها و کنترلرها در قسمت جلویی
Adding routes and handlers on the front end
نوشتن توابع پایگاه داده برای مدیریت کاربران
Writing the database functions to manage users
نوشتن توابع پایگاه داده برای مدیریت کاربران
Writing the database functions to manage users
ایجاد یک هندلر و مسیر برای همه کاربران در قسمت پشتی
Creating a handler and route for all users on the back end
ایجاد یک هندلر و مسیر برای همه کاربران در قسمت پشتی
Creating a handler and route for all users on the back end
به روز رسانی قسمت جلویی برای تماس با AllUsers
Updating the front end to call AllUsers
به روز رسانی قسمت جلویی برای تماس با AllUsers
Updating the front end to call AllUsers
نمایش لیست کاربران
Displaying the list of users
ایجاد فرم افزودن/ویرایش کاربر
Creating a user add/edit form
برای دریافت یک کاربر با api back end تماس بگیرید
Call the api back end to get one user
برای دریافت یک کاربر با api back end تماس بگیرید
Call the api back end to get one user
پر کردن فرم کاربر و یک چالش
Populating the user form, and a challenge
پر کردن فرم کاربر و یک چالش
Populating the user form, and a challenge
راه حل چالش
Solution to challenge
راه حل چالش
Solution to challenge
ذخیره یک کاربر ویرایش شده - قسمت اول
Saving an edited user - part one
ذخیره یک کاربر ویرایش شده - قسمت اول
Saving an edited user - part one
ذخیره یک کاربر ویرایش شده - قسمت دوم
Saving an edited user - part two
حذف یک کاربر
Deleting a user
حذف یک کاربر
Deleting a user
حذف توکن کاربران حذف شده از پایگاه داده
Removing the deleted users token from the database
حذف توکن کاربران حذف شده از پایگاه داده
Removing the deleted users token from the database
راه اندازی وب سوکت ها
Setting up websockets
اتصال به WebSockets از مرورگر
Connecting to WebSockets from the browser
اتصال به WebSockets از مرورگر
Connecting to WebSockets from the browser
خروج کاربر حذف شده از طریق وب سوکت ها
Logging the deleted user out over websockets
خروج کاربر حذف شده از طریق وب سوکت ها
Logging the deleted user out over websockets
میکروسرویس ها
Microservices
میکروسرویس ها چیست؟
What are microservices?
در حال تست PDF ما
Testing our PDF
ارسال فاکتور
Mailing the invoice
میکروسرویس ها
Microservices
میکروسرویس ها چیست؟
What are microservices?
راه اندازی یک میکروسرویس ساده
Setting up a simple microservice
راه اندازی یک میکروسرویس ساده
Setting up a simple microservice
دریافت داده با میکروسرویس ما
Receiving data with our micrsoservice
دریافت داده با میکروسرویس ما
Receiving data with our micrsoservice
تولید فاکتور به صورت PDF
Generating an invoice as a PDF
تولید فاکتور به صورت PDF
Generating an invoice as a PDF
در حال تست PDF ما
Testing our PDF
ارسال فاکتور
Mailing the invoice
هنگامی که ویجت فروخته می شود با میکروسرویس تماس بگیرید
Call the microservice when a Widget is sold
هنگامی که ویجت فروخته می شود با میکروسرویس تماس بگیرید
Call the microservice when a Widget is sold
چالش
Challenge
چالش
Challenge
راه حل
Solution
راه حل
Solution
اعتبار سنجی
Validation
راه اندازی بسته اعتبارسنجی
Setting up a validation package
اعتبار سنجی
Validation
راه اندازی بسته اعتبارسنجی
Setting up a validation package
افزودن اعتبار سنجی در انتهای پشتیبان API
Adding validation on the API back end
افزودن اعتبار سنجی در انتهای پشتیبان API
Adding validation on the API back end
اصلاح جاوا اسکریپت جلویی
Modifying the front end javascript
اصلاح جاوا اسکریپت جلویی
Modifying the front end javascript
نمایش نظرات