آموزش جامع نکست‌جی‌اس، سوالات مصاحبه، و پروژه فروشگاه اینترنتی - آخرین آپدیت

دانلود Mastering NextJS + Interview Questions + E-commerce Project

نکته: ممکن هست محتوای این صفحه بروز نباشد ولی دانلود دوره آخرین آپدیت می باشد.
نمونه ویدیوها:
توضیحات دوره:

آموزش جامع Next.js 14: از پایه تا پیشرفته با App Router، Prisma و راه‌اندازی فروشگاه آنلاین

با این دوره جامع، مهارت‌های خود را در Next.js 14 ارتقا دهید و به یک توسعه‌دهنده حرفه‌ای تبدیل شوید. ما شما را با App Router و Pages Router آشنا می‌کنیم و رویکردهای جدید و قدیمی را آموزش می‌دهیم. همچنین Prisma و SQLite را برای مدیریت پایگاه داده خواهید آموخت و با JWT، JOSE و BcryptJS امنیت را در برنامه‌های خود پیاده‌سازی خواهید کرد.

سرفصل‌های کلیدی دوره:

  • آشنایی با مبانی Next.js
  • یادگیری کامل App Router در Next.js 14
  • بررسی دقیق Pages Router برای مهاجرت یا بازسازی کد
  • مدیریت حرفه‌ای پایگاه داده با SQLite
  • عملیات CRUD با better-sqlite3 و Prisma ORM
  • ساخت API و مدیریت داده‌ها
  • هش کردن امن رمز عبور با bcryptjs
  • پیاده‌سازی احراز هویت با JOSE و JWT
  • ساخت کامل سبد خرید
  • یکپارچه‌سازی درگاه پرداخت Stripe
  • اصول معماری مبتنی بر کامپوننت
  • اعتبارسنجی داده‌ها و پیاده‌سازی UI/UX
  • ساخت یک اپلیکیشن فروشگاه آنلاین کامل
  • سوالات مصاحبه و راهنمای آمادگی

مفاهیم کلیدی پوشش داده شده در این دوره:

  • مبانی Next.js
  • رندر سمت سرور (Server Side Rendering)
  • TailwindCSS برای طراحی رابط کاربری
  • App Router
  • Pages Router
  • مسیریابی (Routing) در Next.js
  • بارگذاری بهینه تصاویر (Optimized Image Loading)
  • کشینگ پیشرفته (Advanced Caching)
  • SQLite
  • better-sqlite3 ORM
  • Prisma ORM
  • REST APIs
  • CRUD با SQLite
  • کوکی‌ها (Cookies)
  • JWT
  • BcryptJS
  • پروژه فروشگاه آنلاین (E-commerce Project)
  • پیاده‌سازی Middleware در پروژه
  • پیاده‌سازی سبد خرید
  • درگاه پرداخت Stripe
  • اصول کدنویسی استاندارد صنعتی
  • استقرار (Deployment) با CICD
  • سوالات مصاحبه و موارد بیشتر…

Next.js به سرعت در حال تبدیل شدن به یکی از محبوب‌ترین فریم‌ورک‌ها در میان توسعه‌دهندگان است. این محبوبیت بی‌دلیل نیست! حتی سایت رسمی ReactJS نیز توسعه‌دهندگان را به استفاده از Next.js تشویق می‌کند، چرا که این فریم‌ورک پایه‌ی تمرینات کلاسیک React را با عملکرد نسل جدید ترکیب کرده است. این دوره به طور خاص برای توسعه‌دهندگانی طراحی شده است که می‌خواهند به راحتی به Next.js مهاجرت کنند. این دوره تمام جنبه‌های مبانی، سوالات مصاحبه و یک پروژه عملی بسیار کاربردی فروشگاه آنلاین را پوشش می‌دهد که تمام مراحل را از طراحی رابط کاربری تا استقرار موفق، همراه با پیاده‌سازی CICD، در بر می‌گیرد.

علاوه بر این، شما خواهید آموخت:

  • رندر سمت سرور برای بهبود سئو و عملکرد
  • تولید سایت استاتیک برای زمان بارگذاری فوق‌العاده سریع
  • تقسیم خودکار کد برای عملکرد بهینه
  • بهینه‌سازی تصاویر برای بارگذاری سریع‌تر صفحات
  • مسیریابی، دریافت داده و مدیریت وضعیت
  • بهترین شیوه‌ها برای ساخت برنامه‌های Next.js مقیاس‌پذیر

همین امروز ثبت‌نام کنید و گامی قاطع در جهت شکل‌دهی به یک حرفه موفق در دنیای توسعه وب مدرن سمت سرور بردارید.

پیش‌نیازها:

  • تسلط بر مبانی JavaScript و ReactJS کمک بزرگی خواهد کرد.
  • داشتن زمان، توجه و تعهد برای یادگیری و تمرین.

سرفصل ها و درس ها

مقدمه Introduction

  • مقدمه Introduction

  • NEXT JS در مقابل ReactJS NEXT JS in spite of ReactJS

  • RQ - NEXT JS در مقابل ReactJS RQ - NEXT JS in spite of ReactJS

  • ایجاد اولین پروژه Creating First Project

  • RQ - ایجاد اولین پروژه RQ - Creating First Project

  • ساختار پروژه Project Structure

  • RQ - ساختار پروژه RQ - Project Structure

  • Pages Router در مقابل App Router Pages Router Vs App Router

  • RQ - Pages Router در مقابل App Router RQ - Pages Router Vs App Router

  • ReactJS (سمت کلاینت) در مقابل NextJS (سمت سرور) ReactJS (Client side) Vs NextJS (Server side)

مبانی NextJS با App Router NextJS Basics with App Router

  • تعریف Route ها Defining Routes

  • Nested Routes Nested Routes

  • لینک کردن صفحات با <Link> Linking Pages with <Link>

  • درک Layout کلی Understanding Global Layout

  • ایجاد کامپوننت Header کلی Creating Global Header Component

  • نام مستعار Import The Import Alias

  • تنظیم favicon با استفاده از فایل های Image Configuring favicon using Image Files

  • تنظیم favicon با استفاده از کد Configuring favicon using Code

  • مبانی کامپوننت <Image/> <Image/> Component Basics

  • کامپوننت <Image> - قابلیت بهینه سازی خودکار <Image> Component - Auto Optimization Feature

  • RQ - کامپوننت <Image> - قابلیت بهینه سازی خودکار RQ - <Image> Component - Auto Optimization Feature

  • استایل‌دهی - CSS کلی و ماژول‌های CSS Styling - Global CSS and CSS Modules

  • RQ - استایل‌دهی - CSS کلی و ماژول‌های CSS RQ - Styling - Global CSS and CSS Modules

  • React Server Component در مقابل Client Component React Server Component Vs Client Component

  • RQ - React Server Component در مقابل Client Component RQ - React Server Component Vs Client Component

  • صفحه خطا Error Page

  • صفحه یافت نشد Not Found Page

  • مسیرهای پویا و پارامترهای مسیر Dynamic Routes and Route Params

  • انجام فراخوانی API در NextJS Making API calls in NextJS

  • کامپوننت‌های سرور ناهمزمان Asynchronous Server Components

  • RQ - کامپوننت‌های سرور ناهمزمان RQ - Asynchronous Server Components

  • پیاده‌سازی کامپوننت Loading Implementing Loading Component

مبانی SQLite SQLite Basics

  • مقدمه‌ای بر SQLite Introduction to SQLite

  • انواع داده در SQLite Data Types in SQLite

  • ایجاد پایگاه داده SQLite Creating SQLite Database

Next با SQLite Next with SQLite

  • مقدمه Introduction

  • تنظیم پایگاه داده با better-sqlite3 Setting up Database with better-sqlite3

  • ایجاد جدول و اضافه کردن داده Table Creation and Adding Data

  • رندر کردن داده‌ها در برنامه Next Rendering Data in Next App

  • تنظیم مسیرهای پویا برای محصولات Configuring Dynamic Routes for Products

  • بازسازی ساختار کد Refactoring the Code Structure

  • تنظیم دستی Tailwind CSS Manually Configuring Tailwind CSS

  • ایجاد رابط کاربری افزودن محصول Creating Add Product Interface

  • مدیریت ارسال فرم با Server Action Handling Form Submission with Server Action

  • اجرای Query و Redirect با redirect() Executing Query & Redirecting with redirect()

  • ایجاد رابط کاربری گرید محصولات Creating Products Grid Interface

  • RQ - ایجاد رابط کاربری گرید محصولات RQ - Creating Products Grid Interface

  • پیاده‌سازی قابلیت حذف محصول Implementing Delete Product Feature

  • پیاده‌سازی قابلیت ویرایش Implementing Edit Functionality

Caching در NextJS Caching in NextJS

  • درک Caching در Next Understanding Caching in Next

  • RQ - درک Caching در Next RQ - Understanding Caching in Next

  • رفتار غیرمنتظره در ساخت پروژه Unexpected Behaviour in Project Build

  • Static به Dynamic - کنترل کش Static to Dynamic - Cache Control

  • RQ - Static به Dynamic - کنترل کش RQ - Static to Dynamice - Cache Control

  • کنترل کش مبتنی بر زمان Time Based Cache Control

  • RQ - کنترل کش مبتنی بر زمان RQ - Time Based Cache Control

  • اعتبار سنجی مبتنی بر مسیر Path Based Revalidation

  • RQ - اعتبار سنجی مبتنی بر مسیر RQ - Path Based Revalidation

  • اعتبار سنجی با revalidateTag() Revalidating with revalidateTag()

  • RQ - اعتبار سنجی با revalidateTag() RQ - Revalidating with revalidateTag()

Pages Router Pages Router

  • مقدمه‌ای بر Pages Router Introduction to Pages Router

  • RQ - مقدمه‌ای بر Pages Router RQ - Introduction to Pages Router

  • مسیریابی با Pages Router Routing With Pages Router

  • استخراج Slug از مسیر پویا Extracting the Slug from Dynamic Path

  • Catch-All Segments در Pages Router Catch-All Segments in Pages Router

  • RQ - Catch-All Segments در Pages Router RQ - Catch-All Segments in Pages Router

  • RQ - رفتار غیرمنتظره در ساخت پروژه RQ - Unexpected Behaviour in Project Build

  • افزودن رابط کاربری کلی Adding Global Interface

  • لینک‌دهی و ناوبری Linking and Navigation

Prisma با SQLite Prisma with SQLite

  • مقدمه‌ای بر Prisma Introduction to Prisma

  • RQ - مقدمه‌ای بر Prisma RQ - Introduction to Prisma

  • تنظیم Prisma Setting Up Prisma

  • ایجاد کلاینت Prisma Creating Prisma Client

  • درج داده با استفاده از create() Inserting Data Using create()

  • درج داده با استفاده از createMany() Inserting Data Using createMany()

  • تمام احتمالات حذف رکورد - delete() و deleteMany() All Possibilities of Record Deletion - delete() & deleteMany()

  • بازیابی داده‌ها با Prisma Fetching Data with Prisma

  • به‌روزرسانی رکوردها با Prisma Updating Records with Prisma

  • متد upsert() The upsert() Method

MyStore - بخش مدیریت MyStore - Admin Section

  • مقدمه Introduction

  • ایجاد پروژه Project Creation

  • ایجاد کامپوننت Sidebar Creating Sidebar Component

  • کار بر روی Sidebar Working on Sidebar

  • ترکیب کلاس‌های Utility با @apply Combining Utility Classes with @apply

  • RQ - @layer & @apply - ترکیب کلاس‌های Utility RQ - @layer & @apply - Combining Utility Classes

  • استایل‌دهی Sidebar Styling the Sidebar

  • افزودن آیکون به Sidebar Adding Icons to the Sidebar

  • ایجاد صفحه ‘کاربران’ Creating ‘Users’ Page

  • ایجاد فرم ‘افزودن کاربر’ Creating ‘Add Users’ Form

  • پیاده‌سازی معماری مبتنی بر کامپوننت Implementing Component Based Architecture

  • ایجاد کامپوننت‌های Button و Input Creating Button & Input Components

  • بازسازی ساختار کد Refactoring Code Structure

  • ایجاد پایگاه داده Database Creation

  • افزودن کاربران با Server Action Adding Users with Server Action

  • پیاده‌سازی Hashing Implementing Hashing

  • RQ - پیاده‌سازی Hashing RQ - Implementing Hashing

  • اعتبارسنجی ایجاد کاربر Validating User Creation

  • رندر کردن کاربران در جدول Rendering Users in the Table

  • ایجاد صفحه ویرایش کاربر Creating Edit User Page

  • مقادیر پیش‌فرض پویا برای ویرایش Dynamic Default Values for Edit

  • به‌روزرسانی اطلاعات کاربر Updating User Data

  • حذف کاربر Deleting User

  • ایجاد پاپ‌آپ تأیید حذف Creating Delete Confirmation Popup

  • فعال کردن پاپ‌آپ تأیید Enabling Confirmation Popup

  • حذف کاربر با پاپ‌آپ تأیید Deleting User by confirmation popup

  • ایجاد صفحه نوع محصول Creating Product Type Page

  • ایجاد صفحه افزودن نوع محصول Creating Add Product Type Page

  • افزودن مدل‌های نوع محصول و محصول به اسکیما Adding Product Types and Products models into the schema

  • RQ - افزودن مدل‌ها در اسکیما - نوع محصول و محصول RQ - Adding Models In the Schema - Product Type & Product

  • افزودن نوع محصول با استفاده از server action Adding Product Type using server action

  • رندر کردن انواع محصول در جدول Rendering Product Types into the Table

  • ایجاد صفحه ویرایش نوع محصول Creating Edit Product Type Page

  • مقادیر پیش‌فرض پویا برای نوع محصول Dynamic Default values for Product Type

  • به‌روزرسانی نوع محصول با server action Updating Product Type with server action

  • حذف نوع محصول با server action Deleting Product Type with server action

  • ایجاد صفحه محصولات Creating Products Page

  • ایجاد رابط کاربری محصولات برای لیست کردن Creating Products interface for listing

  • ایجاد صفحه افزودن محصول Creating Add Product Page

  • تکمیل فرم افزودن محصولات Completing Add Products Form

  • ایجاد کامپوننت Switch Creating Switch Component

  • ایجاد کامپوننت File Input Creating File Input Component

  • رندر کردن داده‌های پویا از انواع محصول در صفحه افزودن محصول Rendering Dynamic Product Types Data in Add Product Page

  • ایجاد Server Action برای افزودن محصولات Creating Server Action for Adding Products

  • پیاده‌سازی قابلیت ذخیره‌سازی تصویر Implementing Image storage functionality

  • تکمیل قابلیت افزودن محصول Completing Add Product Functionality

  • رندر کردن داده‌های پویا در جدول محصولات Rendering Dynamic Data in Products table

  • ایجاد صفحه ویرایش محصول Creating Edit Product Page

  • مقادیر پیش‌فرض پویا برای محصول Dynamic Default values for Product

  • رندر مقادیر پیش‌فرض در سوئیچ و ورودی فایل Render Default values in Switch and File Input

  • به‌روزرسانی محصول با server action Updating Product with server action

  • RQ - به‌روزرسانی محصول با server action RQ - Updating Product with server action

  • حذف محصول با server action Deleting Product with server action

Mystore - بخش کلاینت Mystore - Client Section

  • راه‌اندازی بخش کلاینت Initiating Client Section

  • ایجاد کامپوننت Header Creating Header Component

  • پیاده‌سازی نوار جستجو Implementing Search bar

  • پیوند دادن کلاس‌های Tailwind با رویکرد ایده‌آل Joining Tailwind Classes with Ideal Approach

  • RQ-پیوند دادن کلاس‌های Tailwind با رویکرد ایده‌آل RQ-Joining Tailwind Classes with Ideal Approach

  • افزودن منوی کشویی پروفایل Adding Profile Dropdown

  • هوک useRef() useRef() Hook

  • بستن منوی کشویی پروفایل با کلیک خارج Close Profile Dropdown menu on outside click

  • RQ-بستن منوی کشویی پروفایل با کلیک خارج RQ-Close Profile Dropdown menu on outside click

  • ایجاد کامپوننت ورودی Creating Input component

  • ایجاد صفحه اصلی Creating Home Page

  • ایجاد بخش فیلترها Creating Filters Section

  • ایجاد کامپوننت آکاردئون سفارشی Creating Custom Accordion Component

  • RQ-ایجاد کامپوننت آکاردئون سفارشی RQ-Creating Custom Accordion Component

  • تکمیل کامپوننت آکاردئون سفارشی Completing Custom Accordion Component

  • ادامه بخش فیلتر Continue on Filter Section

  • ایجاد کامپوننت اسلایدر محدوده قیمت Creating Price Range Slider Component

  • ایجاد کامپوننت کارت محصول Creating Product Card Component

  • تکمیل کامپوننت کارت محصول Completing Product Card Component

  • ایجاد کامپوننت Button Creating Button component

  • ایجاد API برای لیست کردن محصول API Creation for Product listing

  • رندر کردن پویای محصولات با Server Action Dynamic Product Rendering using Server Action

  • ایجاد API برای دریافت انواع محصول API Creation For Fetching Product Types

  • رندر کردن پویای انواع محصول با API Dynamic Product Type Rendering using API

  • تنظیم مقادیر فیلتر در پارامترهای جستجو Set Filter values into the search params

  • اصلاح API محصولات برای اعمال فیلترها Modifying Products API to Apply Filters

  • قابلیت فیلتر در سمت کلاینت Filter Functionality on client side

  • قابلیت فیلتر جستجو Search Filter Functionality

  • ایجاد صفحه محصول Creating Product Page

  • تکمیل صفحه محصول Completing Product Page

  • ایجاد API برای دریافت محصول بر اساس شناسه آن API Creation For Fetching a Product by its ID

  • رندر کردن جزئیات محصول پویا با API Dynamic Product Details Rendering using API

  • رندر کردن محصولات بر اساس وضعیت Rendering Products based on status

  • ایجاد صفحه سبد خرید Creating Cart Page

  • رندر کردن کارت آیتم سبد خرید Rendering Cart Item Card

  • تکمیل رابط کاربری سبد خرید Completing the Cart UI

  • ایجاد کانتکست برای مدیریت محصولات Creating Context for Handling Products

  • RQ - ایجاد کانتکست برای مدیریت محصولات RQ - Creating Context for Handling Products

  • پیاده‌سازی قابلیت‌های سبد خرید Implement Cart Functionalities

  • پویاسازی صفحه سبد خرید Making Cart Page Dynamic

  • فعال‌سازی انتخاب تعداد Enabling Quantity Selection

  • تکمیل صفحه پویا سبد خرید Finishing Dynamic Cart Page

Mystore - احراز هویت Mystore - Authenitcation

  • ایجاد صفحه ورود Creating Login Page

  • معرفی JOSE + JWT Introduction of JOSE + JWT

  • تنظیم جریان احراز هویت با استفاده از JOSE + JWT Setup Authentication flow using JOSE + JWT

  • ایجاد سرور اکشن برای ورود Create Server action for Login

  • احراز هویت مبتنی بر کوکی Cookie Based Authentication

  • RQ - احراز هویت مبتنی بر کوکی RQ - Cookie Based Authentication

  • مدیریت مسیرهای خصوصی و عمومی با استفاده از middleware Handling Private and Public routes using middleware

  • دریافت اطلاعات کاربر احراز هویت شده Fetching Authenticated User Data

  • پیاده‌سازی خروج با Server Action Implementing Logout with Server Action

  • احراز هویت تمام Server Actions بخش مدیریت Authenticate all the Server Actions of Admin Section

  • ایجاد مسیرهای احراز هویت در بخش کلاینت Creating the Authentication Routes on the Client Section

  • ایجاد رابط برای مسیرهای احراز هویت Creating Interface for Authentication Routes

  • ایجاد جدول خریدار در پایگاه داده Creating Buyer Table in the Database

  • ایجاد API ثبت نام Creating Sign-up API

  • تست API ثبت نام با Postman Testing Signup API using Postman

  • ایجاد API ورود Creating Login API

  • تست API ورود با Postman Testing the Login API Using Postman

  • پیاده‌سازی قابلیت ثبت نام در بخش کلاینت Implementing Signup Functionality in the Client Section

  • پیاده‌سازی قابلیت ورود مشتری Implementing Customer Login Functionality

  • API برای دریافت داده‌های مشتری منحصر به فرد API to Fetch Unique Customer's data

  • دریافت داده‌های مشتری با API در بخش کلاینت Fetching Customer's data using API in the Client Section

  • قابلیت خروج در بخش کلاینت Logout Functionality in the Client Section

Mystore - درگاه پرداخت و فروش Mystore - Payment Gateway & Sales

  • مقدمه Introduction

  • RQ - مقدمه RQ - Introduction

  • تنظیمات پایه Stripe Basic Configurations of Stripe

  • رندر کردن فرم پرداخت تعبیه شده Stripe Rendering Stripe's Embedded Checkout Form

  • ایجاد پویای نشست پرداخت Creating Checkout Session Dynamically

  • ایجاد صفحه وضعیت پرداخت Creating Payment Status Page

  • ایجاد جداول فروش و تراکنش در پایگاه داده Creating Sales and Transaction Table in Database

  • API برای به‌روزرسانی پایگاه داده پس از پرداخت موفق API to Update Database after the Successful Checkout

  • تست API پرداخت با Postman Testing the Checkout API using Postman

  • ادغام API پرداخت در بخش کلاینت Integrating Checkout API in the Client Section

  • ایجاد بخش مدیریت خریدار Creating Buyer Master Section

  • دریافت لیست خریداران با Server Action Fetching Buyers List using Server Action

MyStore - گزارش‌ها و تحلیل‌ها (نمودارها) MyStore - Reports and Analysis (Charts)

  • مقدمه Introduction

  • آماده‌سازی گزارش مشتریان و خریداران Preparing Customers and Buyers Report

  • رندر کردن گزارش مشتریان و خریداران Rendering Customers & Buyers Report

  • آماده‌سازی گزارش کل درآمد Preparing Total Revenue Report

  • آماده‌سازی گزارش سفارشات اخیر Preparing Recent Order Report

  • ایجاد مودال محصولات خریداری شده Creating Purchased Products Modal

  • دریافت محصولات خریداری شده در مودال Fetching Purchased Products in Modal

  • رندر کردن محصولات در جدول محصولات خریداری شده Render Products in the Purchased Products table

  • پیاده‌سازی نمودار با استفاده از Recharts Implementing Chart Using Recharts

  • آماده‌سازی گزارش فروش با نمودار Preparing Sales Report using Chart

  • رندر کردن نمودار فروش با مقادیر پویا Rendering Sales Chart with dynamic values

  • آماده‌سازی گزارش مشتریان با نمودار Preparing Customers Report using Chart

  • ایجاد کامپوننت بخش نمودار Creating Chart Section Component

MyStore - استقرار MyStore - Deployment

  • مقدمه Introduction

  • RQ - مقدمه RQ - Introduction

  • مقدمه‌ای بر CI/CD Introduction to CI/CD

  • RQ - مقدمه‌ای بر CI/CD RQ - Introduction to CI/CD

  • یکپارچه‌سازی Github Github Integration

  • RQ - یکپارچه‌سازی Github RQ - Github integration

  • مهاجرت پایگاه داده از SQLite به MySQL Database Migration from SQLite to MySQL

  • پیوند دادن پایگاه داده MySQL به برنامه مدیریت Link the MySQL database to Admin Application

  • استقرار برنامه مدیریت در Vercel Deploying Admin App on Vercel

  • استقرار برنامه کلاینت در Vercel Deploying Client App on Vercel

نمایش نظرات

آموزش جامع نکست‌جی‌اس، سوالات مصاحبه، و پروژه فروشگاه اینترنتی
جزییات دوره
13.5 hours
231
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
184
4.7 از 5
دارد
دارد
دارد
Nirmal Joshi
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Nirmal Joshi Nirmal Joshi

مدیر عامل شرکت ، مربی شرکت ، برنامه نویسی AficionadoHi! من نیرمال جوشی هستم ، بنیانگذار و مدیرعامل یک شرکت توسعه فناوری در هند. من بیش از 23 سال تجربه کار با افراد ، فرایندها و کدها را دارم. من سالها مربی شرکتی فعال هستم و با شرکتهای برتر Fortune 1000 مشورت می کنم. سفر من در اینجا در Udemy شامل به اشتراک گذاری آموزشهای پیشرفته توسعه وب Front-end/Full-stack با تمرکز بر آخرین ابزارها ، تکنیک ها ، پروژه ها و شیوه های استاندارد برنامه نویسی برای کمک به افراد خلاق در پیاده سازی عالی فناوری است. اگر شما مشتاق فناوری هستید یا کسی که علاقه مند به ایجاد چیزهای شگفت انگیز در پیکسل و کد است ، حتماً در دوره های من ثبت نام کنید. ارتباط با من آسان است. سوالات خود را در بخش پرسش و پاسخ با من در میان بگذارید. موفق باشید!