Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

YANIGram — Social Media Platform

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 — список необхідних бібліотек.

🛠️ Встановлення та запуск

  1. Клонуйте репозиторій:
git clone https://github.com/your-username/yanigram.git
cd yanigram
  1. Встановіть залежності:
pip install -r requirements.txt
  1. Налаштуйте середовище: Створіть файл .env у кореневій папці:
SECRET_KEY=ваш_секретний_ключ
MONGO_URI=mongodb://localhost:27017/yanigram
  1. Запустіть додаток:
python app.py

Сайт буде доступний за адресою: http://127.0.0.1:5000


📋 Журнал дій (Audit Log)

Система автоматично фіксує всі важливі події:

  • Вхід/Реєстрація користувачів.
  • Створення та редагування контенту.
  • Дії модераторів (видалення, схвалення).
  • Зміна ролей користувачів. Логи доступні адміністраторам у спеціальному розділі панелі керування.

🎨 Інтерфейс

Проект виконаний у сучасному Dark Theme стилі:

  • Основний колір: Темно-сірий (#1a1a1a).
  • Акцентний колір: Фіолетовий/Медіум-пурпур (#9370db).
  • Адаптивність: Повна підтримка мобільних пристроїв та планшетів.

Розроблено як сучасне рішення для ком'юніті-платформ.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages