dmkdev / 2048game

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Говорят пет проекты улучшают карму при поиске работы.

Проект сделан из базового проекта Next.js На главную страничку добавлена игра 2048. Использован canvas с возможностью регулировки fps :)

npm i
npm run dev

Плюс немного юмора:

// One more pet project )

import companies from './bestcompanies';
import resume from './resume';

interface IOffer {
  companyName: string,
  salary: number
}

type SearchJobStatus = "completed" | "inprogress";

type Company = {
  name: string,
  mailSentCounter: number,
  sendMail: (text: string) => void
}

interface ISearchJob {
  name: string,
  status: SearchJobStatus,
  offers: IOffer[],
  companies: ICompanyList,
  doAttempt: () => void
}

interface ICompanyList {
  getList: () => Company[],
  find: (fn: (c: Company) => boolean) => Company
}

class FavoriteJobSearch implements ISearchJob {
  name = "Frontend developer";
  offers: IOffer[] = [];
  status: SearchJobStatus = "inprogress";
  companies: ICompanyList;

  bestCompany: Company | null = null;

  constructor(companyList: ICompanyList) {
    this.companies = companyList;
  }

  doAttempt() {
    const mailTargets =
      this.companies
        .getList()
        .filter(company => company.mailSentCounter === 0);

    for (let company of mailTargets) {
      company.sendMail(resume.applyTemplate(company));
      company.mailSentCounter++;
    }

    this.checkReceivedOffers();
  }

  offerReceived(offer: IOffer) {
    this.offers.push(offer);
  }

  checkReceivedOffers() {
    for (let offer of this.offers) {
      if (offer.salary >= Number(process.env.SALARY)) {
        this.status = "completed";
        this.bestCompany = this.companies.find(company => company.name === offer.companyName)
      }
    }
    
  }
}

const myJobSearch = new FavoriteJobSearch(companies);

while (myJobSearch.status !== "completed") {
  myJobSearch.doAttempt();
}

console.log(`Best company: ${myJobSearch.bestCompany}`)

About


Languages

Language:TypeScript 85.3%Language:CSS 14.3%Language:JavaScript 0.4%