pavki/hr_qa_sbs_best_bad huggingface dataset:
Вопрос: Свои проекты vs Основная работа и как между ними не разорваться?

Лучший ответ: для 21-го года вы исключительно целеустремленны, особенно на фоне местных "профи", которые торгуются учить или не учить им очередной CSS фреймворк и ждут, что их будут нянчить на каждой строчке 
при вашем раскладе и возрасте вы всегда успеете в офис, но, если вы поставили себе целью финансовую независимость, а не профессиональный рост как программиста, то офис никак не приблизит вас к этой цели, и через год вы будете понимать, что вы потратили время на чужой бизнес, а не на свой
у вас сейчас есть все средства для попытки, возраст, необремененность семейными обязательствами по всей видимости, кое-какой опыт, а главное - понимание того, с чем вам нравится работать
не получится - пойдете в офис :)  тут дело не в том, что тяжело совмещать, а в том, что вы уже приняли решение о том, чего вы на самом деле хотите
программирование само по себе довольно примитивное занятие, если не развлекать себя сложными проектами и хорошей зарплатой, далеко не все находят в этом удовольствие :)
единственное, ради чего можно было бы пойти в офис, - это лучше узнать как ведут бизнес, который вас интересует, там же и связями обзавестись, но выходит, что тут надо идти скорее в менеджеры, нежели в программисты

Худший ответ: Свои проекты, это твоя пенсия. Работа в офисе это твой опыт.
Вопрос: Можно ли сделать из usb модема сделать wifi адаптер?

Лучший ответ: Можно ли сделать из usb модема сделать wifi адаптер?

Худший ответ: шта?
Срочно призываю Вангу и штатных телепатов тостера
Вопрос: Как сделать появляющееся меню при наведении?

Лучший ответ: Можно никаких не совершать.
Все это можно сделать на чистом CSS.
Вот пример: https://jsfiddle.net/9g7hdob7/  и даже 20 пиксельный зазор есть.
Расположить меню выше следующих элементов можно с помощью z-index<div class="container">
    <div class="button">
        Button
    </div>
    <div class="menu_gap">
        <div class="menu">
            Menu
        </div>
    </div>
</div>.container {
    position: relative;
    width: 200px;
    height: 50px;
    background: #f00;
}
.button {
    display: block;
    color: #fff;
}
.menu_gap {
    position: absolute;
    top: 100%;
    left: -20px; 
    padding: 0 20px 20px 20px;
    display: none;
}
.container:hover .menu_gap {
    display: block;
}
.menu {
    background: #000;
    color: #fff;
    width: 400px;
    padding: 10px 0;
}

Худший ответ: Самый простой вариант  https://jsfiddle.net/49hsy10L/
Вопрос: Личный paypal для систематического приема оплаты?

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

Худший ответ: walletone.com умеет принимать в валюте для физиков
Вопрос: Как правильно перенести почту на внутренний сервер организации?

Лучший ответ: 1. Нет
2. Не обязательно, но крайне желательно.
3. A-запись в DNS, PTR-запись у провайдера.
4. Если у организации есть лишние деньги.

Худший ответ: Много слов и лишних тэгов.
В MS Outlook настраиваете подключение (основное) к MS Exchange. И дополнительно любые внешние почтовые ящики с хранением в MS Exchange.
Вопрос: Как лучше визуализировать БД?

Лучший ответ: Можно на php, приблизительно так:echo "<table border='1'>
<tr>
<th>One</th>
<th>Two</th>
</tr>";

while($row = mysqli_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['One'] . "</td>";
echo "<td>" . $row['Two'] . "</td>";
echo "</tr>";
}
echo "</table>";

Худший ответ: Варианты:SQLAlchemy + Flask-AdminSQLAlchemy + Flask-SuperAdminSQLAlchemy + Flask-Scaffold
Вопрос: Как получить связные данные в yii2 ActiveRecord?

Лучший ответ: Добрый день.Тут всё написано.

Худший ответ: Или же для данного решения нужно будет строить смежные таблицы содержашие idUser и idTovar?
Ну если связи hasMany то конечно придется, если hasOne то данная структура пойдет.
Правда не понятно что за сущность history и почему заказ через нее связан с юзером?Как мне получить по id товара имя пользователя
через joinWith и связи, но тут много зависит от типов связи
Вопрос: Как сделать редирект на определенный порт на стороне сервера?

Лучший ответ: Из поставленных условий вам не сделать чтобы вы набирали в браузере только домен. Возможно только указав домен:порт (example.com:192/), т.к ваш домен резолвится в определенный ip.
Если вы не можете никак взаимодействовать с 80 портом, то ничего и не получится. 
В виртуальном хосте, указывам какой порт слушать - Listen 192. https://httpd.apache.org/docs/2.4/bind.html

Худший ответ: Никак.
Привязать доменное имя можно только к "белому" IP. Этот IP у Вас явно на роутере (или еще где, кто инет раздает). Роутер обеспечивает проброс, но не более. Единственный вариант выяснить, кто занимает 80 порт и убрать/перенести этот сервис
Вопрос: Как выводить фотографиии в зависимости от раздела на который кликнули?

Лучший ответ: Если у вас простой сайт (не SPA), то в любом случае придётся создавать отдельные страницы! И тут магией не поможешь!

Худший ответ: Создать отдельно одну html страницу, в которой при открытии скриптом подгружать картинки и выводить их с фильтрацией для нужной катеории
Простой вариант с презаданными
https://codepen.io/andreysh/pen/QZPOGRlet images = [
  { 
    link: "images/horse.png",
    type: "horses"
  },
  { ... }
]

let category = "horses";
let needToShow = images.filter(e => e.type === category )
needToShow.forEach(e => { $("#galery").append(`<img src="${e.link}"  /> `) })
Вопрос: Сменил хост получил, Field 'поле' doesn't have a default value?

Лучший ответ: Проблема в вашем коде. Наконец-то mysql начал об этом говорить. Нельзя писать в таблицу, не указывая явным образом значения для всех полей, не имеющих default значения.
Вероятно, вы смигрировались на mysql 5.7. Там как раз sql_mode дефолтный наконец-то изменили. А может просто более адекватно sql_mode выставлен админом.
dev.mysql.com/doc/refman/5.7/en/sql-mode.html
На сколько помню, за поведение ошибочного insert'а без указания non-default полей отвечают STRICT_ALL_TABLES, STRICT_TRANS_TABLES.

Худший ответ: У меня при копировании таблицы потерялось значение AUTO_INCREMENT. Проставил вручную таблица заработала. Не знаю почему  не с копировалось значение AUTO_INCREMENT для поля с первичным ключом.
Вопрос: Как запитать жесткий диск от powerbank?

Лучший ответ: Среднестатистический HDD в формфакторе 3,5 в режиме активной работы потребляет 6-10ватт
В момент холодного старта потребление может достигать 40ватт.запитать жеткий диск 3,5 от powerbank 5v/2.1A 5*2,1=10,5ватт.
Если вручную шпиндель будете раскручивать, может и заработает.
В общем чтобы был смысл пробовать повербанк должен уверенно выдавать 3ампера по линии 12вольт, и 1ампер по линии 5вольт.

Худший ответ: через "молекс" подаются два напряжения - 5 и 12 Вольта может не надо?
Вопрос: Почему при задавании атрибуты переходит сразу же по ссылке?

Лучший ответ: Потому что не отменено стандартное поведение

Худший ответ: Думаю так будет понятнее:var a = document.querySelector(".a");
function change(e) {
	e.preventDefault()
	a.innerHTML = "www.w3s.com";
	a.setAttribute("href", "www.w3s.com");
	a.removeEventListener("click", change);
}
a.addEventListener("click", change)
Вопрос: В чем проблема c telnet??

Лучший ответ: Я думаю, 400 вы получаете потому, что передаёте неправильный HTTP запрос, например, просто жмёте Enter (посылаете пустую команду).

Худший ответ: У меня все работает
telnet google.com 80
GET
получаю:HTTP/1.0 302 Found                                                                                                                                    00:22Cache-Control: private
Content-Type: text/html; charset=UTF-8
Referrer-Policy: no-referrer
Location: http://www.google.com.ua/?gfe_rd=cr&ei=gWz-WJaQCOmv8wephqjgDQ
Content-Length: 262
Date: Mon, 24 Apr 2017 21:22:09 GMT

<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
                                                                              <TITLE>302 Moved</TITLE></HEAD><BODY>
                                                                                                                   <H1>302 Moved</H1>
                                                                                                                                     The document has moved

<A HREF="http://www.google.com.ua/?gfe_rd=cr&amp;ei=gWz-WJaQCOmv8wephqjgDQ">here</A>.
</BODY></HTML>


Connection to host lost.
Вопрос: Отложенная рассылка уведомлений: как в Django ежеминутно проверять, пора ли выполнять скрипт?

Лучший ответ: Celery - очень правильный подход
но иногда хватает и обычного крона

Худший ответ: использоват huey/celery/rqworker
при том huey очень простой
Вопрос: Как редактировать шаблон под себя на 1с битрикс?

Лучший ответ: Вам сюда

Худший ответ: Вы сперва разберитесь как это в принципе делается. У Аспро действительно довольно сложные, но функциональные шаблоны. 
А насчёт стилей в одну строку, либо загуглите CSS Beautifier, либо если работаете в phpStorm (что я всем настоятельно рекомендую), можете использовать комбинацию Ctrl+Alt+L
Вопрос: Можно ли делать изменения в чужой cms а потом выдавать за свою при условии что cms open-source?

Лучший ответ: Если лицензия BSD или MIT, можно. Если GPL или Apache, то нельзя.

Худший ответ: > Можно ли делать изменения в чужой [программе], а потом выдавать за свою
Это называется *плагиатом*.  В приличных местах за такое бьют канделябрами.  Если это вас не останавливает, то законом большинства (наверное) стран это тоже прямо запрещено.
> при условии что [программа] open-source?
Мне сложно быть уверенным, что именно вы вкладываете в эти десять нерусских букв.  Но так или иначе, ответ на вопрос выше от этого не зависит.
> Можно ли взять за основу недоработанную [программу], изменить, поправить и выпустить
Если это программа свободна, то определенно да.  Притом вне зависимости от того, насколько она «доработана».
Если нет, то может быть, и можно, но тратить на это время, вероятно, не стоит.
Так или иначе, внимательно ознакомьтесь с лицензионным договором, по которому вы получили эту программу.  Если остаются вопросы — смело задавайте.
> как свою?
Здесь уже нет слова «выдавать», поэтому мне сложно ответить столь же резко отрицательно.  Возможно, здесь вы имеете в виду что-то вполне добросовестное.
Вопрос: Как избавиться от спама на корпоративный сайт на вордпрессе?

Лучший ответ: Подключите recaptcha 3

Худший ответ: Вариант 1
Если возможно, тогда измените id, name, class на формах на что-то типо fgdgdfg и боты не смогут нормально заполнять эту форму. 
Вариант 2
можно сделать скрытое поле, которое будет заполняться JS-ом когда пользователь заполняет одно или все поля. Перед отправкой проверять, правильно заполнено это поле или нет.
Вопрос: Как безопасно выводить с Webmoney WMZ на рублевую карту сбербанка?

Лучший ответ: Не привлечет внимание налоговой даже вывод 10 000$ в месяц.
Выводить через посредника, курсы на обмен постоянно меняются лучше следить за ними на сайте мониторинга: https://www.bestchange.ru
PS: По поводу объемов утверждаю как владелец одного из обменников, в некоторые месяцы объем транзакций в месяц свыше 1.5 млн. руб на Сбере. Никто никаких претензий не предъявлял, единственное начали звонить из Сбера с предложением открыть депозиты или оформить ипотеку под специальный процент.

Худший ответ: Это может привлечь сотрудников Сбербанка, после чего вам просто закроют счет и теоретически могут и в наоговую данные передать. Но скорее просто счет закроют.
Вопрос: Как дождаться завершения асинхронной функции?

Лучший ответ: ajcom.register('login', async (hCtx, email, pass) => {
  const foundUser = await User.findOne({ where: { email } });
  
  if (foundUser && foundUser.password === pass) {
    console.log("Авторизация прошла успешно!");
    isLoginIn = true;
  } else {
    console.log("Неверные данные, проверьте ваш email и пароль!");
  }
  return { authorized: isLoginIn };
});

Худший ответ: Если не сильно вдаваться в подробности, то можно так:User.findOne({
        where: {
          email: email
        }
      }).then(function(foundUser) {
        if (foundUser && foundUser.password === pass) {
          console.log("Авторизация прошла успешно!");
          isLoginIn = tru;
        }
        else {
          console.log("Неверные данные, проверьте ваш email и пароль!");
        }
      }).then(function() { 
         return {authorized: isLoginIn};
      });
Но надо понимать, что функция асинхронная и вам в любом случае придется ждать её выполнения.  Если непонятно выглядят промисы, то посмотрите на async\await
Вопрос: Page Speed для локальных сайтов?

Лучший ответ: https://developers.google.com/web/tools/starter-kit/
Стартовый набор от гугла есть там и pagespeed хотя зачем он при разработке не знаю.

Худший ответ: Конкретно page speed нельзя, гугл не увидит. В дев-тулзах браузера можно тестировать загрузку при разных соединениях.
Вопрос: Перенаправление RouterOS (dst-nat) (Mikrtotik)?

Лучший ответ: На микротике - никак. Вам необходим дополнительный сервер с apache или nginx (ну или любой другой программный/аппаратный продукт) с функцией reverse proxy.

Худший ответ: на ум приходит только вариант с metarouter, на нем поднять openwrt, а в нем nginx
Вопрос: Как отправить письмо на почту при помощи JS?

Лучший ответ: Можно даже на чистом HTML ;)<a href="mailto:moderator@toster.ru">Mailto</a>

Худший ответ: Так как JavaScript выполняется на стороне клиента (в браузере), не предоставляется возможным отправить что-либо на почту напрямую. Нужно организовать сервер, который и будет заниматься отправкой.
Вопрос: Как сделать реверс строки без использования стандартных методов?

Лучший ответ: let str = 'abcdefg';
for (let i = 0; i < str.length; i ++) {
  str = str.slice(1, str.length - i) + str[0] + str.substr(str.length - i); 
}
console.log(str);
Никаких переменных, кроме счетчика цикла
Но вообще так писать не надо :) 
Надо такstr.split('').reverse().join('');

Худший ответ: Нужно просто на месте менять значение строки
Нужно? Невозможно. Строки в JS иммутабельны:

var str = 'abc'
str[1] = '!'
console.log(str) // чё, ждали "a!c"? - а вот ни хрена, "abc"
Вопрос: Как создать контролер домена Active Directory на VPS/VDS или выделенном севере?

Лучший ответ: Так же, как контроллеру в локальной сети.

Худший ответ: Переезжать в облако так по полной. Почитайте про Azure AD и Microsoft 365 (не путать с Office 365).
Вопрос: Что выбрать начинаещему программисту для изучения первого языка: C, C++ или Java?

Лучший ответ: возьмите лучше python для начала, я не уверен, то что Вы знаете c/c++ поверхностно.

Худший ответ: Тот язык, который поддерживается на олимпиадах в твоём городе. И ходи на них. 
Что ты вообще хочешь делать?
Вопрос: Намного ли webpack сложнее чем gulp?

Лучший ответ: Во-первых, это разные вещи, webpack - это бандлер (сборщик если по-русски), gulp - таскраннер (запускалка задач)
Во-вторых, их можно использовать как совместно так и раздельно
В-третьих, gulp потихой теряет актуальность, ибо npm вполне умеет быть таскраннером
Что проще? все же webpack, тут почти всегда все задается декларативным конфигом в виде js объекта, а в gulp надо писать код в функционально-императивном стиле

Худший ответ: Достаточно и webpack, gulp встречается все реже и реже
Вопрос: Как лучше сделать такой метод выбора значения из массива?

Лучший ответ: Добавить:unset($arr[$rand_id]);

Худший ответ: задача не совсем понятна, если этот набор индивидуален(будет выдаваться одному пользователю весь набор по порядку при загрузках скрипта) лучше хранить в сессии. Если это набор выдаваемый разным пользователям - любое независимое серверное хранилище: редис, мемкеш, файл, бд.
Вопрос: Как в linux автоматизировать копирование файлов с переименованием?

Лучший ответ: Можно как стандартными средствами, так и написать скрипт на любом языке имеющемся в системе.
По теме https://unix.stackexchange.com/questions/227662/ho...

Худший ответ: Вот пример, как скопировать файлы из формата "Статистика за 20190318.xls" в "20190318.xls"find -name "*.xls" -exec sh -c 'cp "$1" `echo $1 | grep -o -E "[0-9]+"`.xls' sh {} \;
далее тюнингуй под свои нужды, например для переименования cp замени на mvfind -name "*.xls" -exec sh -c 'mv "$1" `echo $1 | grep -o -E "[0-9]+"`.xls' sh {} \;
Вопрос: Почему в ответе получается 0?

Лучший ответ: потому что j++ - это сначала взять значение (0), использовать его (записать в j), а потом только увеличить
если сделаете for (int i = 0; i < 10; i++) 
    j = ++j;
    // или j = j+1;
    // или j++, получите 10

Худший ответ: В разжеванном варианте понятно все, кроме последней части, зачем j = z ?
Затем, что так определён оператор постфиксного инкремента. Скопировать значение переменной. Увеличить переменную. Вернуть скопированное значение. Этим копированием постфиксный инкремент(ш++) отличается от префиксного(++ш).
Присвоение выполняется в самом конце, поскольку имеет меньший приоритет.
Вопрос: Как работает система «без убытка» в казино?

Лучший ответ: Все просто. Если вероятность победы всегда будет меньше 50% (даже 49%), то в долгосрочной перспективе, игрок всегда будет уходить в минус, а казино в плюс. Это как рулетка: 18 красных, 18 черный и зеро. При ставке на любую позицию, вероятность победы будет <= 18/(18 + 18 + 1) = ~0.486 Поэтому, грубо говоря, на 100 игр, пользователь побеждает 48 игр, а 52 проигрывает. 2 игры уходят в банк. 
Если же использовать вероятность 50%, то нужно делать комиссию, поставил 1, победил 0.8. 
С этими двумя способами, даже Мартингейл игроку не поможет. Главное, чтобы в случайном исходе небыло закономерностей, иначе даже простенький скрипт позволит пользователю выходить в плюс. 
Выходит вроде и честно, без обмана, без накруток, и гарантированно прибыльно для казино.

Худший ответ: В играх где исходом игры нет возможности управлять - статистика и жесткий контроль, отлов мошенников и просто очень удачливых. 
В игровых автоматах, онлайн и прочих лохотронах - нет случайных чисел, исход игры либо заранее определен и просчитан в пользу казино, либо алгоритм подстраивает итог выгодный для казино, соответственно все будет крутиться вокруг таких параметров этого алгоритма (давать иногда выигрывать), чтобы у клиентов сохранялось убеждение что они могут выиграть, т.е. работает не только статистика но и психология.
Так же есть вариант, когда казино вообще не участвует в игре а работает исключительно на проценте с оборота (принимает деньги, выдает фишки, и меняет фишки на деньги обратно, забирая процент).
Вопрос: Что это за версия PHP — «php7.2-umi»?

Лучший ответ: Нет такой версии PHP, но есть СMS UМI, скорее всего это название пакета установки UМI CMS адаптированной под PHP 7.2.

Худший ответ: Все знают, что PHP - проект с открытым исходным кодом. То есть каждый человек может сделать свою сборку с нужными ему пакетами. Как и писал ixon, скорее всего версия php7.2-umi была создана специально для CMS UМI её разработчиками или пользователями, заинтересованными в её ускорении.
Вопрос: Как создать бота который будет описывать картинку на JS или PHP?

Лучший ответ: Да, конечно. 
1. Берем сайт
2. И создаем его

Худший ответ: НС - это фильтрация по признакам входных данных. 
Для картинки: это цвет основного центрального пикселя и цвета соседних (окружающих его) пикселей.
Распознавание по-шагам:
1. Находим уникальные области изображения (ограниченные прямоугольником или кругом), составляющие топологический "скелет" всего изображения.
2. Находим максимальное сопоставление "скелетов" на эталонных и на распознаваемом изображении. 
3. Выполняем сравнение этих областей с эталонными в процентном соотношении с учётом корректности топологии: линий, процентов расстояний и углов направлений каждой уникальной области относительно другим уникальным областям одного изображения.
4. Профит!
Вопрос: Кто-нибудь получал высшее образование в IT заочно и экстерном?

Лучший ответ: требуют профильное образованиенет. С ним проще, но хорошего спеца мигрируют и безчьи дипломы котируются берется страна -> список подходящих виз -> список аккредитованых ВУЗовбакалавра заочносмотрите, котируются ли такой вариант вообще

Худший ответ: по прежнему недостаточно для устройства на работу в интересующие страны запада - требуют профильное образование. 
--------------------
Государственное образование могут просить, тогда легче визы делать, быдло-вузы  даже не смотрят. Если развитые страны.
Если программистом то только портфолио или тесты, всем пофиг какой диплом, включая Гугл.  Если по другой спец. то и вопрос другой.
Вопрос: Почему Open Server видит не все сайты в папке domains?

Лучший ответ: OpenServer запрещает задавать имена доменов с нижним подчеркиванием. Замените недопустимый символ на тире "sibarit-su". Должно заработать.

Худший ответ: Александр! Действительно OpenServer запрещает задавать имена доменов с нижним подчеркиванием. В настройках - Управление доменами, желательно выбрать Ручное+Автопоиск. Далее / Имя домена / Папка домена / Сохранить.
Вопрос: Что не так с iMac?

Лучший ответ: походу видекарта глючит неси в ремонт

Худший ответ: У меня была такая же проблема, тоже думал на видеокарту. Реальность оказалась прозаичнее, на производстве был перегнут шлейф к матрице. Отдельно шлейф не меняли, поменяли по гарантии вместе с матрицей. Отвозил в ремонт в deepapple рядом с Белорусской. При мне поставили шлейф от iMac27 на мой 21 и отправили домой ждать матрицу с новым шлейфом. Было года два назад.
Но возможно и видеокарта.
Вопрос: Как изменить тэги (название фильма) в mkv без создания нового файла?

Лучший ответ: В MKVToolNix GUI идете на закладку header editor, открываете файл кнопкой на этой странице, редактируете, далее - идёте в меню Header Editor, жмёте Save.
Естественно, всё бесплатно. И 10-я версия - не последняя, обновитесь.

Худший ответ: С предустановленным MKVToolNix это делается за секунду, даже GUI открывать не нужно.
$ mkvpropedit "foo.mkv" -e info -s title="This Is The New Title"
Вопрос: Онлайн-касса и ИП кому отсрочка до 2019?

Лучший ответ: Онлайн-касса не нужна, если вам платят юр. лица или ИП со своего расчетного счета на ваш расчетный счет (не персональный, а счет ИП) со всем сопутствующим документооборотом (договор, счет, акт...). 
Оплата через сбербанк-онлайн, яндекс-деньги, paypal  и т.п. считается оплатой наличными.  В этом случае нужна онлайн-касса (с 1.07.19, пока отсрочка для услуг и ИП без работников). 
Все хорошо разжевано в "т-ж" и "деле": 
https://journal.tinkoff.ru/news/online-kkt-otsrochka/
https://journal.tinkoff.ru/slozhno/online-kkt/
https://delo.modulbank.ru/sales/otmena_onlajn_kass...
https://journal.tinkoff.ru/news/kassa-01-07-2018/

Худший ответ: ИП открыли не зря. Вопрос Онлайн-Касс, насколько я помню закон, это вопрос взаимоотношений Buisiness2Client. Вы, надеюсь, работаете в области B2B. Не знаю насколько я хорошо знаком с этими тонкостями, но в этой области обмена фискальных документов такого рода не происходит. Договоры подряда, накладные, акты приемки, выставленные счета в банк - это сколько угодно. А вот фискальные документы?! ни разу не слышал.
Вопрос: SSD на GA-MA69VM-S2?

Лучший ответ: Конечно. Там есть SATA 2.0 (а не 3.0), поэтому полной скорости не ожидайте, но на маленьких файлах будет норм. Прирост скорости системы/программ будет ощутим.

Худший ответ: смотрел в биосе в onchip sata type есть RAID>ACHI тогда как будет?
Вопрос: Как управлять ориентацией экрана Windows 10 из командной строки?

Лучший ответ: Не проверял на десятке, но вроде то что вам нужно:
superuser.com/questions/447155/how-do-i-set-up-a-h...

Худший ответ: погодите, а задача в чем? вернее суть этого подхода? 
при входе использовать батник? при необходимости?
Вопрос: Система для ведения проектов?

Лучший ответ: gitlab. Таски, доски, милестоуны, задачи/тикеты создавать можно прям с мыла, разделения по проектам, разбивка тасков на субзадачи, если работаете в небольшой команде еще и асигн задач по участникам. +Нотификация о закрытии/создании задач тиммейтами. Есть еще куча плюшек, но не пользуемся, ибо хватает.

Худший ответ: Ну и Битрикс24 гляньте. Не супер конечно. Но есть задачи, подсчет времени, канбан, задачи можно по проектам разделить. Так же можно фиксировать платежи в сделках, в дальнейшем просматривать статистику например по клиентам. Есть api.