Skip to content
This repository has been archived by the owner on Feb 11, 2024. It is now read-only.

Its-OP/auction

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

46 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Веб-додаток для благодійного онлайн-аукціону

  • Команда: H2O
  • Напрямок WEB Development

Раді поділитись з вами нашим додатком, який є майданчиком для благодійних аукціонів. За допомогою додатку користувачі можуть створювати та редагувати свої лоти, переглядати лоти інших учаників, робити ставки на лотах, що їх зацікавили, а також дивитись історію ставок та активних користувачів на лотах.

Як запустити

  1. Завантажити репозиторій
  2. З корневої папки репозиторію виконати команду docker compose up
  3. В браузері відкрити адресу http://localhost:5173

Функціональність додатку

Основна функціональність

  • Публікація нових лотів
  • Менеджмент своїх лотів (редагування, закриття)
  • Перегляд усіх лотів
  • Ставлення ставок на лоти
  • Перегляд історії ставок та активних учасників аукціону

Додаткова функціональність

  • Сортування лотів за ціною та датою створення, а також фільтрація за назвою лоту

Публікація нових лотів

Створити новий лот може кожен користувач платформи. Для створення, користувачу необхідно заповнити форму з параметрами аукціону, додати одне головне фото, та, опціонально, декілька фото для галереї. Після створення, аукціон на доданий лот вважається активним. Створити лот (1) 2

Менеджмент своїх лотів

Користувачі можуть редагувати свої аукціони, які ще не були закриті (на яких немає переможця).

Лот_редагувати

Перегляд усіх лотів

Сторінка з усіма лотами є головною сторінкою додатку. На неї користувач потрапляє після авторизації. На даній сторінці користувач може сортувати та фільтрувати лоти за такими параметрами як назва лоту і поточна ставка. Окрім цього, для зручності користувачів і зменшення навантаження на сервер, дана сторінка підтримує пагінацію.

Лоти

Ставлення ставок на лоти

При переході на сторінку конкретного лоту, користувач може поставити свою ставку. Для цього, розмір ставки повинен перевищувати розмір суми попереденьої ставки і мінімальної різниці між ставками, або розмір мінімальної ціни аукціону, якщо лот досі немає ставок. Коли ставку поставлено, при перезавантаженні сторінки її можна побачити в історії ставок.

Лот

Реалізація серверної частини

Використані технології

Серверна частина додатку була написана у фреймворці ASP.NET Core 8. За базу даних було обрано PostgreSQL, а в якості ORM для комунікації з нею було використано Entity Framework Core. Для оновлення клієнтської частини в режимі реального часу було вирішено використовувати протокол веб-сокетів, а робота з ними велась за допомогою бібліотеки SignalR.

Архітектура

Архітектура системи брала натхнення у шаблону 'Чиста Архітектура'. Відмінність з даним шаблоном складає те, що в нашому додатку бізнес-логіка є прописаною одразу в ендпоінтах API. Таке відхилення від стандартів було вирішено зробити зважаючи на те, що проєкт є малим і не потребуватиме тривалої підтримки. Доменні сутності системи були побудовані за принципом Domain-Driven Design.

Реалізація клієнтської частини

Використані технології

Серверна частина додатку була написана у фреймворці React, за допомогою Vite і TypeScript. На жаль, трохи не вистачило часу на інтеграцію вебсокетів до проєкту.

Щиро дякуємо команді організаторів INT20H за увагу та приділений час!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages