GithubHelp home page GithubHelp logo

hexlet / hexlet-cv Goto Github PK

View Code? Open in Web Editor NEW
95.0 9.0 106.0 4.42 MB

Stackoverflow for Resume

Home Page: https://cv.hexlet.io

License: GNU Affero General Public License v3.0

Makefile 1.03% Ruby 70.78% JavaScript 1.79% HTML 1.23% Shell 0.33% SCSS 0.14% Slim 24.57% Procfile 0.03% Dockerfile 0.11%
hacktoberfest

hexlet-cv's Introduction

Hexlet CV

Maintainability Test Coverage Main

About

The purpose of Hexlet CV is to provide a community platform where you get resume recommendations from community members and professional HR.

Interactions on Hexlet CV are based on resumes and resume recommendations. On a particular resume, each community member provides only one recommendation.

Join the community, post resumes and leave recommendations for other members. Tell your colleagues and friends about the site!

The project uses Ruby on Rails.

Tasks can be discussed in the Telegram community.

System requirements

  • Ruby >= 3.2.2
  • Node.js >= 19.0.0
  • SQLite3
  • Heroku CLI

Setup

make setup

# or for Apple silicon machine if setup fails with unsupported arch

make setup-arm64

make test # run tests
make start # run server http://localhost:3000

make fixtures-load # sometimes, when fixtures were changed

Setup in Docker

make compose-setup # setup app
make app-test # run tests
make compose # run server http://localhost:3000

make app-ci-check # run ci

Debug in Docker

docker container ls # watch container
docker attach [container_id]

or

make app-debug

and insert debugger in controller

Setup in Podman

Dependencies: podman, podman-compose

If you have installed podman-docker, you can use, directly, make compose-* commands (except make app-debug)

Or explicitly use the make podman-compose-* commands.

make podman-compose-setup # setup app
make podman-compose-app-test # run tests
make podman-compose # run server http://localhost:3000

make podman-compose-app-ci-check

Debug in Podman

podman container ls # watch container
podman attach [container_id]

or

make podman-compose-app-debug

and insert debugger in controller

Deploy

Add database:

heroku addons:create heroku-postgresql:hobby-dev

Prepare environment variables:

heroku config:set SECRET_KEY_BASE=$(rake secret)
heroku config:set HOST=$(heroku info -s | grep web_url | cut -d= -f2) # https://cv.hexlet.io for production
heroku config:set RACK_ENV=production
heroku config:set RAILS_ENV=production
heroku config:set RAILS_LOG_TO_STDOUT=enabled
heroku config:set [email protected]

Deploy to render.com

INFO IS HERE
  • Go to https://dashboard.render.com

  • Add New PostgreSQL with YOUR_CUSTOM_NAME_PG and select Region

  • Add New Web Service with link to your repo clone
    select:

    • YOUR_CUSTOM_NAME_CV
    • same Region
    • Runtime: Ruby
    • Build Command - ./bin/render-build.sh
    • Start Command - ./bin/render-start.sh or bundle exec puma -C config/puma.rb
  • Go to YOUR_CUSTOM_NAME_PG PostgreSQL -> Info and copy Internal Database URL

  • Go to YOUR_CUSTOM_NAME_CV app -> Environment

    • Environment Variables, by one
      or
    • Secret Files .env with your settings, based on .env.example and add this variables:
      • HOST
        echo "HOST=your-app-name.onrender.com" >> .env
      • EMAIL_SPECIAL_USER
        echo "EMAIL_SPECIAL_USER=any_existing_email@in_database" >> .env
      • DATABASE_URL
        echo "DATABASE_URL=Internal Database URL" >> .env
      • RACK_ENV and RAILS_ENV
        echo "RACK_ENV=staging" >> .env
        echo "RAILS_ENV=staging" >> .env
      • RENDER_LOAD_FIXTURES to load fixtures
        echo "RENDER_LOAD_FIXTURES=1" >> .env
      Generate new master.key if the original is missing
      • RAILS_MASTER_KEY
        export RAILS_MASTER_KEY="$(ruby -r securerandom -e 'print SecureRandom.hex(16)')"
        echo $RAILS_MASTER_KEY
        printf $RAILS_MASTER_KEY > config/master.key
        echo "RAILS_MASTER_KEY=$RAILS_MASTER_KEY" >> .env
        rm config/credentials.yml.enc
        EDITOR=vim bin/rails credentials:edit # to update config/credentials.yml.enc
                                              # press :wq+Enter
      • CREDENTIALS_ENC
        echo "CREDENTIALS_ENC=$(cat config/credentials.yml.enc)" >> .env
  • You can deploy app


Configure reCAPTCHA for production:

  • Follow the link reCAPTCHA
  • Log into Admin Console with your credentials or create a new Google Account in case you don't have one
  • At Admin Console register a new site as shown in example below

Configure reCAPTCHA for development:

  • add test key to .ENV file if they were not generated:
# test key for recapcha https://github.com/MTG/freesound/issues/879
RECAPTCHA_SITE_KEY=6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI
RECAPTCHA_SECRET_KEY=6LeIxAcTAAAAAGG-vFI1TnRWxMZNFuojJ4WifJWe
Label: <app_name>.herokuapp.com
Type reCAPTCHA: reCAPTCHA v2 (Checkbox "I'm not a robot")
Domains: <app_name>.herokuapp.com (localhost or/and 0.0.0.0 for development env)
  • Accept terms of use and submit
  • Add generated reCAPTCHA SITE KEY and SECRET KEY to environment variables in production
  • To use reCAPTCHA in development simply copy SITE KEY and SECRET KEY to your .env file

Hexlet Ltd. logo

This repository is created and maintained by the team and the community of Hexlet, an educational project. Read more about Hexlet.

See most active contributors on hexlet-friends.

hexlet-cv's People

Contributors

alexp11223 avatar alxmas avatar amd-9 avatar amshkv avatar artsiomivanets avatar ashikov avatar borizi avatar chrtkv avatar d3mash avatar dependabot[bot] avatar fey avatar greybutton avatar grozwalker avatar irastypain avatar lazycoder9 avatar liz4chernyshova avatar lubaro avatar mokevnin avatar moklidia avatar nikitanaumenko avatar pavelkonkin avatar plugin73 avatar prio65 avatar qsimpleq avatar ralder avatar richpeach-bot avatar ssssank avatar ulizko avatar usernaimandrey avatar yukolonin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

hexlet-cv's Issues

SEO ошибки на сайте

Ребята, привет. Список SEO-ошибок по результатам проверки сайта:
— дублирующиеся тайтлы https://drive.google.com/open?id=1ZfN5bMX3bElEOUFh_SchYOG1nEGn5WK6
— дублирующийся контент https://drive.google.com/open?id=19jAQlRKv9AIUSICwCyxuRnqVRT5RJ7my
— нет карты сайта по URL https://cv.hexlet.io/sitemap.xml
— некэшированные файлы JS и CSS https://drive.google.com/open?id=1PEndlCXirIXqfmuDR9hUoKmUQQHZF83g
— страницы без метаописаний https://drive.google.com/open?id=1PuN6_sNJIi019hHfvsFdxGKg_j3vuZzR
— страницы без заголовка h1 https://drive.google.com/open?id=1Yjp6dzqZkphPYuGM7GKo4ERYYtFWR5Eo
— низкое соотношение текста и HTML https://drive.google.com/open?id=1V9bAxBM-bA2ZSZqRb_0K-Ah8zHwFW73Z
— мало текста на странице https://drive.google.com/open?id=1c7uf04ThhJ3hplOkk6twQv76QfmC28J9
— Битые внешние ссылки https://drive.google.com/open?id=1yY8j2k8q2ynNyLk39UuEh-YZqzZ424Or
— временные редиректы (нужны постоянные) https://drive.google.com/open?id=1VEw-eiPUCCjQjSFoeHXv262gsq4uRrjQ

При наличии глобально установленного yarn падает make setup

Если на машине yarn уже установлен глобально, то попытка выполнить make setup упадёт с ошибкой

/usr/bin/yarnpkg -> /usr/lib/node_modules/yarn/bin/yarn.js
npm ERR! code EEXIST
npm ERR! syscall symlink
npm ERR! path ../lib/node_modules/yarn/bin/yarn.js
npm ERR! dest /usr/bin/yarn
npm ERR! errno -17
npm ERR! EEXIST: file already exists, symlink '../lib/node_modules/yarn/bin/yarn.js' -> '/usr/bin/yarn'
npm ERR! File exists: /usr/bin/yarn

Так как в setup есть

npm install --global yarn

Проверял на Ubuntu 20.04 LTS через WSL на Windows 10

вывести новые поля для вакансий и поправить формат обряжение на сайте

это можно будет делать только после реализации этих правок #249

нужно вывести новые поля на страницах вакансий и привести отображение информации в соответствие с нашей чек-формой

Логика вывода полей
Название (h1) - [Уровень] [Заголовок] ([Тип работы]) – [Компания]
Должность: [Уровень] [Заголовок]
Тип занятости: [Тип работы]
Формат занятости: [город], [Формат занятости]
Опыт: [опыт]
Компания: [компания](название - активная ссылка из поля [сайт])
Краткая информация о компании: [Информация о компании]
Краткая информация о проекте: [Информация о проекте]
Стек технологий: [Стеки/технологии]
Задачи сотрудника: [Задачи сотрудника]
Требования: [требования]
Условия и бонусы: [Условия и бонусы]
Зарплатная вилка:
от [Зарплата от] - [Зарплата до] [Валюта] [Зарплатная вилка]
логика вывода такая:
если заполнена только [зп от] и [валюта] то: от ХХХХХ руб
если заполнена только [зп до] и [валюта] то вывести без доп слов: ХХХХХХ руб
может быть ничего не указано кроме [Зарплатная вилка], такое может быть если зп по итогам собеседования с успешным кандидатом
если заполнены все поля то получится: от ХХХХХ до ХХХХХХ руб gross
Контакты
[Имя контакта]
Телеграм: [Телеграм контакта]
Email: [Email контакта]
Телефон: [Телефон контакта]
Ссылка для связи: [Ссылка для связи]
теги: [теги со ссылками на страницы] - чтобы это всё облагородить, можно к тексту на ссылке добавить # в начале каждого тега

Пример вакансии:

Джуниор Java-разработчик (Полный день) – КРЫЖОВНИК

Должность: Джуниор Java-разработчик
Тип занятости: Полный день
Формат занятости: Москва, офис
Опыт: не требуется
Компания: КРЫЖОВНИК
Краткая информация о компании: КРЫЖОВНИК — лидера рынка информационных технологий России; эксперт в области анализа, интеллектуальной автоматизации и трансформации корпоративных бизнес-процессов.
Краткая информация о проекте:
На стажерскую программу в области разработки ПО на Java требуется Стажёр-разработчик Java. Данная стажировка - это отличная возможность не только познакомиться с разработкой enterprise-решений, но и пообщаться с ведущими специалистами в данной области и применить полученные знания на практике.
Стек технологий:
PostgreSQL · Golang · CI/CD methodologies · Kubernetes · Docker
Задачи сотрудника:

  • обучаться языку и основным фреймворкам Java, таким как Spring, Hibernate;
  • обучаться передовым frontend-технологиям: React, GraphQL и др.;
  • знакомиться с практиками разработки ПО, DevOps, Code review;
  • знакомиться с разными методологиями разработки (Scrum, Agile и др.);

Требования:

  • знание основ Java;
  • написание SQL запросов;
  • владение английским на уровне чтения технической документации.

Условия и бонусы:

  • гибкий график;
  • дмс;
  • участие в масштабных проектах по автоматизации и оптимизации бизнес-процессов;
  • возможность движения по карьерной лестнице от стажера к архитектору.

Зарплатная вилка:
от 60 000 - до 80 000 рублей net

Контакты
Станислав
e-mail: [email protected]
Telegram: https://t.me/login
телефон: 88005553535

теги: #один #два #три #тд

Режим печати для резюме

Было бы хорошо, если бы отсекалось все лишнее, когда мы хотим распечатать страницу с резюме (показывать только отформатированный текст, по структуре похожее как у hh.ru).

Либо отдельной печатью (печать страницы), либо скачать сгенерерированный pdf

скорректировать форму добавления вакансий

нужно:
поле сайт сделать не обязательным
сделать подписи к полям ОТ и ДО - нужно добавить пояснение, так как в процессе работы начали возникать недопонимания полей, можно написать так "Оплата от"

Add a filtering, multiple tag system with autocomplete to Resumes.

Предлагаю добавить систему тегов к резюме, чтобы можно было осуществлять по ней поиск.
Пример с stackoverflow:
Screen Shot 2019-09-09 at 2 50 20 PM
Эта фича будет полезна юзерам, которые прежде чем писать свой вопрос, захотят посмотреть чужие резюме по тегу и возможно сразу найти ответ на свой вопрос или получить идею, что можно добавить в свое резюме.

Add notifications if new comments were added to the CV

Если к выложенному резюме будут добавлены новые комментарии, то пользователь получит уведомление на почту с текстом этих комментариев.
Вот пример, как это делает слак:
image
Нужно будет приделать мейлер для этих писем, также стейт машину, чтобы мы могли отслеживать состояние письма.
Мой вариант состояний:

    state_machine :state, initial: :waiting do
      state :working
      state :finished
      state :failed
      event :work do
        transition waiting: :working
      end
      event :finish do
        transition working: :finished
      end
      event :fail do
        transition working: :failed
      end

Не нужно будет оповещать юзера, а каждом комменте, который добавили к его посту. Лучше будем высылать все комменты, которые добавили за определенный промежуток времени.

поправить регистр в разделе вакансии

на страницах вакансий, в блоке "похожие вакансии" нужно поправить регистр у города
вот здесь https://prnt.sc/1eb5bpp
нужно сделать чтобы город был с большой буквы

пример можно увидеть здесь https://cv.hexlet.io/vacancies/11

на странице с выборкой по технологиям, можно поправить регистр в заголовке h1
https://cv.hexlet.io/vacancy_filters/technology-php

вот здесь - https://prnt.sc/1ebeawa

Нужно чтобы технология вывалилась так как она заполнена в карточке или вся в верхнем регистре, и в идеале ещё добавить дефис
чтобы получалось [технология]-разработчик

дообработать форму добавления новых вакансий

в форме добавления вакансий (https://cv.hexlet.io/account/vacancies/new) нужно обновить поля (добавить новые и скорректировать уже имеющиеся), а так же поправить логику работы и очередность полей. Ниже список правок

доработки по полям:

  • к полям “Зарплата от / до” добавить - третье поле “зарплатная вилка” с выпадающим списком (значения: gross, net, по результатам собеседования)
  • добавить после “Опыт” - строка с произвольным содержимым
  • добавить поле “Формат занятости” поле с выпадающим списком, варианты: удалённо/офис/гибридная схема
    добавить поле “Информация о компании и проекте” - текстовое поле с поддержкой форматирования и разметки Markdown
  • добавить поле “Информация о проекте” - текстовое поле с поддержкой форматирования и разметки Markdown
  • добавить поле “Стеки/технологии” - текстовая строка
  • добавить поле “Задачи сотрудника” - текстовое поле с поддержкой форматирования и разметки Markdown
  • добавить поле “Требования” - текстовое поле с поддержкой форматирования и разметки Markdown
  • переименовать после “описание” в “Условия и бонусы” - мы переработаем уже размещенные вакансии в новый формат
  • поле “Технологии” переименовать в “теги” - чтобы не создавать путаницу
  • поле “Город *” сделать обязательным
  • добавить поле “валюта” - выпадающий список, значения: руб., доллары, евро, (можно значками)

порядок полей в форме добавления:

  • Заголовок
  • Уровень
  • Опыт
  • Тип работы
  • Формат занятости
  • Город
  • Компания
  • Сайт компании
  • Стеки/технологии
  • Информация о компании
  • Информация о проекте
  • Задачи сотрудника
  • Требования
  • Условия и бонусы
  • Зарплатная вилка
  • Зарплата от
  • Зарплата до
  • Валюта
  • Имя контакта
  • Телеграм контакта
  • Email контакта
  • Телефон контакта
  • Ссылка для связи
  • Теги

Hide recommendation form for guests

Как гость, я вижу форму добавления рекомендация, хоть и нет возможности это сделать. При попытке сделать это, меня просят авторизоваться. Форма вводит в заблуждение

Падает сборка при деплое в heroku

При попытке деплоя в heroлг (make deploy) билд падает с ошибкой.

Сначала упал с

-----> Installing node-v12.16.2-linux-x64
-----> Installing yarn-v1.22.4
-----> Detecting rake tasks
-----> Preparing app for Rails asset pipeline
       Running: rake assets:precompile
       yarn install v1.22.4
       [1/4] Resolving packages...
       error Your lockfile needs to be updated, but yarn was run with `--frozen-lockfile`.
       info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
       Compiling...
       Compilation failed:
       yarn run v1.22.4
       info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
       
       
       error Command "webpack" not found.
       
 !
 !     Precompiling assets failed.
 !
 !     Push rejected, failed to compile Ruby app.
 !     Push failed

Пофиксил прогнав yarn install и закомитив yarn.lock файл. Затем упал на этапе сборки модулей

       [119] ./app/javascript/entrypoints/application.scss 562 bytes {0} [built] [failed] [1 error]
       [120] ./node_modules/bootstrap/dist/js/bootstrap.esm.js + 55 modules 237 KiB {0} [built]
             |    56 modules
           + 116 hidden modules
       
       ERROR in ./node_modules/bootstrap-icons/font/bootstrap-icons.css
       Module build failed (from ./node_modules/mini-css-extract-plugin/dist/loader.js):
       ModuleBuildError: Module build failed (from ./node_modules/postcss-loader/dist/cjs.js):
       TypeError: this.getOptions is not a function
           at Object.loader (/tmp/build_0e5cb90e/node_modules/postcss-loader/dist/index.js:40:24)
           at /tmp/build_0e5cb90e/node_modules/webpack/lib/NormalModule.js:316:20
           at /tmp/build_0e5cb90e/node_modules/loader-runner/lib/LoaderRunner.js:367:11
           at /tmp/build_0e5cb90e/node_modules/loader-runner/lib/LoaderRunner.js:233:18
        @ ./app/javascript/entrypoints/application.js 6:0-49
        @ multi ./app/javascript/entrypoints/application.js ./app/javascript/entrypoints/application.scss
       
       ERROR in ./app/javascript/entrypoints/application.scss
       Module build failed (from ./node_modules/mini-css-extract-plugin/dist/loader.js):
       ModuleBuildError: Module build failed (from ./node_modules/sass-loader/dist/cjs.js):
       TypeError: this.getOptions is not a function
           at Object.loader (/tmp/build_0e5cb90e/node_modules/sass-loader/dist/index.js:25:24)
           at /tmp/build_0e5cb90e/node_modules/webpack/lib/NormalModule.js:316:20

Пофиксил даунгрейдом зависимости postcss-loader

     "popper.js": "^1.16.1",
-    "postcss-loader": "^6.1.1",
+    "postcss-loader": "^4.2.0",
     "prop-types": "^15.7.2",

Month names are in the genitive case

Месяцы в периодах работы/обучения представлены в родительном падеже: мая, июня, июля.

мая 2008 - июня 2009

Нужен именительный падеж: май, июнь, июль.

Наверняка возникнет конфликт с датами оставления комментариев, так как там указывается число, и ему нужен родительный падеж месяца, как сейчас.

05 февр., 23:02

Можно указывать эти даты в формате dd.mm.yy.

Админка

Возможности:

  • Возможность архивировать резюме
  • Возможность архивировать комментарии
  • Бан пользователя (все резюме и комментарии пользователя будут скрыты)

исправить отображение комментариев из резюме в черновиках

заметил следующее
если резюме в черновике, то ссылки на комментарии к этим резюме все равно отображаются в профилях авторов комментов

вот пример
https://cv.hexlet.io/resumes/250 - закрытое резюме
профиль с комментарием https://cv.hexlet.io/users/1

вот здесь
image

нужно чтобы такие комментарии не выводились или выводились без ссылки на резюме

Make page number substitution in tags for pagination

у нас индексируемая пагинация и нужно уникализировать теги чтобы такие страницы не дублировали первые страницы

сделать это можно следующим образом

если в адресе страницы есть параметр ?page=, то в теги title и description подставлять "Cтраница [номер страницы] - "

получается следующие шаблоны:
title: Cтраница [номер страницы] - [title первой страницы]
description: Cтраница [номер страницы] - [description первой страницы]

Важно:
подстановка должна быть именно в начало тега

теги первой страницы должны оставаться без изменений (без подстановки номера)

примеры страниц где может быть пагинация
главная - https://cv.hexlet.io/?page=2
вакансии - https://cv.hexlet.io/vacancies?page=2
теги в вакансиях - https://cv.hexlet.io/vacancy_filters/technology-rest?page=2

поправить метатеги

description в профилях пользователей

https://cv.hexlet.io/users/:id
шаблон: [id] | Профиль пользователя [имя пользователя] | Hexlet CV

страница выборки город + технология

https://cv.hexlet.io/vacancy_filters/city-moskwa_level-junior_technology-javascript

в тегах в некоторых местах пропущены переменные

title сейчас: Вакансии для Джуниор Javascript разработчиков в городе | Hexlet CV
нужно добавить город: Вакансии для Джуниор Javascript разработчиков в городе [город] | Hexlet CV

выборка по технологии
https://cv.hexlet.io/vacancy_filters/technology-php

description сейчас: Актуальные вакансии для Php разработчиков . Работа для -программистов, подборка от редакции Hexlet CV
нужно добавить технологию: Актуальные вакансии для Php разработчиков . Работа для [технология]-программистов, подборка от редакции Hexlet CV

Add "skills" by which you can filter resumes

у HR потребность найти только те резюме, которые могут быть связаны с определенным стеком. Найти только rails разработчиков.
Можно добавить выбор заранее определенных навыков или стеков, по которым можно будет делать выборки
Варианты реализации:

  • Теги
  • Поиск

Количество просмотров учитывает просмотры автора

Возможно, в данном показателе лучше не учитывать просмотры автора, так как пока пишешь, сто раз перезаходишь и смотришь, что получилось.
Если данная информация присутствует для работодателей, то логичнее исключить возможность "накрутки просмотров" самого автора. В таком случае данный показатель будет объективнее

Не работает вход через GitHub

Как воспроизвести:

что происходит:

  • адрес меняется на https://cv.hexlet.io/users/auth/github
  • в браузере отображается Not found. Authentication passthru.
  • в консоли 404 ошибка:
    Request URL: https://cv.hexlet.io/users/auth/github Request Method: GET Status Code: 404 Not Found Remote Address: 63.32.161.232:443 Referrer Policy: strict-origin-when-cross-origin

Кликабельные карточки резюме в выборке

Предложение сделать кликабельные карточки резюме. Например так как это сделано в hh. В мобильной версии удобнее нажать на карточку чем целиться в заголовок.

Поправить вывод вакансий в админке

У меня вопрос по Hexlet CV. В моём админском окне всё выглядит вот так :point_down::skin-tone-2:
Это неудобно. Насколько возможно добавить поля так, чтобы:
я видела компанию, которая разметила вакансию.
Компания мне нужна для более быстрого поиска, если что-то надо уточнить, или удалить.
должность заменить на имя человека

image

Add search form for resumes.

Предлагаю добавить строку поиска в шапку сайта. Чтобы пользователи могли искать по названию/тегам указанным в чужих резюме. Когда строка поиска будет пуста будут выводиться список всех резюме, которые выложены на обсуждение.
Screen Shot 2019-09-09 at 3 08 48 PM

Stack search (filtering) for employers

На данный момент у работодателя нет возможно отсортировать CV по языкам программирования, что несёт за собой много неудобств.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.