mpjoke, Вы можете определить примерно стоимость и сроки разработки - уже не ноль.
Для новичка прикинуть стоимость/сроки невозможно ввиду отсутствия опыта.
Мб вариант, когда первый раз дать заказ за условные 50$ (или 500р) и срок "сделаю когда-нибудь". После успешной сдачи корректировать сроки/цену.
И как при этом не натолкнуться на очередного вайтишника?
Кто даст человеку кодить за $, если у него ноль опыта?
Вы бы дали человеку проект за $, если бы он не предоставил ни одного подтверждения его навыков (тестовое, пет проект, сделанный проект)?
От обьявления функций как методов класса ООП не появляется.
Что можно улучшить в этом коде.
Как минимум выделить сущности (обьекты), разделить логику. У вас всё понамешано в кучу: и вывод, и валидация, и чтение из csv, и респонс (коды статусов).