برنامه نویسی

استخدام – جایی که استعداد با فرصت روبرو می شود

Summarize this content to 400 words in Persian Lang
این یک ارسال برای چالش AWS Amplify Fullstack TypeScript است

چیزی که من ساختم

استخدام کنند پلتفرمی است که برای پر کردن شکاف بین جویندگان کار و کارفرمایان طراحی شده است. این یک تجربه یکپارچه را برای هر دو طرف فراهم می کند تا مطابقت کامل را برای نیازهای خود پیدا کنند.

امکانات

کارفرما

ایجاد آگهی‌های شغلی: کارفرمایان می‌توانند فهرست‌های شغلی دقیقی را ایجاد کنند که مهارت‌ها، تجربه، مکان و موارد دیگر مورد نیاز را مشخص کند.
مدیریت برنامه ها: کارفرمایان می توانند به طور مؤثر برنامه های دریافت شده برای آگهی های شغلی خود را مدیریت و تأیید کنند.

جویای کار

جستجوی مشاغل: جویندگان کار می توانند لیست مشاغل را بر اساس ترجیحات خود جستجو و فیلتر کنند.
درخواست شغل: به راحتی برای فرصت های شغلی مختلف درخواست دهید.
دریافت اعلان ها: در مورد لیست های شغلی جدید که با مهارت های شما مطابقت دارند مطلع شوید

نسخه ی نمایشی و کد

استخدام کنند در اینجا موجود است و کد در GitHub در دسترس است.

استخدام – جایی که استعداد با فرصت روبرو می شود

استخدام کنند پلتفرمی است که برای پر کردن شکاف بین جویندگان کار و کارفرمایان طراحی شده است. این یک تجربه یکپارچه را برای هر دو طرف فراهم می کند تا مطابقت کامل را برای نیازهای خود پیدا کنند.

کارفرما

ایجاد آگهی‌های شغلی: کارفرمایان می‌توانند فهرست‌های شغلی دقیقی را ایجاد کنند که مهارت‌ها، تجربه، مکان و موارد دیگر مورد نیاز را مشخص کند.
مدیریت برنامه ها: کارفرمایان می توانند به طور مؤثر برنامه های دریافت شده برای آگهی های شغلی خود را مدیریت و تأیید کنند.

جویای کار

جستجوی مشاغل: جویندگان کار می توانند لیست مشاغل را بر اساس ترجیحات خود جستجو و فیلتر کنند.
درخواست شغل: به راحتی برای فرصت های شغلی مختلف درخواست دهید.
دریافت اعلان ها: در مورد لیست های شغلی جدید که با مهارت های شما مطابقت دارند مطلع شوید

استخدام کنند اینجا موجود است

Backend: AWS Amplify

Frontend: Angular 17، Angular Material، Tailwind CSS

AWS Amplify Technologies: داده ها (DynamoDB)، احراز هویت (Cognito)، توابع بدون سرور (لامبدا)، ذخیره سازی فایل (S3)

میزبانی: AWS Amplify

طراحی پایگاه داده

اسکرین شات ها

صفحه مشاغل را مرور کنید

ویرایش نمایه

ایجاد/ویرایش پست شغلی

تولید شرح شغل

صفحه جزئیات شغل (ایجاد شغل)

صفحه جزئیات شغل (جوینده کار)

صفحه درخواست های شغلی (جویای کار)

صفحه برنامه های شغلی (ایجاد شغل)

اطلاعیه شغلی جدید

ادغام ها

پشته فناوری

Backend: AWS Amplify

Frontend: Angular 17، Angular Material، Tailwind CSS

فناوری های AWS: داده ها (DynamoDB)، احراز هویت (Cognito)، توابع بدون سرور (Lambda)، ذخیره سازی فایل (S3)، هوش مصنوعی (Bedrock)

میزبانی: AWS Amplify

اجزای متصل و ویژگی کامل

این پروژه از اجزای متصل Amplify برای Angular استفاده می کند – احراز هویت برای ثبت نام و ورود کاربران

این پروژه همچنین هر چهار ادغام را ادغام می کند – داده ها، احراز هویت، توابع بدون سرور، ذخیره سازی فایل

AWS Amplify

معماری

احراز هویت

از AWS Amplify Authentication برای ثبت نام کاربر و ورود به سیستم از طریق ایمیل که از خدمات AWS Cognito استفاده می کند، استفاده می کند.

پیکربندی شده در amplify/auth/resource.ts

export const auth = defineAuth({
loginWith: {
email: true,
}
});

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

با مولفه Amplify UI پیاده سازی شده است برای Angular.

داده ها

از AWS Amplify Data برای ذخیره اطلاعات در مورد آن استفاده می کند کاربران، شرکت ها، و شغل ها که از AWS DynamoDB استفاده می کند. طراحی پایگاه داده در بالا نشان داده شده است.

پیکربندی شده در amplify/data/resource.ts

طراحی پایگاه داده

ذخیره سازی

AWS Amplify S3 Storage برای ذخیره سازی شرکت استفاده می شود آرم ها و جویای کار رزومه.

پیکربندی شده در amplify/storage/resource.ts

export const storage = defineStorage({
name: ‘recruitifyFiles’,
access: (allow) => ({
‘companyLogos/*’: [
allow.authenticated.to([‘read’, ‘write’]),
allow.guest.to([‘read’, ‘write’])
],
‘resumes/*’: [
allow.authenticated.to([‘read’, ‘write’]),
allow.guest.to([‘read’, ‘write’])
],
})
});

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

فایل ها با استفاده از uploadData مانند زیر

const result = await uploadData({
data: this.previewUrl,
path: `companyLogos/${this.authService?.userProfile?.id}`,
}).result;

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

و فایل ها در صورت لزوم با استفاده از آن دانلود شدند downloadData مانند زیر

downloadData({ path: profile.data[0].resume })

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

کارکرد

برای ارسال از توابع AWS Amplify Lambda استفاده می شود اطلاعیه های شغلی جدید به جویندگان کار مطابق با مجموعه مهارت های آنها و تولید شرح شغل برای ایجاد شرح شغل برای ایجاد مشاغل.

از AWS Amplify استفاده شده است AppSync GraphQL API در داخل تابع برای یافتن جویندگان کار مرتبط و ایجاد اعلان های شغلی جدید.

استفاده شده بستر AWS با مدل Mistral AI در داخل تابع برای تولید شرح شغل.

پیکربندی شده در amplify/functions/new-job/handler.ts

هنگامی که یک کار جدید توسط کارفرما با استفاده از جهش در داده هایی مانند زیر ایجاد می شود، فعال می شود:

sendJobNotification: a.mutation()
.arguments({ jobId: a.string(), companyId: a.string() })
.returns(a.string())
.authorization(allow => [allow.publicApiKey()])
.handler(a.handler.function(newJob))

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

client.mutations.sendJobNotification({
jobId: job.data?.id,
companyId: job.data?.companyId
}).then((job) => {
console.log(job)
})

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

شرح شغل ایجاد شده مانند زیر:

generateJobDescription: a.mutation()
.arguments({ title: a.string(), minExperience: a.float(), skills: a.string(), domain: a.string() })
.returns(a.string())
.authorization(allow => [allow.publicApiKey()])
.handler(a.handler.function(generateJobDescription))

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

client.mutations.generateJobDescription({
title: this.createJobForm.value.title,
skills: this.skills.join(‘,’),
domain: this.createJobForm.value.domain,
minExperience: this.createJobForm.value.minExperience,
}).then((response) => {
console.log(response);
if (response?.data) {
this.createJobForm.patchValue({
description: response.data
})
}
}).finally(() => {
this.loadingService.hide();
})

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

استفاده شده Mistral 7B مدل با اعلان مانند این:

const text = `
Job Title: ${title}
Job Domain: ${domain}
Job Min Experience: ${minExperience} years
Job Required Skills: ${skills}
`
const prompt = `Your task is to generate a job description for below-given job details.

Job Details: ${text}

Job Description: `

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

و مدل را مانند زیر فراخوانی کنید:

const input = {
modelId: “mistral.mistral-7b-instruct-v0:2”,
contentType: “application/json”,
accept: “application/json”,
body: JSON.stringify({
prompt: `[INST] ${prompt} [/INST]`,
max_tokens: 2000,
temperature: 0.5,
}),
} as InvokeModelCommandInput;

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

میزبانی

از هاست AWS برای استقرار یکپارچه برنامه استفاده شده است.

حوزه آینده

اطلاعیه های برنامه: اعلان ها برای تغییر وضعیت درخواست کار برای جویندگان کار و کارفرمایان

پیام های چت بیدرنگ: پیام چت بیدرنگ بین کارجو و کارفرما

نتیجه

استخدام کنند از قدرت استفاده می کند AWS Amplify برای ارائه یک برنامه قوی و تمام پشته. هنگام کار با جعبه ابزار AWS و AWS Amplify همراه با Angular در این پروژه، چیزهای زیادی باید یاد بگیرید.

این یک ارسال برای چالش AWS Amplify Fullstack TypeScript است

چیزی که من ساختم

استخدام کنند پلتفرمی است که برای پر کردن شکاف بین جویندگان کار و کارفرمایان طراحی شده است. این یک تجربه یکپارچه را برای هر دو طرف فراهم می کند تا مطابقت کامل را برای نیازهای خود پیدا کنند.

امکانات

کارفرما

  • ایجاد آگهی‌های شغلی: کارفرمایان می‌توانند فهرست‌های شغلی دقیقی را ایجاد کنند که مهارت‌ها، تجربه، مکان و موارد دیگر مورد نیاز را مشخص کند.
  • مدیریت برنامه ها: کارفرمایان می توانند به طور مؤثر برنامه های دریافت شده برای آگهی های شغلی خود را مدیریت و تأیید کنند.

جویای کار

  • جستجوی مشاغل: جویندگان کار می توانند لیست مشاغل را بر اساس ترجیحات خود جستجو و فیلتر کنند.
  • درخواست شغل: به راحتی برای فرصت های شغلی مختلف درخواست دهید.
  • دریافت اعلان ها: در مورد لیست های شغلی جدید که با مهارت های شما مطابقت دارند مطلع شوید

نسخه ی نمایشی و کد

استخدام کنند در اینجا موجود است و کد در GitHub در دسترس است.

استخدام – جایی که استعداد با فرصت روبرو می شود

استخدام کنند پلتفرمی است که برای پر کردن شکاف بین جویندگان کار و کارفرمایان طراحی شده است. این یک تجربه یکپارچه را برای هر دو طرف فراهم می کند تا مطابقت کامل را برای نیازهای خود پیدا کنند.

کارفرما

  • ایجاد آگهی‌های شغلی: کارفرمایان می‌توانند فهرست‌های شغلی دقیقی را ایجاد کنند که مهارت‌ها، تجربه، مکان و موارد دیگر مورد نیاز را مشخص کند.
  • مدیریت برنامه ها: کارفرمایان می توانند به طور مؤثر برنامه های دریافت شده برای آگهی های شغلی خود را مدیریت و تأیید کنند.

جویای کار

  • جستجوی مشاغل: جویندگان کار می توانند لیست مشاغل را بر اساس ترجیحات خود جستجو و فیلتر کنند.
  • درخواست شغل: به راحتی برای فرصت های شغلی مختلف درخواست دهید.
  • دریافت اعلان ها: در مورد لیست های شغلی جدید که با مهارت های شما مطابقت دارند مطلع شوید

استخدام کنند اینجا موجود است

  • Backend: AWS Amplify
  • Frontend: Angular 17، Angular Material، Tailwind CSS
  • AWS Amplify Technologies: داده ها (DynamoDB)، احراز هویت (Cognito)، توابع بدون سرور (لامبدا)، ذخیره سازی فایل (S3)
  • میزبانی: AWS Amplify

طراحی پایگاه داده

اسکرین شات ها

صفحه مشاغل را مرور کنید
صفحه مشاغل را مرور کنید

ویرایش نمایه
ویرایش نمایه

ایجاد/ویرایش پست شغلی
ایجاد/ویرایش پست شغلی
ایجاد/ویرایش Job Posting2

تولید شرح شغل
https%3A%2F%2Fdev to” loading=”lazy” width=”800″ height=”415″/>

صفحه جزئیات شغل (ایجاد شغل)
صفحه جزئیات شغل (ایجاد شغل)

صفحه جزئیات شغل (جوینده کار)
صفحه جزئیات شغل (جوینده کار)

صفحه درخواست های شغلی (جویای کار)
جویای کار

صفحه برنامه های شغلی (ایجاد شغل)
صفحه برنامه های شغلی (ایجاد شغل)

اطلاعیه شغلی جدید
اطلاعیه شغلی جدید

ادغام ها

پشته فناوری

  • Backend: AWS Amplify
  • Frontend: Angular 17، Angular Material، Tailwind CSS
  • فناوری های AWS: داده ها (DynamoDB)، احراز هویت (Cognito)، توابع بدون سرور (Lambda)، ذخیره سازی فایل (S3)، هوش مصنوعی (Bedrock)
  • میزبانی: AWS Amplify

اجزای متصل و ویژگی کامل

این پروژه از اجزای متصل Amplify برای Angular استفاده می کند – احراز هویت برای ثبت نام و ورود کاربران

این پروژه همچنین هر چهار ادغام را ادغام می کند – داده ها، احراز هویت، توابع بدون سرور، ذخیره سازی فایل

AWS Amplify

معماری

recruitify-aws-architecture

احراز هویت

از AWS Amplify Authentication برای ثبت نام کاربر و ورود به سیستم از طریق ایمیل که از خدمات AWS Cognito استفاده می کند، استفاده می کند.

پیکربندی شده در amplify/auth/resource.ts

export const auth = defineAuth({
  loginWith: {
    email: true,
  }
});
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

با مولفه Amplify UI پیاده سازی شده است برای Angular.

داده ها

از AWS Amplify Data برای ذخیره اطلاعات در مورد آن استفاده می کند کاربران، شرکت ها، و شغل ها که از AWS DynamoDB استفاده می کند. طراحی پایگاه داده در بالا نشان داده شده است.

پیکربندی شده در amplify/data/resource.ts

طراحی پایگاه داده
Recruityfy-DB

ذخیره سازی

AWS Amplify S3 Storage برای ذخیره سازی شرکت استفاده می شود آرم ها و جویای کار رزومه.

پیکربندی شده در amplify/storage/resource.ts

export const storage = defineStorage({
  name: 'recruitifyFiles',
  access: (allow) => ({
    'companyLogos/*': [
      allow.authenticated.to(['read', 'write']),
      allow.guest.to(['read', 'write'])
    ],
    'resumes/*': [
      allow.authenticated.to(['read', 'write']),
      allow.guest.to(['read', 'write'])
    ],
  })
});
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

فایل ها با استفاده از uploadData مانند زیر

 const result = await uploadData({
        data: this.previewUrl,
        path: `companyLogos/${this.authService?.userProfile?.id}`,
      }).result;
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

و فایل ها در صورت لزوم با استفاده از آن دانلود شدند downloadData مانند زیر

 downloadData({ path: profile.data[0].resume })
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

کارکرد

برای ارسال از توابع AWS Amplify Lambda استفاده می شود اطلاعیه های شغلی جدید به جویندگان کار مطابق با مجموعه مهارت های آنها و تولید شرح شغل برای ایجاد شرح شغل برای ایجاد مشاغل.

از AWS Amplify استفاده شده است AppSync GraphQL API در داخل تابع برای یافتن جویندگان کار مرتبط و ایجاد اعلان های شغلی جدید.

استفاده شده بستر AWS با مدل Mistral AI در داخل تابع برای تولید شرح شغل.

پیکربندی شده در amplify/functions/new-job/handler.ts

هنگامی که یک کار جدید توسط کارفرما با استفاده از جهش در داده هایی مانند زیر ایجاد می شود، فعال می شود:

sendJobNotification: a.mutation()
    .arguments({ jobId: a.string(), companyId: a.string() })
    .returns(a.string())
    .authorization(allow => [allow.publicApiKey()])
    .handler(a.handler.function(newJob))
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

client.mutations.sendJobNotification({
        jobId: job.data?.id,
        companyId: job.data?.companyId
      }).then((job) => {
        console.log(job)
      })
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

شرح شغل ایجاد شده مانند زیر:

generateJobDescription: a.mutation()
    .arguments({ title: a.string(), minExperience: a.float(), skills: a.string(), domain: a.string() })
    .returns(a.string())
    .authorization(allow => [allow.publicApiKey()])
    .handler(a.handler.function(generateJobDescription))
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

client.mutations.generateJobDescription({
      title: this.createJobForm.value.title,
      skills: this.skills.join(','),
      domain: this.createJobForm.value.domain,
      minExperience: this.createJobForm.value.minExperience,
    }).then((response) => {
      console.log(response);
      if (response?.data) {
        this.createJobForm.patchValue({
          description: response.data
        })
      }
    }).finally(() => {
      this.loadingService.hide();
    })
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

استفاده شده Mistral 7B مدل با اعلان مانند این:

 const text = `
          Job Title: ${title}
          Job Domain: ${domain}
          Job Min Experience: ${minExperience} years
          Job Required Skills: ${skills}
        `
    const prompt = `Your task is to generate a job description for below-given job details.

        Job Details: ${text}

        Job Description: `
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

و مدل را مانند زیر فراخوانی کنید:

const input = {
      modelId: "mistral.mistral-7b-instruct-v0:2",
      contentType: "application/json",
      accept: "application/json",
      body: JSON.stringify({
        prompt: `[INST] ${prompt} [/INST]`,
        max_tokens: 2000,
        temperature: 0.5,
      }),
    } as InvokeModelCommandInput;
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

میزبانی

از هاست AWS برای استقرار یکپارچه برنامه استفاده شده است.

حوزه آینده

  • اطلاعیه های برنامه: اعلان ها برای تغییر وضعیت درخواست کار برای جویندگان کار و کارفرمایان
  • پیام های چت بیدرنگ: پیام چت بیدرنگ بین کارجو و کارفرما

نتیجه

استخدام کنند از قدرت استفاده می کند AWS Amplify برای ارائه یک برنامه قوی و تمام پشته. هنگام کار با جعبه ابزار AWS و AWS Amplify همراه با Angular در این پروژه، چیزهای زیادی باید یاد بگیرید.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا