Чуть более года назад, уже написав небольшое количество простых программ на Python, я начал размышлять об идее создания своего первого более‑менее полноценного проекта. Писать что‑то, что уже было 100 500 раз написано до меня, желания совсем не было, хотелось хоть немного оригинальности, и полезности. Но найти оригинальную идею под свой невысокий уровень знаний оказалось не так‑то просто.

Однако как‑то на всем известном видеохостинге я наткнулся на трансляцию мужика с проекта Moscow Python (прошу прощения, имя я не запомнил, и сейчас уже просто не найду) который вещал что‑то о начале пути питониста, а заодно рассказал о программе для изучения английского языка Anki. А далее, прямо на трансляции, он сам решил написать аналогичную программу, но совсем в примитивном виде. И тут, очевидно вдохновившись, меня посетила идея, что вполне полезной могла бы оказаться программа для изучения технического английского языка. Ну зачем мне сразу весь язык, если в конкретный период времени он мне необходим только для уверенного чтения и понимания документации. И я написал.

Написал, но никому не показывал, так как понимал, что с течением времени мне может стать за этот проект стыдно. Однако сейчас я пишу эту статью, так как пощупав приложение по прошествии времени стыда я не испытал. Ни испанского, ни обыкновенного. Возможно это связано с тем, что я просто недалеко ушел от своего уровня годичной давности, однако простите за нескромность, но по моему мнению программа действительно получилась довольно простой и полезной. Как по своему прямому назначению, так и в качестве образца для изучения языка программирования Python начинающим специалистам (ссылка на проект будет ниже). Ну и захотелось поблагодарить мужика с Moscow Python за интересную идею.

Основной функционал

  1. Программа принимает от пользователя URL на страницу с документацией (но и не только).

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

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

При написании кода были затронуты темы:

  • Парсинг веб‑страниц с библиотеками requests и bs4.

  • Работа с регулярными выражениями.

  • Многопроцессорная обработка данных (словарь создается за секунды).

  • Работа с базами данных и SQL.

  • Создание приложения на Flask (это уже было добавлено относительно недавно, сначала я использовал Tkinter).

  • Автотесты (Pytest), но очень слабенько.

  • Немного HTML, CSS и Jinja.

Для начала работы достаточно запустить app.py.

После нужно скормить приложению любой URL, и наслаждаться космическим процессом обучения.

В целом, приложение можно запустить на сервере и открыть для свободного доступа. Для каждого пользователя создается отдельный словарь и друг‑другу они не мешают. Хотя над безопасностью в приложении не мешало бы поработать, так как процесса авторизации там нет, «личный кабинет» доступен по IP.

Но для того я это всё и пишу именно на Хабре. Не чтобы похвастаться своим старым, первым проектом (хотя перед написанием статьи я его немного «причесал»). Очень хотелось бы получить рецензии от опытных и начинающих разработчиков, для меня сейчас это важнейший ресурс, так как я продолжаю процесс обучения.

Кстати, репозиторий проекта TakeWords на GitHub.

Я ведь достаточно поздно увлекся разработкой, но всё же окончательно решил перейти в эту сферу, уж больно мне это нравится. Возможно в каком‑то ближайшем будущем даже осмелюсь на собеседования для трудоустройства в профильные компании. А пока я в основном занимаюсь автоматизацией работы со всякими Web3 проектами, заставляя свои приложения добывать мне разные токены. Но об этом я пишу в канале IT Police.

Спасибо, что потратили время на прочтение этого текста. Если будут вопросы по коду программы, я с удовольствием на них отвечу. А если программа вам всё же понравилась, буду благодарен за звездочку на GitHub. Всех благ!

Комментарии (9)