Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ---------- Переслане повідомлення ----------
- Від: Віталій Нобіс <nobisv...@gmail.com>
- Дата: 29 жовтня 2014 р. 13:06
- Тема: Завдання Ebay
- Кому: Ульяна Козуб <kozub....@gmail.com>
- Створити консольну версію інтернет аукціону.
- Програма дозволяє купувати товари за фіксовану ціну або на аукціоні між різними користувачами.
- Програма має складатися з трьох логічних частин:
- backend - для обробки команд і даних,
- historyLoader - для завантаження історії команд при запуску програми
- userInterface - для консольної взаємодії з користувачем
- reports - для створення звітів
- backend
- Містить класи для представлення товарів, користувачів, ставок (bids) на аукціоні, та мехінізм для їх збереження.
- Містить логічний функціонал перевірки вхідних даних при створенні вищеперелічених об'єктів.
- Користувач має інформацію про свій тип, логін, пароль, ПІБ, країну, номер кредитної картки, історію покупок та ставок, рейтинг продавця (0-100), відмітку перевіреного продавця (встановлюється адміністратором аукціону), рейтинг покупця (0-100) (очивидно, що підкреслені властивості можуть виникнути тільки всередині аукціону, і не можуть бути завантажені з файлу).
- Типи користувачів: адміністратор, користувач.
- Адміністратор не може продавати/купувати товари, але може блокувати користувачів, надавати їм відмітку перевіреного продавця, блокувати позиції аукціону (модерація).
- Товар має назву, опис, кількість одиниць (наприклад, 5 пар взуття, як одна позиція в аукціоні), ціна, тип продажу (аукціон, фіксована ціна), термін аукціону (1,3,5 днів), мінімальне зростання ставки, доставку в обмежену кількість країн (або у всі можливі), обмеження на рейтинг покупця.
- Ставка має інформацію про того хто її зробив, іі значення і час.
- При встановленій фіксований ціні товар може бути куплений одразу, якщо термін аукціону це дозволяє. При аукціоні, товар отримується тим користувачем, який зробив найбільшу ставку.
- Процес роботи аукціону:
- Позиція аукціону має початкову ціну 100, мінімальне зростання 5.
- Користувач А робить ставку (для нього ціна 100)
- Користувач В робить ставку (для нього ціна 105)
- Користувач А робить ставку +15 (нова ціна - 120)
- Термін аукціону вичерпався (заборона на нові ставки)
- Товар проданий за 120
- historyLoader
- Містить функціонал для завантаження певного стану інтернет аукціону з файлу. Вміє розрізняти команди у файлі та перевіряти їх на правильність.
- команда складається з таких частин: час, тип команди, додаткові дані.
- Файл містить команди в порядку зростання часу (вважатимемо, що дві коменди не можуть виконуватися в той самий час, але валідація має бути присутня), при обробці команди внутрішній годинник аукціону оновлюється до вказаного часу і виконуються автоматичнві дії, такі як завершення акціону для товару А, тощо.
- Кожна команда може мати свою кількість додаткових даних.
- Типи команд користувачів: створити користувача, змінити його дані, створити позицію на аукціоні (товар), зробити ставку
- Типи команд адміністраторів: заблокувати користувача, надавати користувачу відмітку перевіреного продавця, блокувати позиції аукціону (модерація)
- Мають виконуватися перевірки для кожної з завантажених команд: заблокований користувач не може виконувати якісь дії, заблокований товар не можна купити, не можна купити проданий товар, не можна купувати товар який не доставляють в країну користувача, тощо (згідно логіки і описаних деталей завдання).
- Тексти (такі як опис) мають бути обмеженні у файлі символами " (наприклад "some description for product F").
- userInterface
- Дозволяє залогуватися в систему за логіном та паролем.
- Для адміністратора дає можливість створювати користувачів, блокувати користувачів, надавати їм відмітку перевіреного продавця, блокувати позиції аукціону (модерація).
- Звичайний користувач може переглядати всі позиції з застосуванням фільтрів (ціна, назва, тип товару, тощо) та сортувань, робити ставки, переглядати свої товари, історію своїх покупок та продажів, продавати товари.
- reports
- Дозволяє згенерувати звіт згідно стану системи (завантаженої історії). Звіти зберігаються у зовнішній файл з вказаним з консолі іменем. Типи звітів: завершені аукціони за останні 30/90/180 днів, активні аукціони (сюди входять непродані товари з фіксованою ціною) на даний момент, заблоковані аукціони за останні 30/90/180 днів, доходи продавців за останні 30/90/180 днів.
- Програма має запускатися з консолі в трьох режимах:
- З інтерфесом, можлитвістю залогуватися, тощо (historyLoader завантажує файл на старті без виводу на консоль)
- Режим логу - historyLoader завантажує файл на старті та виводить на консоль повідомлення про невалідні дії (такі як купівля проданого товару)
- Режим звітів - створення звітів через консоль з визначенням необхідних параметрів.
- Завдання оцінюється в 25 балів:
- відсутність historyLoader - це -15 балів (max 10)
- відсутність userInterface - це -10 балів (max 15)
- відсутність reports- це -5 балів (max 20)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement