1"""
2[Title/Звание]
3Имот за скрап
4
5[Description/Обрисовка]
6Омръзна ли ви да правите еднакви проекти по всеки предмет? Всеки 2-ри проект ли ви е сайт за фитнес режими?
7Днес предлагам нещо друго, практичен проект, с реална функционалност, която ще се ползва в реалния свят.
8"Имот за скрап" е терминално приложение с минималистичен CLI, направено да помага на студенти да
9намерят най-изгодното жилище за живеене след края на студентската си кариера и напускането на студентски град.
10Апликацията скрейпва популярния сайт за наем на имоти - Имот.бг, и чрез подходяща
11обработка изкарва на потребителя най-добрия имот за него на пазара. Приложението
12работи във фонов режим и на всеки 12 часа събира данни за измененията на пазара,
13като така изгражда цялостна картина за случващите се тенденции.
14При наличие на подходяща оферта потребителя ще получи имейл и ще може да предприеме подходящи действия.
15
16[Functionalities/Надарености]
171. Скрейпинг на данни от Имот.бг, включително цена, локация, квадратура, описание и др.
182. Филтриране на обяви по зададени от потребителя критерии: бюджет, местоположение, размер на жилището и др.
193. Изготвяне на алгоритъм за оценка на обявите на базата на параметри като цена/квадратен метър, близост до транспорт и удобства.
204. Исторически анализ на цените и тенденциите на пазара.
215. Фонов процес за автоматично обновяване на информацията на всеки 12 часа.
226. Генериране на персонализирани препоръки въз основа на потребителския профил.
237 Имплементиране на автоматични известия по имейл при намира на нови изгодни оферти.
248. Експорт на информацията в удобен формат.
259. Интуитивен и лесен за ползване CLI интерфейс.
26
27[Milestones/Възлови точки]
281. Създаване на база от данни - MongoDB.
292. Изграждане на скрейпинг средство за сайта Имот.бг.
303. Намиране на подходящ алгоритъм за извеждане на най-добрия имот.
314. Имплементиране на горния алгоритъм.
325. Създаване на процес, работещ във фонов режим.
336. Разработка на функционалност за записване на данни в базата.
347. Имплементиране на автоматични известия по имейл.
358. Имплементация на CLI интерфейс.
369. Тестване и отстраняване на грешки.
3710. Документация и подготовка за представяне на проекта.
38
39[Estimate in man-hours/Времеоценка в човекочасове]
4060 часа
41
42[Usage of technologies/Потребление на технологии]
431. **BeautifulSoup/Scrapy** – за скрейпинг на данни.
442. **MongoDB** – за съхранение на данни.
453. **Pandas** – за анализ и обработка на данни.
464. **Argparse** – за разработка на CLI интерфейс.
475. **APScheduler/Celery** – за автоматизация на фонови процеси.
486. **Matplotlib/Seaborn** – за визуализация на данни и анализ на тенденциите.
497. **Yagmail/smtplib** - за изпращане на автоматизирани имейли
50"""
----------------------------------------------------------------------
Ran 0 tests in 0.000s
NO TESTS RAN
Георги Кунчев
02.12.2024 11:06Съгласен съм, че идеята е практична.
Добре си подбрал и технологиите за нея.
Направил си добра разбивка на задачите.
Има опастност да достигнеш нужната сложност за максимален брой точки. Скрейпването и анализирането си имат своите специфики и не са тривиални, но си на границата.
Можеш да обмислиш дали би могъл да направиш интеграция с Google Map, например, за да подпреш с още нещо интересно. Интеграцията може да дава снимка или поне линк с навигация за стигане до имота. Просто идея. Ти решаваш дали ти харесва и дали не искаш да използваш нещо друго за да подсигуриш борба за максимален брой точки.
|