- Введение
- Скриншот веб-приложения
- Установка
- Использование
- Функционал
- Зависимости
- Описание процесса проектирования и разработки
- Уникальные подходы
- Компромиссы во время разработки
- Ошибки/Проблемы
- Почему выбран именно этот стэк
Этот проект представляет собой современную социальную сеть, разработанную на базе фреймворка Django, где пользователи могут делиться своими мыслями и общаться с другими участниками сообщества. Приложение предлагает полноценную платформу для социального взаимодействия с функциями публикации постов, комментирования, лайков и подписок на других пользователей.
Приложение использует современные технологии, включая Django 4.2 и выше, для обеспечения надежной и безопасной работы. Для обработки изображений используется библиотека Pillow, а интеграция с Google Generative AI позволяет создавать уникальный контент и рекомендации для пользователей.
- Мультиязычный интерфейс (Русский, Английский, Казахский)
- Темная/светлая тема
- Интеграция с Gemini AI для генерации контента
- Система подписок и лайков
- Комментарии к постам
- Поиск по контенту
- Профили пользователей с аватарами
- Клонируйте репозиторий:
git clone https://github.com/1nqi/bailanysta.git
cd bailanysta- Создайте виртуальное окружение и активируйте его:
python -m venv venv
source venv/bin/activate # для Linux/Mac
venv\Scripts\activate # для Windows- Установите зависимости:
pip install -r requirements.txt- Создайте файл
.envв корневой директории проекта и добавьте следующие переменные:
GEMINI_API_KEY=your-gemini-api-key
- Примените миграции:
python manage.py migrate- Создайте суперпользователя:
python manage.py createsuperuser- Запустите сервер разработки:
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).
