YANIGram — це сучасна соціальна мережа, побудована на Flask та MongoDB, яка зосереджена на обміні контентом, взаємодії між користувачами та багаторівневій системі модерації. Проект має адаптивний інтерфейс у темних тонах та розширену клієнтську логіку на JavaScript.
- Система ролей: Користувач (
user), Модератор (moder), Адміністратор (admin). - Персоналізація: Завантаження та зміна аватарів, редагування біографії, зміна паролів.
- Соціальний граф: Можливість підписуватися на інших користувачів, перегляд списків підписників та взаємних підписок.
- Статус Online: Відображення реального часу перебування користувача на сайті.
- Створення постів: Завантаження зображень, додавання заголовків та динамічна система тегів.
- Історія версій: Повноцінна система контролю версій для постів — можливість переглядати зміни, порівнювати версії та відновлювати попередні стани.
- Взаємодія: Система лайків/дизлайків для постів та коментарів.
- Коментарі: Багаторівнева система відповідей (tree-style) на коментарі.
- Черга модерації: Пости та коментарі потрапляють на перевірку перед публікацією.
- Панель модератора: Зручний інтерфейс для схвалення або відхилення контенту з автоматичним оновленням.
- Адмін-панель: Керування складом команди модераторів та перегляд системних логів (Audit Log) у реальному часі.
- Системні сповіщення: Повідомлення користувачів про статус модерації їхнього контенту.
- Notifications System: Система сповіщень у реальному часі (polling) про нові підписки, лайки та дії модераторів.
- Smart Search: Пошук користувачів та постів за ключовими словами та тегами.
- Top 10: Автоматичний рейтинг популярних користувачів та постів.
- Backend: Python 3.x, Flask
- Database: MongoDB (через Flask-PyMongo)
- Auth: Flask-Login
- Frontend: HTML5 (Jinja2 templates), CSS3 (Custom variables, Flex/Grid), JavaScript (Vanilla JS)
- Image Handling: Pillow, ImageSize (для обробки та валідації завантажених фото)
- Environment: Python-dotenv для безпечного зберігання ключів
app.py— основний файл сервера та маршрутизація.static/— стилі (CSS), клієнтські скрипти (JS) та завантажені медіафайли.templates/— Jinja2 шаблони для кожної сторінки сайту..env— конфігурація підключення до БД та секретні ключі.requirements.txt— список необхідних бібліотек.
- Клонуйте репозиторій:
git clone https://github.com/your-username/yanigram.git
cd yanigram
- Встановіть залежності:
pip install -r requirements.txt
- Налаштуйте середовище:
Створіть файл
.envу кореневій папці:
SECRET_KEY=ваш_секретний_ключ
MONGO_URI=mongodb://localhost:27017/yanigram
- Запустіть додаток:
python app.py
Сайт буде доступний за адресою: http://127.0.0.1:5000
Система автоматично фіксує всі важливі події:
- Вхід/Реєстрація користувачів.
- Створення та редагування контенту.
- Дії модераторів (видалення, схвалення).
- Зміна ролей користувачів. Логи доступні адміністраторам у спеціальному розділі панелі керування.
Проект виконаний у сучасному Dark Theme стилі:
- Основний колір: Темно-сірий (
#1a1a1a). - Акцентний колір: Фіолетовий/Медіум-пурпур (
#9370db). - Адаптивність: Повна підтримка мобільних пристроїв та планшетів.
Розроблено як сучасне рішення для ком'юніті-платформ.