2. Другий етап виконання курсової роботи - kubatska/ski-weather-project GitHub Wiki

Table of Contents

Функціональні вимоги до системи

  • Система має надавати користувачу змогу обрати територію (державу), про гірськолижні курорти якої буде здійснюватися аналіз.
  • Користувач має мати змогу вказати дату у певному форматі.
  • Якщо користувач не вкаже потрібну йому дату, аналіз погодних умов буде здійснений на час, коли він(користувач) скористається програмою.
  • Користувач не потребує авторизації.
  • Система має правильно враховувати та аналізувати потрібні вхідні дані, а саме: запити користувача, списки гірськолижних курортів, збережені у форматі txt, та дані, про погодні умови, отримані у форматі JSON.
  • Якщо формат написання назви локації не відповідає необхідному для отримання погодних даних формату, програма має перетворювати його у відповідний вигляд.
  • Програма має повертати відповідь у доступному для розуміння вигляді.
  • Якщо у системі під час оброблення погодних даних виникає помилка програма повинна не зупиняти роботу, а переходити до наступних одиниць даних.
  • Програма має бути написана в такому вигляді, щоб легко можна було додавати додаткові функції.

Нефункціональні вимоги до системи

  • Цикл записування даних у файл JSON не повинен перевищувати 5 c.
  • Програма повинна повертати результат не більше, ніж за 7 с.
  • Програма має бути доступна 24 години на добу.
  • Система обчислень повинна здійснювати розрахунки з точністю до тисячних.
  • Програма повинна бути розроблена мовою програмування PYTHON відповідно до стильових правил коду PEP8.
  • Програма має працювати з даними про погодні умови прогнозовані в межах 5 діб.
  • Програма має охоплювати найбільш відомі гірськолижні курорти у світі. Списки гірськолижних курортів базуються на даних отриманих з Вікіпедії.
  • Точність даних про погодні прогнози має бути не менша за 60%.

Опис вхідних даних

Дані, які вводить користувач, мають бути типів str та int.

Дані про гірськолижні курорти програма буде отримувати з файлу “data_resorts.txt”.

  • Приклад структури бази даних про гірськолижні курорти:
Albania, Dardhë

Andorra, Grandvalira-Grau Roig

(Країна, локація)

Дані про погодні умови програма буде отримувати за допомогою API у форматі JSON. Приклад структури JSON файла, у якому зберігаються погодні дані, прогнозовані на території, вибраній користувачем:

{
"resorts":[{
"HighFens":{
"data":{
“resorts”:{[{
“Petzen”:{
data:{]}
Коли]користувач вказує територію, в межах якої він хоче вибрати місце для лещетарства, відбувається пошук всіх гірськолижних курортів даної країни у файлі “data_resorts.txt”. Ці дані в конкретних передбачених випадках перетворюються в певний формат і використовуються для формування URL посилання для отримання погодних даних вже на конкретно вибраних локаціях. Далі ці погодні дані формуються у вказану вище структуру і зберігаються у файлі JSON.

Опис можливостей модулів, пакунків модулів, бібліотек, які будуть використовуватися для роботи з даними у програмі, що проектується

Під час роботи над проектом я використовуватиму модуль JSON. Він дозволяє створювати json-об'єкти і працювати з ними. Я буду використовувати наступні методи з даного модуля:

  • json.load() - перетворює об'єкт JSON (який підтримує читання з файлу) до об'єкта Python.
  • json.loads() - перетворює JSON файл у відповідний йому python об'єкт
  • json.dump() - перетворює об'єкт до форматованого потоку JSON (який підтримує запис у файл).
  • json.dumps() - перетворює об'єкт у форматований рядок JSON.
Також я використовуватиму модуль urllib.request. Він визначає функції і класи , які допомагають у відкритті URL. І за допомогою функції request() відкриватиму потрібні для отримання даних URL-адреси.
⚠️ **GitHub.com Fallback** ⚠️