Skip to content

Финальный проект для курса по разработке на Python от Точка Банка

License

Notifications You must be signed in to change notification settings

EvgenKuz/TochkaPythonFinal

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Аукционный сайт

Приложения-сайт для проведения аукционнов. Доступно по ссылке
Оплату прикрутить не удалось( Где-то модерацию не прошло, где-то зарегистрироваться не даёт.
Вот документация, по ней создавал; в телефоне лежала, поэтому в гите не болталась.

Страницы:

  • Вход/выход
  • Регистрация
  • Добавление предмета на аукцион(админ)
  • Список аукционов(все)
  • Страница аукциона и участие в нём(все)
  • Личный кабинет(все)

Api jsonrpc methods:

Endpoint - Post api/v1/jsonrpc/

  • login

    Вход пользователя в систему

    username: имя пользователя

    password: пароль

    Возвращает:

    - is_admin: bool
    - Ошибку неверных данных для входа, если не подошёл пароль или логин(-32001)
    
  • logout

    Выход пользователя из системы

    Возвращает:

    - Ок, если успешно вышло
    - Ошибку незалогиненого пользователя(-32003)
    
  • register

    Регистрирует пользователя и запоминает вход на сервере

    username: имя пользователя

    password: пароль

    email: почта

    Возвращает:

    - Ок, если зарегистрирован
    - Ошибку уже существующего пользователя(-32000)
    - Email не прошёл валидацию(-32002)
    
  • add_item

    Добавляет предмет для аукциона

    Только для админа!

    name: название предмета

    starting_price: начальная цена

    picture: ссылка на картинку

    description: описание предмета

    end_of_auction: время и дата завершения аукциона

    Возвращает:

    - Ok, если добавлен
    - Ошибку отсутствия доступа(-32004)
    
  • change_item_status

    Отключение аукциона

    Только для админа!

    id: уникальный Id предмета

    Возвращает:

    - Ok, если статус изменён
    - Ошибку отсутствия доступа(-32004)
    - Ошибка отсутствия аукциона(-32006)
    
  • get_items

    Получить все доступные аукционы

    В порядке завершения(сначале те, что раньше)

    Возвращает:

    - Список разрешённых и активных аукционов для обычных пользователей
    - Все аукционы для админа
    - Ошибку отсутствия доступа(-32004)
    
  • get_item

    Получить информацию об аукционе

    id: уникальный Id аукциона

    Возвращает:

    + Ответ, если всё хорошо
       - name: имя
       - starting_price: начальная цена
       - picture: ссылка на картинку
       - desription: описание
       - end_of_auction: завершение аукциона
       - allowed: работает ли аукцион
    - Ошибку отсутствия доступа(-32004)
    - Ошибку отсутствия аукциона(-32006)
    
  • bet

    Сделать ставку в аукционе

    id: уникальный Id аукциона

    price: предложеная цена

    Возвращает:

    - Ок, если ставка сделана
    - Ошибку отсутствия доступа(-32004)
    - Ошибку отсутсвия аукциона(-32006)
    - Ошибку закончившегося аукциона(-32008)
    - Ошибку невозможности сделать ставку(-32010)
    
  • get_auction_bets

    Возвращает ставки, сделаные в аукционе

    Порядок: сначала самые большие

    Принимает:

    - id: уникальный id аукциона
    

    Возвращает:

    - Список всех ставок по аукциону
    - Ошибку доступа(-32004)
    - Ошибку отсутствия аукциона(-32006)
    
  • get_user_bets

    Получить ставки пользователя

    Порядок: сначала большие ставки

    Принимает: ничего

    Возвращает:

    - Список всех ставок пользователя
    - Ошибку доступа(-32004)
    
  • get_auction_winner

    Получает победителя

    Принимает:

    - id: уникальный id аукциона
    

    Возвращает:

    - Победителя, если аукцион закончился
    - Ошибку ещё неокоченого аукциона(-32007)
    - Ошибку отсутствия доступа(-32004)
    - Ошибку отсутствия аукциона(-32006)
    - Ошибку отсутствия победителя(-32009)
    
  • get_user_info

    Возвращает информацию о пользователе

    Принимает: ничего

    Возвращает:

    - username: имя пользователя
    - email: почта пользователя
    - is_admin: админ или нет
    - Ошибку незалогиненого пользователя(-32003)
    

Jsonrpc ошибки:

  • -32000 - Ошибка уже существующего пользователя
  • -32001 - Ошибка неверных данных для входа
  • -32002 - Email не прошёл валидацию
  • -32003 - Ошибка незалогиненого пользователя
  • -32004 - Ошибка отсутствия доступа
  • -32005 - Метод отключён
  • -32006 - Ошибка отсутствия аукциона
  • -32007 - Ошибка ещё неоконченого аукциона
  • -32008 - Ошибка закончившегося аукциона
  • -32009 - Ошибка отсутствия победителя
  • -32010 - Ошибка невозможности сделать ставкe ниже последней

Модели для базы данных:

  • Пользователь(User)
    • username: Имя пользователя
    • email: эл почта
    • password: хэшированный пароль
    • is_superuser: админ или нет
  • Аукцион(Auction)
    • id: уникальный Id
    • name: предмет аукциона
    • user(User.username): имя пользователя, создавшего аукцион
    • starting_price: начальная цена
    • allowed: одобрен ли аукцион
    • description: описание аукциона
    • picture: url изображения для аукциона
    • end_of_auction: время завершения аукциона
  • Ставка(Bet)
    • id(Auction.id): уникальный Id
    • user(User.username): имя пользователя, сделавшего ставку
    • bet: ставка пользователя

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

  • aiohttp и расширения
  • PeeWee
  • Docker
  • PostgreSQL
  • Vue
  • Redis

About

Финальный проект для курса по разработке на Python от Точка Банка

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published