Git Product home page Git Product logo

kerrat / cool-parking Goto Github PK

View Code? Open in Web Editor NEW
0.0 0.0 0.0 1 KB

Уявний замовник, директор Паркінгу, бажаючи автоматизувати рутинні процеси свого бізнесу, звернувся до тебе по допомогу, тож тобі треба створити простеньку програму для керування Паркінгом - “Cool Parking”.

License: MIT License

binary-studio-academy bsa22 parking personal website

cool-parking's People

Contributors

kerrat avatar

Watchers

 avatar

cool-parking's Issues

Недостатньо коштів на балансі

Якщо баланс позитивний, але менше ніж поточна оплата за тарифом, то коефіцієнт буде застосований до відсутньої суми:
Наприклад на рахунку Тр. засобу 3у.о., тариф 5у.о., коефіцієнт 2.5. Бачимо що не вистачає 5-3 = 2у.о. і до цієї суми буде застосовано коефіцієнт, відповідно сума списання в даному випадку складе 3 + 2 * 2,5 = 8у.о.

Кожні N-секунд - Період списання оплати

гроші переводяться з балансу Тр. засобу на баланс Паркінгу згідно з тарифом, який залежить від типу Тр. засобу. Якщо гроші на балансі Тр. засобу закінчилися, то плата продовжує зніматися, але вже з Коефіцієнтом штрафу, через що утворюється борг (від'ємний баланс).

Програма повинна надавати можливість

ставити та забирати Тр. засоби з Паркінгу;
поповнювати баланс Тр. засобів;
надавати поточну інформацію про паркомісця (вільно X з Y);
в автоматизованому режимі знімати оплату за послуги Паркінгу;
вести журнал поточних Транзакцій;
зберігати історію Транзакцій у файл.

Програма повинна надавати можливість

  1. ставити та забирати Тр. засоби з Паркінгу;
  2. поповнювати баланс Тр. засобів;
  3. надавати поточну інформацію про паркомісця (вільно X з Y);
  4. в автоматизованому режимі знімати оплату за послуги Паркінгу;
  5. вести журнал поточних Транзакцій;
  6. зберігати історію Транзакцій у файл.

Класифікація транспортних засобів

Транспортні засоби (Тр. засоби) повинні мати Тип (один з 4х: Легкова, Вантажна, Автобус, Мотоцикл), Баланс та ID формату ХХ-YYYY-XX (де X - будь-яка літера англійського алфавіту у верхньому регістрі, а Y - будь-яка цифра, наприклад DV-2345-KJ).

Налаштування

У програмі мають бути передбачені Налаштування, чудово підійде статичний клас, у якому централізовано знаходяться глобальні змінні та конфігурації, необхідні для роботи програми. У Налаштуваннях потрібно вказати:

  1. Початковий баланс Паркінгу - 0;
  2. Місткість Паркінгу - 10;
  3. Період списання оплати, N-секунд - 5;
  4. Період запису у лог, N-секунд - 60;
  5. Тарифи в залежності від Тр. засобу: Легкова — 2,
  6. Вантажна — 5, Автобус — 3.5, Мотоцикл — 1;
  7. Коефіцієнт штрафу - 2.5.

Списання оплати

Період списання оплати відраховується не для кожного Тр. засобу з моменту його встановлення на Паркінг, а для Паркінгу (Тр. засобів на ньому) в цілому - з моменту початку роботи Паркінгу. Це допущення спрощує реалізацію.
Наприклад, якщо Період списання оплати дорівнює 5 сек і Паркінг почав роботу у 09:27:03, Тр. засіб №1 поставлен на Паркінг у 09:27:04, а Тр. засіб №2 у 09:27:06, то у 09:27:08 (09:27:13, 09:27:18, …) з обох Тр. засобів буде зніматися оплата, поки вони не будуть зняті з Паркінгу.

Транзакції

Процес оплати фіксується Транзакцією. У ній вказується час Транзакції, ідентифікатор Тр. засобу та кількість грошей, які були списані з нього. Програма зберігає поточні Транзакції та кожні N-секунд - Період запису у лог поточні Транзакції записуються у текстовому форматі y файл Transactions.log.
Наприклад, якщо Період запису у лог 60сек=1хв та Паркінг працює вже 5хв24сек, то у поточних транзакціях будуть тільки транзакції за останні 24сек, а у Transactions.log буде історія транзакцій з початку роботи Паркінгу до 5ти хвилин.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.