я трудился над этим проектом 4 месяца 1 день
с 8 июня 2025 г. по 9 октября 2025 г.
Работодатели хотят увидеть в первую очередь то, что кандидат уже сделал.
А что может предложить бедный студент?
Чтобы что-то показать — надо получить заказ, а чтобы получить заказ — надо что-то показать. Замкнутый круг. Вот я и решил заказать себе что-то. А что может быть актуальней для студента, который ищет работу?.. Конечно резюме. Но резюме — это просто текст. Его, конечно, можно красиво изобразить, но всё равно скучно. А вот так, чтоб было несколько страниц, разные меню, переходы на внешние источники, при этом использовалась база данных, и ещё чтоб оно было интерактивным – вот это уже интересно. Придумано – сделано.
Это мой собственный проект.
Я его придумал от идеи и архитектуры до внешнего вида и содержимого. Он основан на базе, куда я заношу данные, и из них генерируется большинство страниц и меню. Под каждым блоком можно устроить дискуссию, и даже поговорить с авторами сообщений на их собственной странице. Личные чаты я делать не стал, а то получился бы мессенджер, а это всё-таки мой личный сайт, и я надеюсь разговоры будут именно о моих навыках, возможностях и всём таком. С удовольствием приму идеи и предложения.
Для тех, кому интересна техническая информация, расскажу подробней:
Проект создан в фреймворке Django.
В проекте восемнадцать моделей. Все таблицы взаимосвязаны. Четыре модели абстрактные, и на их основе строятся другие семь моделей, такие как "Навыки", "Проекты", "Курсы". Модель "Пользователя" написана и расширена на основе "AbstractUser". Каждый зарегистрировавшийся пользователь имеет возможность заполнить данные о себе. Его страница будет отображаться подобно моей, за исключением меню резюме. Была поначалу идея дать возможность заполнять и блоки из резюме. Но тогда мой сайт превратился бы в сборник резюме. Однако такое расширение можно реализовать.
Страницы составлены из подключаемых блоков. Блоки генерируются на основе View-классов. А для блока "Отзывов" написан миксин.
Основное меню резюме стационарно, а верхнее и нижние — динамические, формируются на основе запросов к базе.
При добавлении отклика срабатывает сигнал для отправки оповещения. Оповещение сделал только для себя, чтобы не усложнять. Возможно расширение для подписки на отзывы, с возможностью следить за ответами.
Для регистрации пользователей использовал пакет AllAuth. С этим связано несколько заминок, но на работу сайта они не влияют.
Резюме заполняю через админ-панель. Личные данные заполняются в форме каждым пользователем. И сделана форма для добавления отзыва.
По отзывам отдельная история.
Я специально сделал возможность оставлять отзывы без регистрации, чтоб не усложнять эту возможность. Но после публикации меня удивили боты. Я надеялся, что они меня долго будут искать, однако им понадобилось пару дней. Надо было как-то защищаться. Теперь на сайте подключён сервис ReCAPTCHA, третья версия, очень удобная, надеюсь, работает надёжно.
Сайт опубликован на хостинге Beget. Думал использовать для развёртки Докер, но это неоправданно усложняло бы проект. Оставил эту идею на будущее, если понадобиться потренироваться.
На GitHub есть репозиторий этого сайта. Там отображён весь процесс создания этого проекта, и по коммитам можно отследить, как я его создавал (ну очень подробно).
Есть ещё идеи на будущее. Можно сделать сайт мультиязычным. Ещё адаптировать к времени суток или сделать выбор отображения. Ещё можно заставить его звучать… Но это пока только мечты, когда их реализовывать неизвестно.
А Вы как думаете, что тут ещё можно сделать?
А у меня сейчас есть ещё идейка, кроме сайта. Потом расскажу.
навыки отработанные на этом проекте:
Python , ООП , Django , Базы данных , PyCharm , GitHub , Windows , HTML & CSS , Git , SQLite , MySQL ,