Skip to content

Latest commit

 

History

14 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bailanysta

Оглавление

Введение

Этот проект представляет собой современную социальную сеть, разработанную на базе фреймворка Django, где пользователи могут делиться своими мыслями и общаться с другими участниками сообщества. Приложение предлагает полноценную платформу для социального взаимодействия с функциями публикации постов, комментирования, лайков и подписок на других пользователей.

Приложение использует современные технологии, включая Django 4.2 и выше, для обеспечения надежной и безопасной работы. Для обработки изображений используется библиотека Pillow, а интеграция с Google Generative AI позволяет создавать уникальный контент и рекомендации для пользователей.

  • Мультиязычный интерфейс (Русский, Английский, Казахский)
  • Темная/светлая тема
  • Интеграция с Gemini AI для генерации контента
  • Система подписок и лайков
  • Комментарии к постам
  • Поиск по контенту
  • Профили пользователей с аватарами

Скриншот

Установка

  1. Клонируйте репозиторий:
git clone https://github.com/1nqi/bailanysta.git
cd bailanysta
  1. Создайте виртуальное окружение и активируйте его:
python -m venv venv
source venv/bin/activate  # для Linux/Mac
venv\Scripts\activate     # для Windows
  1. Установите зависимости:
pip install -r requirements.txt
  1. Создайте файл .env в корневой директории проекта и добавьте следующие переменные:
GEMINI_API_KEY=your-gemini-api-key
  1. Примените миграции:
python manage.py migrate
  1. Создайте суперпользователя:
python manage.py createsuperuser
  1. Запустите сервер разработки:
python manage.py runserver

Использование

После установки и настройки приложение будет доступно по адресу http://127.0.0.1:8000/. Для входа в систему или регистрации используйте соответствующие ссылки в интерфейсе.

Функционал

  • Аутентификация: регистрация, вход, выход, обновление профиля
  • Профили: просмотр, подписки/подписчики, редактирование профиля и аватара
  • Публикации: создание, редактирование, удаление постов (хабаров), лайки и комментарии
  • Поиск: поиск по контенту
  • AI: генерация контента с помощью Gemini AI
  • Уведомления: система уведомлений с возможностью отметки прочитанных
  • Мультиязычность: поддержка английского, казахского и русского языков
  • Темы: светлая и темная темы с сохранением выбора

Зависимости

  • Django (>=4.2.0)
  • Pillow (>=10.0.0)
  • python-dotenv (>=1.0.0)
  • google-generativeai (>=0.3.0)

Описание процесса проектирования и разработки

При разработке приложения был использован подход серверного рендеринга с Django, где frontend и backend тесно интегрированы через Django Templates. В процесс разработки входило: создание моделей данных, представлений (views) для обработки запросов, шаблонов для отображения интерфейса и форм для взаимодействия с пользователем.

Уникальные подходы

В проекте была использована интеграция с Gemini API для генерации постов. Также была реализована система уведомлений в реальном времени, которая отслеживает действия пользователей (лайки и комментарии) и сообщает о них.

Компромиссы

Сначала была идея реализовать связь между фронтендом и бэкендом через REST API, который предоставляет Django REST Framework, но позже отказался от этой идеи в пользу Django templates для упрощения архитектуры. Также отказ от использования REST API был обусловлен моими ограниченными знаниями во фронтенд разработке.

Известные ошибки или проблемы

  • Проблемы с UI/UX: Отсутствует плавная анимация сообщений и иногда сайт "плывет" из-за "костылей" в верстке;
  • Интерфейс плохо оптимизирован под смартфоны и планшеты;
  • Пользователи могут подписываться сами на себя.

Почему выбран именно этот стэк

Я выбрал Django, потому что имею опыт в разработке на данном стэке. Также мне нравится, что Django предоставляет встроенную админ-панель, систему аутентификации, структурированность приложения и свободу в разработке. Frontend (Bootstrap 5) и backend связаны через серверный рендеринг Django (Django Templates).

About

Этот проект представляет собой современную социальную сеть, разработанную на базе фреймворка Django, где пользователи могут делиться своими мыслями и общаться с другими участниками сообщества.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages