Проект · Занятие 1 из 4День начинается с данных
SilverTests.ruapi · dashboard · старт проекта
День начинается с данных
Занятие 1 — Знакомство с проектом, выбор API, первый запрос
1О проекте
Вы создаёте консольное приложение, которое каждое утро собирает данные из интернета через API и показывает их в виде красивой сводки. Что именно показывать — решаете вы.
Проект рассчитан на 3 рабочих занятия + защита. На каждом занятии вы показываете учителю прогресс и получаете баллы за работу. Между занятиями — домашняя работа.
Программа должна уметь
Получать данные из нескольких API. Обрабатывать их (а не выводить сырой JSON). Показывать сводку в оформленном виде. Сохранять сводку в файл. Загружать ранее сохранённую сводку по дате.
2Источники данных
Все API ниже — бесплатные, без регистрации. Можно использовать любые или найти свои.
| Сервис |
Что даёт |
Адрес |
| Open-Meteo |
погода и прогноз |
api.open-meteo.com |
| ЦБ РФ |
курсы валют |
cbr-xml-daily.ru |
| Cat Facts |
факты о кошках |
catfact.ninja |
| JokeAPI |
анекдоты |
v2.jokeapi.dev |
| Wikipedia |
случайная статья |
ru.wikipedia.org |
| NASA APOD |
космос дня |
api.nasa.gov |
Бонус за свои находки. Если найдёте API, которого не было на уроке, и сможете объяснить его на защите, — это даёт дополнительные баллы. Ищите: free public api no key или github.com/public-apis/public-apis.
3Полный рубрикатор
Максимум — 16 баллов. Две части: работа на занятиях (6 баллов) и итоговый результат на защите (10 баллов).
Часть A — работа на занятиях (6 баллов)
На каждом из трёх рабочих занятий учитель проверяет прогресс. Не нужно быть гением — нужно работать.
Занятие 1 — Стартмакс. 2
2
Работающий запрос к API + план блоков дашборда
1
Есть попытка, но запрос не заработал или план не готов
Занятие 2 — Логика и файлымакс. 2
+1
Техника: меню работает, сводка сохраняется и загружается, программа не падаетВсе API в try/except, проверка status_code, кодировка utf-8
+1
Своя фишка: реализована минимум одна личная идея — и она работаетДневник, умное имя файла, шапка, утренний совет, умная интерпретация — или своя
0
Нет прогресса с прошлого раза
Занятие 3 — Красотамакс. 2
2
Оформление готово, тестирование пройдено, README есть
1
Есть прогресс, но не всё доделано
0
Нет прогресса с прошлого раза
Часть B — итоговый результат (10 баллов)
B1. Сбор данныхмакс. 2
0
Нет работающих запросов
B2. Новизнамакс. 2
2
Есть API не с урокаНайдено самостоятельно, объяснено на защите
0
Нет работающих запросов
B3. Интерфейсмакс. 2
2
Продуманный дизайнЦвет, рамки, маркеры, информация выровнена
1
Базовое оформление — заголовки, разделение на строки
0
Неструктурированный текст
B4. Файлы и менюмакс. 2
2
Полное меню + сохранение + загрузка истории
1
Меню неполное или нет работы с файлами
B5. Устойчивостьмакс. 2
2
0 баговНет интернета, неверный ввод, пустой ответ — всё обработано
0
3+ багов или программа падает
Перевод в оценку
Баллы
Оценка
Что это значит
15–16
7
всё на высоте, есть свои находки
13–14
6
отличный уровень, мелкие недоработки
11–12
5
хороший крепкий проект
9–10
4
база собрана, не хватает доработки
6–8
3
часть работы сделана
3–5
2
мало работы, нужно подтянуть
0–2
1
проект не сделан
4Задание на сегодня
Что делаем на уроке (80 мин)
- Прочитать описание проекта и рубрикатор (10 мин)
- Выбрать блоки для своего дашборда — записать список (5 мин)
- Скачать стартовый шаблон
starter.py, открыть в редакторе (3 мин)
- Подключить первый API:
requests.get(), получить данные, вывести одно поле (25 мин)
- Подключить второй API, начать третий (25 мин)
- Кто быстрее — поискать своё API, которого не было на уроке (10 мин)
- Показать учителю результат (2 мин)
Что показать учителю в конце урока (на 2 балла)
- Программа запускается и делает хотя бы один успешный запрос к API
- Данные выводятся на экран (пусть некрасиво — главное, что пришли)
- Есть записанный план: какие блоки и какие API вы хотите использовать
Домашняя работа к занятию 2
- Подключить все выбранные API (минимум 2, лучше 3)
- Сделать меню с командами: обновить, выход
- Поискать своё API, которого не было на уроке