Теорія. useEffect і залежності; стани «завантаження/помилка/успіх»; бази про CORS; файлова персистентність замість БД.
Завдання.
-
Бекенд: Express читає data/courses.json і віддає GET /api/courses, GET /api/courses/:id.
-
Фронт: забирає каталог і деталі курсу через fetch, показує спінер/помилки.