آموزش NodeJS TypeScript - ساخت پروژه پورتال کاریابی (همراه با SQL، Redis) - آخرین آپدیت

دانلود NodeJS TypeScipt - Build Job Portal Project (/w SQL, Redis)

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

آموزش ساخت پورتال کاریابی با Node.js، TypeScript و SQL (پروژه محور)

در این دوره جامع، نحوه ساخت یک پورتال کاریابی کامل و حرفه‌ای از صفر تا صد را با استفاده از Node.js، TypeScript، SQL، Redis و Prisma فرا خواهید گرفت.

این دوره به شما کمک می‌کند تا یک بک‌اند مقیاس‌پذیر و کارآمد برای یک پورتال کاریابی با استفاده از NodeJS و TypeScript توسعه دهید.

آنچه در این دوره می‌آموزید:

  • پیاده‌سازی APIهای RESTful قدرتمند برای مدیریت لیست آگهی‌های شغلی، درخواست‌ها و احراز هویت کاربر.
  • تسلط بر SQL برای ذخیره‌سازی، بازیابی و دستکاری کارآمد داده‌ها.
  • استفاده از Prisma به عنوان یک ORM برای ساده‌سازی عملیات و تعاملات پایگاه داده.
  • بهینه‌سازی عملکرد بک‌اند با Redis برای کش کردن و بهبود زمان پاسخگویی.
  • ایمن‌سازی برنامه با احراز هویت و مجوز مبتنی بر JWT.
  • مدیریت آپلود فایل و اعتبارسنجی داده‌ها به روشی حرفه‌ای.
  • پیاده‌سازی قابلیت‌های صفحه‌بندی و جستجو در بک‌اند.
  • یادگیری بهترین روش‌ها برای ساختاربندی و سازماندهی کد بک‌اند به روشی مقیاس‌پذیر.

پیش‌نیازها:

  • دانش پایه از JavaScript
  • دانش پایه از SQL
  • نیازی به تجربه قبلی با NodeJS نیست.
  • نیازی به تجربه قبلی با Typescript نیست.

با تمرکز بر بک‌اند، قدرت توسعه وب را با پروژه نهایی پورتال کاریابی مبتنی بر NodeJS TypeScript SQL آزاد کنید. در این دوره جامع، یاد خواهید گرفت که چگونه یک پورتال کاریابی مقیاس‌پذیر و کارآمد را از پایه بسازید و بر فناوری‌های سمت سرور که برنامه‌های کاربردی وب مدرن را امکان‌پذیر می‌کنند، تمرکز کنید.

با Node.js و TypeScript شروع می‌کنید و در توسعه بک‌اند غوطه‌ور می‌شوید و یک API قوی برای مدیریت لیست‌های شغلی، درخواست‌ها و احراز هویت کاربر ایجاد می‌کنید. شما از قدرت پایگاه‌های داده SQL برای ذخیره‌سازی و بازیابی کارآمد داده‌ها استفاده خواهید کرد و از Prisma برای تعامل بی‌وقفه با پایگاه داده استفاده می‌کنید. علاوه بر این، Redis برای بهینه‌سازی عملکرد، پیاده‌سازی مکانیزم‌های کشینگ که تجربه کاربر را افزایش می‌دهد، استفاده خواهد شد.

در پایان این دوره، شما یک راه‌حل بک‌اند کامل برای یک پورتال کاریابی خواهید داشت که مجهز به احراز هویت، مدیریت داده و تکنیک‌های بهینه‌سازی است که برای هر برنامه کاربردی در مقیاس بزرگ ضروری است.

این دوره برای توسعه‌دهندگانی که به دنبال تقویت مهارت‌های بک‌اند خود و کسب تجربه عملی با ابزارها و شیوه‌های استاندارد صنعت هستند، عالی است.

چرا SQL را یاد بگیریم؟

دوره‌های زیادی وجود دارند که MongoDB (NoSQL) را به شما آموزش می‌دهند، اما در دنیای واقعی، بسیاری از شرکت‌ها از SQL استفاده می‌کنند. این دوره بر روی SQL تمرکز دارد و اطمینان حاصل می‌کند که شما مجهز به مهارت‌هایی هستید که در صنعت مورد تقاضا هستند.

مهارت‌های حل مسئله

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

چرا Class؟

به عنوان یک توسعه دهنده بک‌اند، یادگیری و تسلط بر کلاس‌ها بسیار مهم است. کلاس‌ها در TypeScript به شما این امکان را می‌دهند که طرح‌های اولیه شی را تعریف کنید و کد ساختارمندتر و قابل نگهداری‌تری را فعال کنید. این دوره مفاهیم اساسی برنامه نویسی شی گرا (OOP) و نحوه استفاده موثر از کلاس‌ها برای ساخت اجزای مقیاس‌پذیر و قابل استفاده مجدد در برنامه‌های کاربردی خود را پوشش می‌دهد.


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

مقدمه Introduction

  • مقدمه Introduction

توسعه وب Web Development

  • محتوای اضافی Additional content

  • مدل کلاینت سرور Client Server Model

  • پروتکل HTTP HTTP Protocol

  • درخواست HTTP HTTP Request

  • اگر به یک وب سایت برویم چه اتفاقی می افتد؟ What's happen if we go to a website?

  • شماره پورت چیست؟ What is a port number?

  • چگونه یک وب سایت بسازیم؟ How to build a website?

  • کد وضعیت HTTP HTTP Status Code

  • چگونه یک وب سایت را اجرا کنیم؟ How to run a website?

مبانی NodeJS NodeJS Fundementals

  • نصب NodeJS Install NodeJS

  • متغیرهای سراسری Global variables

  • ماژول: کلمه کلیدی require Module: require keyword

  • ماژول: کلمه کلیدی export Module: export keyword

  • ماژول داخلی: مسیر Bult-in Module: path

  • ماژول داخلی: fs Bult-in Module: fs

  • مزایای ناهمگام بودن Benefits of Asynchrony

  • منتشر کننده رویداد Event Emitter

  • ایجاد اولین وب سرور Create a first web server

  • پاسخ فایل html Response html file

  • بررسی آدرس اینترنتی Check url

  • پاسخ JSON Response JSON

  • ارسال داده به سرور Send data to server

  • آدرس اینترنتی جداگانه Separate URL

  • رسیدگی به استثنای یافت نشد Handle not found exception

  • به روز رسانی مورد Update item

  • حذف مورد Delete item

مبانی ExpressJS ExpressJS Fundementals

  • معرفی NPM Introduction to NPM

  • ExpressJS چیست؟ What is ExpressJS ?

  • ایجاد یک وب سرور Create a web server

  • پاسخ در express.js Response in express.js

  • کاوش روش HTTP در express.js Explore HTTP method in express.js

  • کاوش بخش های URL Explore parts of URL

  • REST/RESTFUL API چیست؟ What is a REST/RESTFUL API ?

  • دریافت یک مورد Get one item

  • راه اندازی مجدد خودکار سرور Auto restart server

  • ایجاد مورد Create item

  • به روز رسانی مورد Update item

  • حذف مورد Delete item

  • میان افزار Middleware

  • مدل-نما-کنترلر (MVC) Model View Controller (MVC)

  • بازسازی کد به MVC Refactor code to MVC

  • روتر در express.js Router in express.js

پروژه ساده Express.js Express.js Simple Project

  • بررسی اجمالی پروژه Project Overview

  • ایجاد یک پروژه جدید Create a new project

  • راه اندازی پوشه MVC Setup MVC folder

  • ایجاد یک پایگاه داده MongoDB Create a MongoDB database

  • Mongoose ODM Mongoose ODM

  • ایجاد مجموعه کاربر Create user collection

  • وارد کردن سند کاربر Insert user document

  • رسیدگی به خطای پایگاه داده Handle database error

  • JWT چیست؟ What is JWT?

  • ایجاد یک JWT Create a JWT

  • بررسی ایمیل منحصر به فرد Check email unique

  • ورود کاربر Login user

  • رمزگذاری رمز عبور Hash password

  • ایجاد مجموعه وظایف Create task collection

  • ایجاد یک وظیفه Create a task

  • احراز هویت وظیفه Task authentication

  • دریافت تمام وظایف Get all tasks

  • دریافت یک وظیفه Get single task

  • به روز رسانی وظیفه Update task

  • حذف وظیفه Delete task

  • جمع بندی Wrap up

TypeScript TypeScript

  • سیستم نوع پایه Basic type system

  • آرایه Array

  • شیء Object

  • آرایه ای از اشیاء Array of object

  • تابع Function

  • رابط Interface

  • معرفی کلاس Introduction to class

  • کلاس - ایجاد شیء Class - object creation

  • کلاس - سازنده Class - constructor

  • کلاس - متد Class - method

  • کلاس - وراثت Class - inheritance

  • کلاس - متد بازنویسی Class - override method

  • کلاس - اصلاح کننده های دسترسی Class - access modifiers

  • کلاس انتزاعی - قسمت 1 Abstract class - part 1

  • کلاس انتزاعی - قسمت 2 Abstract class - part 2

  • نام مستعار نوع Type alias

  • نوع اتحادیه Union type

  • نوع اشتراک Intersection type

  • تاپل Tuple

  • وراثت رابط Interface inheritance

  • نوع در مقابل رابط Type vs Interface

  • نوع شمارش Enum type

راه اندازی - زمان پروژه بزرگ Setup - Big Project Time

  • آماده سازی پروژه Prepare project

  • راه اندازی سرور Setup server

  • راه اندازی eslint و prettierrc Setup eslint and prettierrc

  • راه اندازی فرمت خودکار Setup auto format

  • راه اندازی برخی متدها Setup some methods

  • راه اندازی ساختار پوشه پروژه Setup folder structure project

  • متغیرهای محیطی Environment variables

  • راه اندازی روتر مانند حرفه ای ها! Setup router like pro!

  • نصب PG Admin Install PG Admin

  • راه اندازی Prisma ORM Setup Prisma ORM

  • چگونه داده ها را در Prisma ایجاد و دریافت کنیم؟ How to create & get data in Prisma ?

  • اضافه کردن ستون جدید به جدول موجود Adding new column on existing table

  • اصل مسئولیت واحد Single Responsibility Principle

مدیریت خطا Express Express Error Handling

  • خطای یافت نشد Not Found error

  • ثابت وضعیت HTTP HTTP Status Constant

  • ایجاد کلاس خطای سفارشی Create custom error class

  • پوشش ناهمزمان Async wrapper

  • خطای رایج Common error

  • چگونه اعتبار سنجی کنیم req.body؟ How to validate req.body ?

  • ایجاد یک میان افزار برای اعتبارسنجی Create a re-use middlware for validation

  • next() next()

ویژگی: احراز هویت Feature: Authentication

  • راه اندازی کنترلر احراز هویت Setup auth controller

  • عملکرد ثبت نام Signup functionality

  • عملکرد ورود Signin functionalify

  • ارسال توکن از طریق کوکی Send token via cookie

  • تابع sendTokenToCookie sendTokenToCookie function

  • میان افزار تایید کاربر Verify User middleware

  • عملکرد خروج Logout functionality

  • روش دیگر برای پرتاب خطا Another way to throw error

ویژگی: پروفایل نامزد Feature: Candidate Profile

  • طراحی مدل پروفایل نامزد Design a candidate profile model

  • راه اندازی ساختار پوشه Setup folder structure

  • ایجاد پروفایل نامزد Create candidate profile

  • دریافت پروفایل نامزد Get candidate profile

  • به روز رسانی پروفایل نامزد Update candidate profile

  • حذف پروفایل نامزد Delete candidate profile

  • رفع هر نوع Fix any type

  • یک مشکل بزرگ با متد get A big gotcha with get method

  • تابع قابل استفاده مجدد Reuseable function

  • اجازه دسترسی میان افزار Allow access middleware

  • اعتبارسنجی طرحواره Schema validation

  • نامزد آماده به کار Candidate open to work property

ویژگی: زبان نامزد Feature: Candidate Language

  • طراحی مدل زبان Design a language model

  • چگونه داده ها را در prisma seed کنیم؟ How to seed data in prisma?

  • رابطه چند به چند Many to Many relationship

  • ساختار پوشه Folder structure

  • اضافه کردن زبان به پروفایل نامزد Add language to candidate profile

  • خواندن زبان های من Read my languages

  • به روز رسانی سطح زبان Update language level

  • حذف زبان Delete language

  • رابط و طرحواره Interface & Schema

ویژگی: تحصیلات Feature: Education

  • ایجاد یک مدل تحصیلات Create an education model

  • Seed کردن برخی از تحصیلات Seed some educations

  • دوباره! رابطه چند به چند Again! Many to Many relationship

  • ساختار پوشه Folder structure

  • اضافه کردن تحصیلات به پروفایل نامزد Add education to candidate profile

  • دریافت تحصیلات من Get my educations

  • به روز رسانی تحصیلات Update education

  • حذف تحصیلات Delete education

  • رابط Interface

  • اعتبارسنجی طرحواره Schema validation

ویژگی: مهارت Feature: Skill

  • ایجاد مدل مهارت Create skill model

  • Seed کردن برخی از مهارت ها Seed some skills

  • مدل مهارت نامزد Candidate skill model

  • اضافه کردن مهارت برای پروفایل نامزد Add skill for candidate profile

  • دریافت مهارت های من Get my skills

  • حذف مهارت Remove skill

ویژگی: تجربه Feature: Experience

  • رابطه یک به چند One to Many relationship

  • ساختار پوشه Folder structure

  • ایجاد تجربه نامزد Create candidate experience

  • دریافت تجربیات من Get my experiences

  • دریافت تجربه نامزد Get candidate experience

  • حذف تجربه Delete experience

  • رابط و اعتبارسنجی طرحواره Interface & Schema validation

ویژگی: شرکت Feature: Company

  • طراحی مدل شرکت Design a company model

  • ساختار پوشه Folder structure

  • ایجاد شرکت Create company

  • دریافت شرکت Get company

  • صفحه بندی Pagination

  • پاسخ با صفحه بندی Response with pagination

  • فیلتر کردن Filtering

  • چگونه منطق صفحه بندی را دوباره استفاده کنیم؟ How to re-use pagination logic?

  • چگونه منطق صفحه بندی را به روش های مختلف اعمال کنیم؟ How to apply pagination logic to different method?

  • به روز رسانی شرکت Update company

  • تایید شرکت Approve company

  • حذف شرکت Delete company

  • رابط و اعتبارسنجی طرحواره Interface & Schema validation

ویژگی: تصاویر شرکت Feature: Company Images

  • رابطه یک به چند One to Many relationship

  • ساختار پوشه Folder structure

  • چگونه چندین تصویر ارسال کنیم؟ How to send multiple images?

  • دریافت تصویر شرکت Get company image

  • چگونه یک تصویر را حذف کنیم؟ How to delete an image?

ویژگی: صنعت Feature: Industry

  • ایجاد مدل و seed کردن داده ها Create model & seed data

  • ایجاد مدل صنعت شرکت Create company industry model

  • ساختار پوشه Folder structure

  • اضافه کردن صنعت به شرکت Add industry to company

  • دریافت همه شرکت ها Get all companies

  • حذف یک صنعت Delete an industry

ویژگی: نقش (شغل) Feature: Role (Job)

  • ایجاد یک مدل نقش شغلی Create a job role model

  • ساختار پوشه Folder structure

  • ایجاد نقش Create role

  • دریافت همه نقش های شغلی Get all job roles

  • حذف نقش شغلی Delete job role

ویژگی: شغل Feature: Job

  • طراحی یک مدل Design a model

  • ساختار پوشه Folder structure

  • ایجاد یک شغل Create a job

  • اضافه کردن معیارهای فیلتر بیشتر Add more filtering criteria

  • سفارش داده ها Order data

  • دریافت یک شغل Get one job

  • Join کردن جدول در prisma Join table in prisma

  • بهترین استراتژی سریال سازی داده ها Best serialize data strategy

  • به روز رسانی شغل Update job

  • به روز رسانی وضعیت Update status

  • حذف نرم Soft delete

  • رابط و اعتبارسنجی طرحواره Interface & Schema validation

ویژگی: مهارت شغلی Feature: Job Skill

  • ایجاد یک مدل مهارت شغلی Create a job skill model

  • ایجاد ساختار پوشه Create folder structure

  • ایجاد مهارت برای شغل Create skill for job

  • دریافت مهارت شغلی Get job skill

  • حذف مهارت شغلی Remove job skill

ویژگی: مزایای شغلی Feature: Job Benefit

  • ایجاد مدل Create model

  • رابطه چند به چند Many to Many relationship

  • ساختار پوشه Folder structure

  • ایجاد مزیت شغلی Create job benefit

  • دریافت مزایای شغلی Get job benefits

  • حذف مزیت Delete benefit

ویژگی: درخواست شغل Feature: Apply Job

  • ایجاد یک مدل درخواست Create an apply model

  • ساختار پوشه Folder structure

  • درخواست شغل Apply job

  • دریافت درخواست ها Get applications

  • بهبود دریافت درخواست ها Improve get applications

  • به روز رسانی وضعیت درخواست Update apply status

  • درخواست شغل فعال Apply the active job

ویژگی: بسته Feature: Package

  • ایجاد یک مدل بسته Create a package model

  • ساختار پوشه Folder structure

  • ایجاد یک بسته Create a package

  • دریافت همه بسته ها Get all packages

  • به روز رسانی بسته Update package

  • به روز رسانی وضعیت بسته Update package status

  • ایجاد مدل بسته استخدام کننده Create recruiter package model

  • ایجاد مدل سفارش Create order model

  • ساختار پوشه بسته استخدام کننده Recruiter package folder structure

  • پیگیری آن در سفارش Track it in order

  • جلوگیری از خرید مجدد بسته Prevent buy package second times

  • محدود کردن ارسال شغل Limit job posting

  • خرید بسته توسط استخدام کننده Recruiter buy package

  • ساختار پوشه سفارش Order folder structure

  • دریافت سفارشات Get orders

  • دریافت یک سفارش Get one order

  • به روز رسانی وضعیت سفارش Update order status

حذف آبشاری On Delete Cascade

  • غیرفعال کردن مسیر حذف نامزد Disable delete candidate route

ویژگی: کاربر Feature: User

  • ایجاد یک کاربر جدید Create a new user

  • دریافت کاربر و صفحه بندی Get user & pagination

  • به روز رسانی کاربر Update user

  • به روز رسانی رمز عبور Update password

  • به روز رسانی وضعیت Update status

  • رابط و اعتبارسنجی طرحواره Interface & Schema validation

  • تابع حذف فیلدها Exclude fields function

نصب Redis Redis Installiation

  • redis چیست؟ What is redis?

  • ساختار داده redis چیست؟ What is redis data structure?

  • چگونه redis را نصب کنیم؟ (Docker) How to install redis? (Docker)

رشته Redis Redis String

  • دستور SET SET command

  • دستور SET با گزینه ها SET command with options

  • چگونه تعداد را افزایش دهیم؟ How to increment number?

لیست Redis Redis List

  • اضافه کردن عنصر به لیست Add element into list

  • اضافه کردن عنصر در ابتدای لیست Add element at the beginning of the list

  • حذف عنصر در لیست Remove element in list

  • دریافت عنصر در لیست Get element in list

  • LLEN & LREM LLEN & LREM

هش Redis Redis Hash

  • ذخیره یک هش Store a hash

  • قرارداد کلید Key convention

  • افزایش مقدار Increment value

  • دریافت تمام کلیدها در هش Get all keys in hash

مجموعه Redis Redis Set

  • ذخیره عضو در مجموعه Store member in set

  • SCARD & SISMEMBER SCARD & SISMEMBER

  • حذف عضو در مجموعه Remove member in set

مجموعه مرتب شده Redis Redis Sorted Set

  • اضافه کردن عضو به مجموعه مرتب شده Add member to sorted set

  • دریافت اعضا Get members

سیستم کشینگ Redis Redis Caching System

  • راه اندازی node redis در برنامه ما Setup node redis in our application

  • بازسازی کلاینت redis به کلاس Refactor redis client to class

  • چه داده ای را کش خواهیم کرد؟ What's data we will cache ?

  • تفکر در مورد کشینگ Thinking about caching

  • جریان کشینگ Caching flow

  • کش کاربر Cache user

  • بازسازی کش کاربر Refactor cache user

  • مشکل با کشینگ Problem with caching

  • به روز رسانی هش کاربر Update user hash

  • کش شرکت Caching company

  • به روز رسانی هش شرکت Update company hash

  • تایید شرکت Approve company

  • کش شغل Cache Job

  • به روز رسانی هش شغل Update job hash

  • تمرین: مدل بسته Excercise: Package model

افزایش بازدید و Cron Job Increment View & Cron Job

  • ساختار داده برای افزایش بازدید چیست؟ What's data structure for increment view?

  • جریان افزایش بازدید The flow of increment view

  • افزایش بازدید شرکت Increment view of company

  • افزایش بازدید اگر وارد نشده باشد NOT increment view if NOT logged

  • بازسازی منطق بازدید به تابع کارخانه ای Refactor view logic to factory function

  • افزایش بازدید شغل Increment job views

  • رفع بازدید اول Fix first time view

  • توضیح cron job Explain cron job

  • همگام سازی Redis با Postgres Synchornize Redis to Postgres

نمایش نظرات

آموزش NodeJS TypeScript - ساخت پروژه پورتال کاریابی (همراه با SQL، Redis)
جزییات دوره
32 hours
287
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
284
4.1 از 5
ندارد
دارد
دارد
Van Nguyen
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Van Nguyen Van Nguyen

توسعه دهنده وب