django-app-recordacion

0

Описание

Языки

  • Python39%
  • HTML25,5%
  • CSS24,9%
  • Shell8,5%
  • Dockerfile2,1%
README.md

Recordacion

Recordacion - это веб-приложение на основе Django для управления и обмена записями. Пользователи могут добавлять свои записи с изображениями и описаниями, а администраторы могут одобрять их для публичного просмотра.

Скриншот

Настройка AI инструментов

AI инструменты

AI промпты для создания django APP

Возможности

  • Удобное добавление записей с изображениями
  • Система одобрения администратором для модерации записей
  • Поддержка нескольких изображений для одной записи
  • Превью-изображения для записей
  • Автоматическое отслеживание временных меток
  • Интерфейс администратора Django для управления записями

Используемые технологии

  • Django 5.2.7
  • Python 3.13
  • SQLite (база данных)

Структура проекта

recordacion/ ├── recordacion/ # Основные настройки проекта Django │ ├── __init__.py │ ├── asgi.py │ ├── settings.py │ ├── urls.py │ └── wsgi.py ├── records/ # Приложение записей │ ├── management/ │ │ └── commands/ │ │ └── create_admin_user.py │ ├── migrations/ │ ├── __init__.py │ ├── admin.py │ ├── apps.py │ ├── models.py │ ├── tests.py │ └── views.py ├── manage.py ├── requirements.txt └── README.md

Инструкции по настройке

1. Клонируйте репозиторий и перейдите в директорию проекта

2. Создайте и активируйте виртуальное окружение

3. Установите зависимости

4. Запустите миграции базы данных

5. Заполните базу данных

5.1 Создайте администратора

Это создаст суперпользователя с:

  • Имя пользователя:
    admin
  • Пароль:
    admin
  • Email:
    admin@example.com

5.2 Заполните записи

Заполняет базу данных начальными записями из

prompts/init-data/data.json
:

Эта команда:

  • Читает данные из
    prompts/init-data/data.json
  • Создаёт объекты RecordEntry с заголовками, описаниями и изображениями
  • Пропускает записи, которые уже существуют с таким же заголовком
  • Помечает начальные записи как одобренные

6. Запустите сервер разработки

Приложение будет доступно по адресу

http://127.0.0.1:8000/

7. Доступ к интерфейсу администратора

Перейдите по адресу

http://127.0.0.1:8000/admin/
и войдите с учётными данными администратора, созданными на шаге 5.

Настройка Docker

Быстрый запуск с Docker

Соберите и запустите приложение используя Docker:

Приложение будет доступно по адресу

http://127.0.0.1:8000/

Детали конфигурации Docker

Настройка Docker включает:

  • Базовый образ:
    python:3.13.9-bookworm
    (официальный образ Python)
  • Непривилегированный пользователь: Запускается от пользователя
    django
    с UID 1000 для безопасности
  • База данных: База данных SQLite хранится в директории
    ./db
  • Медиа файлы: Хранятся в директории
    ./media
  • Автоматическая инициализация:
    • Запускает миграции базы данных
    • Создаёт пользователя администратора (имя:
      admin
      , пароль:
      admin
      )
    • Заполняет начальные записи из
      prompts/init-data/data.json
  • Статические файлы: Автоматически собираются во время сборки

Переменные окружения

  • CONTAINER_NAME
    : Используется для настройки разрешённых хостов в Cloud.ru Container Apps

Модели

RecordEntry

Основная модель для хранения записей со следующими полями:

  • title
    : Заголовок записи (CharField)
  • description
    : Подробное описание (TextField)
  • preview_image
    : Превью-изображение (ImageField)
  • images
    : Несколько изображений связанных с записью (ManyToManyField)
  • created_at
    : Автоматически генерируемая временная метка создания
  • updated_at
    : Автоматически генерируемая временная метка обновления
  • is_approved
    : Статус одобрения (BooleanField)
  • approved_by
    : Пользователь администратор, который одобрил запись (ForeignKey к User)

RecordImage

Модель для хранения отдельных изображений, которые могут быть связаны с несколькими записями.

Заметки по разработке

  • Медиа файлы хранятся в директории
    media/
  • Статические файлы обслуживаются из директории
    static/
  • Проект использует SQLite для разработки (может быть настроен для продакшн баз данных)
  • Все временные метки обрабатываются автоматически Django
  • Загрузка изображений настроена для работы с системой обработки медиа Django