Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

barter_project — Платформа обмена вещами

Этот проект реализует веб-приложение на Django для обмена вещами между пользователями. Приложение позволяет:

  • Создавать, редактировать и удалять объявления о вещах.
  • Предлагать обмен между объявлениями пользователей.
  • Принимать или отклонять предложения.
  • Просматривать список объявлений и предложений.
  • Использовать REST API и автоматическую документацию через Swagger.

Установка и запуск проекта

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

git clone <repo-url>
cd barter_project
python -m venv .venv
source .venv/bin/activate  # или .venv\Scripts\activate на Windows

2. Установить зависимости

pip install -r requirements.txt

3. Применить миграции и создать суперпользователя

python manage.py migrate
python manage.py createsuperuser

4. Запустить сервер

python manage.py runserver

Функциональность

Объявления

  • Создание, редактирование и удаление объявлений.
  • Поиск и фильтрация по title, description, category, condition.
  • HTML-интерфейс с Bootstrap.

Обмен предложениями

  • Пользователь выбирает своё объявление и чужое, добавляет комментарий.
  • Автоматически создаётся предложение со статусом "в ожидании".
  • Получатель может принять или отклонить предложение.

API (DRF)

  • Реализованы endpoint'ы для CRUD объявлений и предложений обмена.
  • Используется библиотека drf-spectacular для автодокументации.

Swagger UI

Авторизация и права доступа

  • Создавать/редактировать/удалять объявления может только их автор.
  • Ответить на предложение может только получатель соответствующего объявления.

Тестирование

Запуск тестов через pytest:

pytest

Покрытие:

  • Создание объявления
  • Создание предложения обмена и автоматический статус

Стек технологий

  • Python 3.12
  • Django 4.2
  • Django REST Framework 3.16
  • drf-spectacular
  • pytest + pytest-django
  • Bootstrap 5 (CDN)

About

Django-based platform for bartering items between users. Includes ads, exchange proposals, REST API, automated documentation and Pytest tests.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages