https://github.com/topotun77/message_board
Доска объявлений на Django (python, Django, SQLite, Django ORM, HTML)
https://github.com/topotun77/message_board
django django-orm html python sqlite3
Last synced: 6 months ago
JSON representation
Доска объявлений на Django (python, Django, SQLite, Django ORM, HTML)
- Host: GitHub
- URL: https://github.com/topotun77/message_board
- Owner: Topotun77
- Created: 2024-12-10T15:34:10.000Z (about 1 year ago)
- Default Branch: master
- Last Pushed: 2025-03-04T10:04:55.000Z (10 months ago)
- Last Synced: 2025-07-13T22:05:38.352Z (6 months ago)
- Topics: django, django-orm, html, python, sqlite3
- Language: Python
- Homepage:
- Size: 13.2 MB
- Stars: 1
- Watchers: 1
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Доска объявлений на Django
В данном проекте используется рендеринг шаблонов, авторизация и регистрация пользователей.
Пользователи регистрируются, авторизуются, могут добавлять новые объявления, редактировать уже созданные и просматривать существующие.
## История обновлений:
• Добавлены статики для светлой темы.
• Оформлен вывод форм для ввода данных в более красивом (на мой взгляд :) виде.
• Добавлена возможность редактирования объявления.
• Убрано лишнее поле `author` при создании нового и редактировании уже имеющегося объявления.
• Добавлена модель `Preferences` в модуль `user_preferences.py` для пользовательских предпочтений.
• Реализован выбор светлой или темной темы сайта для авторизованных пользователей.
• Исключена возможность редактирования чужих объявлений.
• Добавлена документация функций.
• Добавлена функция удаления выбранного объявления. Чужие объявления удалять нельзя.
• Добавлена загрузка изображения.
• Изменены шаблоны (список объявлений, просмотр деталей) для отображения изображений в объявлениях.
• Добавлена возможность просмотра изображения в полном размере по нажатию на картинку. Изображение открывается в новом окне.
• Добавлена возможность суперпользователю редактировать любое объявление.
• Добавлено разделение загруженных картинок по папкам.
• Добавлена модель Image для хранения дополнительных картинок к объявлению.
• Добавлена возможность отображать в деталях объявления несколько загруженных картинок.
• Добавлена возможность отображать в списке объявлений несколько загруженных картинок.
• Добавлена возможность оставлять комментарии под объявлениями.
• Добавлено имя автора к объявлению со ссылкой на список всех объявлений этого автора.
• Добавлен просмотр списка всех объявлений выбранного пользователя.
• Добавлены поля `like_coint` и `dislike_coint` в таблицу `Advertisement` для подсчета числа лайков/дизлайков.
• Добавлена модель `Like` для хранения лайков/дизлайков с привязкой к объявлениям и пользователям.
• На объявление можно поставить либо лайк, либо дизлайк. Если авторизованный пользователь ставил под этим объявлением лайк или дизлайк, то соответствующий значок становится цветным.
• Добавлена возможность генерировать картинки для объявлений через API Kandinsky 3.0. Для генерации используется заголовок и содержимое объявления.
• Добавлено журналирование.
• Добавлен вывод даты объявления и даты комментариев.
• Реализовано удаление дополнительных картинок.
• Реализовано добавление дополнительных картинок.
• Добавлена возможно загрузки нескольких картинок сразу.
• Добавлена модель `UserStat` для хранения статистики по пользователю (количество сообщений, лайков и дизлайков).
• Реализован подсчет статистики по пользователю через сигналы Django.
• Добавлено поле `comment_count` в модель `Статистика`.
• Добавлен раздел статистики доступный только суперпользователям. Отображает информацию по пользователям (количество сообщений, комментариев, лайков и дизлайков).
• Добавлена документация к модулю `kandinsky`.
• Добавлена пагинация на странице со списком объявлений.
• Добавлено поле `page_num` в модель `Preferences`.
• Добавлено сохранение для каждого пользователя его предпочтений по количеству объявлений на страницу.
• Добавлена возможность изменения и сброса пароля пользователя.
• Приложение размещено на Amvera по адресу: [https://messageboard-topotun77.amvera.io](https://messageboard-topotun77.amvera.io).
• Добавлено редактирование и удаление комментариев.
### Скриншот страницы со списком объявлений:

### Список объявлений для выбранного пользователя с указанием количества сообщений:

### Детализация выбранного объявления с лайками/дизлайками и возможномтью редактировать и удалять комментарии:



### Картинка в полном размере в новом окне:

### Редактирование объявления (интерфейс такой же, как и при добавлении нового объявления):

### Регистрация пользователя:

### Комментарии под объявлениями (интерфейс в темной теме):

### Интерфейс в темной теме:

### Все объявления выбранного пользователя:

### В админ-панели добавлен предварительный просмотр картинки:

### Статистика по пользователям:

### Раздел пользовательских настроек:

### Смена пароля:

### Восстановление пароля:

## Для запуска:
1. Установите все необходимые зависимости, выполнив команду:
```
pip install -r requirements.txt
```
2. Укажите переменные окружения `API_KEY` и `SECRET_KEY` с ключами для API Kandynsky.
Для получения ключей нужно зарегистрироваться на [Fusion Brain](https://fusionbrain.ai/)
3. Для локального запуска:
- перейдите в каталог `board_project`, команда:
```
cd .\board_project\
```
- запустите код с помощью команды:
```
python manage.py runserver
```
4. Для запуска на сервере используйте команду:
```
cd board_project && gunicorn board_project.wsgi:application --bind 0.0.0.0:80
```