{"id":23383091,"url":"https://github.com/topotun77/message_board","last_synced_at":"2026-02-13T07:33:09.184Z","repository":{"id":267691319,"uuid":"901400437","full_name":"Topotun77/message_board","owner":"Topotun77","description":"Доска объявлений на Django (python, Django, SQLite, Django ORM, HTML)","archived":false,"fork":false,"pushed_at":"2025-03-04T10:04:55.000Z","size":13878,"stargazers_count":1,"open_issues_count":1,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-13T22:05:38.352Z","etag":null,"topics":["django","django-orm","html","python","sqlite3"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Topotun77.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-12-10T15:34:10.000Z","updated_at":"2025-05-23T20:52:45.000Z","dependencies_parsed_at":"2025-01-14T13:19:55.001Z","dependency_job_id":"59811f7a-a41b-476a-9261-a15529ab5260","html_url":"https://github.com/Topotun77/message_board","commit_stats":null,"previous_names":["topotun77/message_board"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Topotun77/message_board","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Topotun77%2Fmessage_board","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Topotun77%2Fmessage_board/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Topotun77%2Fmessage_board/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Topotun77%2Fmessage_board/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Topotun77","download_url":"https://codeload.github.com/Topotun77/message_board/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Topotun77%2Fmessage_board/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265212483,"owners_count":23728547,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["django","django-orm","html","python","sqlite3"],"created_at":"2024-12-21T22:17:10.025Z","updated_at":"2026-02-13T07:33:09.137Z","avatar_url":"https://github.com/Topotun77.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Доска объявлений на Django\n\nВ данном проекте используется рендеринг шаблонов, авторизация и регистрация пользователей.\nПользователи регистрируются, авторизуются, могут добавлять новые объявления, редактировать уже созданные и просматривать существующие.\n\n## История обновлений:\n\n• Добавлены статики для светлой темы.  \n• Оформлен вывод форм для ввода данных в более красивом (на мой взгляд :) виде.  \n• Добавлена возможность редактирования объявления.  \n• Убрано лишнее поле `author` при создании нового и редактировании уже имеющегося объявления.  \n• Добавлена модель `Preferences` в модуль `user_preferences.py` для пользовательских предпочтений.  \n• Реализован выбор светлой или темной темы сайта для авторизованных пользователей.  \n• Исключена возможность редактирования чужих объявлений.  \n• Добавлена документация функций.  \n• Добавлена функция удаления выбранного объявления. Чужие объявления удалять нельзя.  \n• Добавлена загрузка изображения.  \n• Изменены шаблоны (список объявлений, просмотр деталей) для отображения изображений в объявлениях.  \n• Добавлена возможность просмотра изображения в полном размере по нажатию на картинку. Изображение открывается в новом окне.  \n• Добавлена возможность суперпользователю редактировать любое объявление.  \n• Добавлено разделение загруженных картинок по папкам.  \n• Добавлена модель Image для хранения дополнительных картинок к объявлению.  \n• Добавлена возможность отображать в деталях объявления несколько загруженных картинок.  \n• Добавлена возможность отображать в списке объявлений несколько загруженных картинок.  \n• Добавлена возможность оставлять комментарии под объявлениями.  \n• Добавлено имя автора к объявлению со ссылкой на список всех объявлений этого автора.  \n• Добавлен просмотр списка всех объявлений выбранного пользователя.  \n• Добавлены поля `like_coint` и `dislike_coint` в таблицу `Advertisement` для подсчета числа лайков/дизлайков.  \n• Добавлена модель `Like` для хранения лайков/дизлайков с привязкой к объявлениям и пользователям.  \n• На объявление можно поставить либо лайк, либо дизлайк. Если авторизованный пользователь ставил под этим объявлением лайк или дизлайк, то соответствующий значок становится цветным.  \n• Добавлена возможность генерировать картинки для объявлений через API Kandinsky 3.0. Для генерации используется заголовок и содержимое объявления.  \n• Добавлено журналирование.  \n• Добавлен вывод даты объявления и даты комментариев.  \n• Реализовано удаление дополнительных картинок.  \n• Реализовано добавление дополнительных картинок.  \n• Добавлена возможно загрузки нескольких картинок сразу.  \n• Добавлена модель `UserStat` для хранения статистики по пользователю (количество сообщений, лайков и дизлайков).  \n• Реализован подсчет статистики по пользователю через сигналы Django.  \n• Добавлено поле `comment_count` в модель `Статистика`.  \n• Добавлен раздел статистики доступный только суперпользователям. Отображает информацию по пользователям (количество сообщений, комментариев, лайков и дизлайков).  \n• Добавлена документация к модулю `kandinsky`.  \n• Добавлена пагинация на странице со списком объявлений.  \n• Добавлено поле `page_num` в модель `Preferences`.  \n• Добавлено сохранение для каждого пользователя его предпочтений по количеству объявлений на страницу.  \n• Добавлена возможность изменения и сброса пароля пользователя.  \n• Приложение размещено на Amvera по адресу: [https://messageboard-topotun77.amvera.io](https://messageboard-topotun77.amvera.io).  \n• Добавлено редактирование и удаление комментариев.  \n\n### Скриншот страницы со списком объявлений:\n![img01](https://github.com/Topotun77/message_board/blob/master/ScreenShots/n001.jpg?raw=true)\n### Список объявлений для выбранного пользователя с указанием количества сообщений:\n![img01](https://github.com/Topotun77/message_board/blob/master/ScreenShots/n007.jpg?raw=true)\n### Детализация выбранного объявления с лайками/дизлайками и возможномтью редактировать и удалять комментарии:\n![img02](https://github.com/Topotun77/message_board/blob/master/ScreenShots/n002.jpg?raw=true)\n![img02](https://github.com/Topotun77/message_board/blob/master/ScreenShots/n020.jpg?raw=true)\n![img02](https://github.com/Topotun77/message_board/blob/master/ScreenShots/n021.jpg?raw=true)\n### Картинка в полном размере в новом окне:\n![img02](https://github.com/Topotun77/message_board/blob/master/ScreenShots/n006.jpg?raw=true)\n### Редактирование объявления (интерфейс такой же, как и при добавлении нового объявления):\n![img03](https://github.com/Topotun77/message_board/blob/master/ScreenShots/n003.jpg?raw=true)\n### Регистрация пользователя:\n![img04](https://github.com/Topotun77/message_board/blob/master/ScreenShots/n004.jpg?raw=true)\n### Комментарии под объявлениями (интерфейс в темной теме):\n![img04](https://github.com/Topotun77/message_board/blob/master/ScreenShots/n014.jpg?raw=true)\n### Интерфейс в темной теме:\n![img10](https://github.com/Topotun77/message_board/blob/master/ScreenShots/n010.jpg?raw=true)\n### Все объявления выбранного пользователя:\n![img10](https://github.com/Topotun77/message_board/blob/master/ScreenShots/n011.jpg?raw=true)\n### В админ-панели добавлен предварительный просмотр картинки:\n![img10](https://github.com/Topotun77/message_board/blob/master/ScreenShots/n015.jpg?raw=true)\n### Статистика по пользователям:\n![img10](https://github.com/Topotun77/message_board/blob/master/ScreenShots/n016.jpg?raw=true)\n### Раздел пользовательских настроек:\n![img10](https://github.com/Topotun77/message_board/blob/master/ScreenShots/n017.jpg?raw=true)\n### Смена пароля:\n![img10](https://github.com/Topotun77/message_board/blob/master/ScreenShots/n018.jpg?raw=true)\n### Восстановление пароля:\n![img10](https://github.com/Topotun77/message_board/blob/master/ScreenShots/n019.jpg?raw=true)\n\n## Для запуска:\n1. Установите все необходимые зависимости, выполнив команду:  \n```\npip install -r requirements.txt\n```\n2. Укажите переменные окружения `API_KEY` и `SECRET_KEY` с ключами для API Kandynsky. \nДля получения ключей нужно зарегистрироваться на [Fusion Brain](https://fusionbrain.ai/)   \n3. Для локального запуска:  \n- перейдите в каталог `board_project`, команда:  \n```\ncd .\\board_project\\\n```  \n- запустите код с помощью команды:  \n```\npython manage.py runserver\n```  \n4. Для запуска на сервере используйте команду:  \n```\ncd board_project \u0026\u0026 gunicorn board_project.wsgi:application  --bind 0.0.0.0:80\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftopotun77%2Fmessage_board","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftopotun77%2Fmessage_board","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftopotun77%2Fmessage_board/lists"}