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