Nexia: различия между версиями
Материал из Поле цифровой дидактики
Новая страница: «{| class="wikitable" |- | Описание || Сайт, который отслеживает популярные посты с платформы Reddit. |- | Область знаний || Программирование на Python, Работа с API, Веб-технологии |- | Область использования (ISTE) || Digital Citizen |- | Возрастная категория || 18 |- | Близкие рецепту поня...» |
Нет описания правки |
||
| Строка 1: | Строка 1: | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
| Описание || Сайт, | | Описание || Сайт, отслеживающий популярные посты с платформы Reddit. | ||
|- | |- | ||
| Область знаний || [[Программирование на Python, Работа с API, Веб-технологии]] | | Область знаний || [[Программирование на Python, Работа с API, Веб-технологии]] | ||
|- | |- | ||
| Близкие рецепту понятия || Лента, популярное, новости | | Близкие рецепту понятия || Лента, популярное, новости | ||
| Строка 16: | Строка 12: | ||
<!-- Карточка проекта --> | <!-- Карточка проекта --> | ||
<div style="background-color: #ffffff; padding: 20px; border-radius: 12px; margin-bottom: 20px; box-shadow: 0 1px 3px rgba(0,0,0,0.1);"> | <div style="background-color: #ffffff; padding: 20px; border-radius: 12px; margin-bottom: 20px; box-shadow: 0 1px 3px rgba(0,0,0,0.1);"> | ||
<h2 style="color: #2c3e50; border-bottom: 2px solid # | <h2 style="color: #2c3e50; border-bottom: 2px solid #48db92; padding-bottom: 10px; margin-top: 0;"> Сайт по сбору популярных статей Reddit.</h2> | ||
<p><b>Автор:</b> Харламова Анна</p> | <p><b>Автор:</b> Харламова Анна</p> | ||
<p><b>Группа:</b> АДЭУ-221</p> | <p><b>Группа:</b> АДЭУ-221</p> | ||
| Строка 23: | Строка 19: | ||
</div> | </div> | ||
== Введение | <div style="background-color: #ffffff; padding: 20px; border-radius: 12px; margin-bottom: 20px; box-shadow: 0 1px 3px rgba(0,0,0,0.1);"> | ||
<h3 style="color: #2c3e50;">Введение</h3> | |||
🎯 Целью данной работы является разработка веб-приложения на основе FastAPI, предназначенного для автоматического сбора, обработки и предоставления пользователю популярных постов из Reddit и актуальных новостей с Hacker News. | 🎯 Целью данной работы является разработка веб-приложения на основе FastAPI, предназначенного для автоматического сбора, обработки и предоставления пользователю популярных постов из Reddit и актуальных новостей с Hacker News. | ||
Приложение должно обеспечивать удобный доступ к агрегированному контенту через API и веб-интерфейс. | Приложение должно обеспечивать удобный доступ к агрегированному контенту через API и веб-интерфейс. | ||
| Строка 29: | Строка 27: | ||
💡 Основная идея проекта — упростить доступ пользователей к актуальному и популярному контенту Reddit в удобном и структурированном виде. | 💡 Основная идея проекта — упростить доступ пользователей к актуальному и популярному контенту Reddit в удобном и структурированном виде. | ||
<div style="background-color: #ffffff; padding: 20px; border-radius: 12px; margin-bottom: 20px; box-shadow: 0 1px 3px rgba(0,0,0,0.1);"> | <div style="background-color: #ffffff; padding: 20px; border-radius: 12px; margin-bottom: 20px; box-shadow: 0 1px 3px rgba(0,0,0,0.1);"> | ||
<h3 style="color: #2c3e50;"> | <h3 style="color: #2c3e50;">Задачи проекта:</h3> | ||
<ul> | <ul> | ||
<li>Изучить работу внешних API (Reddit и Hacker News).</li> | <li>Изучить работу внешних API (Reddit и Hacker News).</li> | ||
| Строка 44: | Строка 41: | ||
</div> | </div> | ||
==🏗 Архитектура | <div style="background-color: #ffffff; padding: 20px; border-radius: 12px; margin-bottom: 20px; box-shadow: 0 1px 3px rgba(0,0,0,0.1);"> | ||
{{#mermaid: flowchart TB | <h3 style="color: #2c3e50;">🏗 Архитектура и блок-схема проекта</h3> | ||
A[ | <p>Архитектура построена по принципу клиент-серверной модели и включает несколько уровней:</p> | ||
B --> C( | |||
C --> D( | <div style="display: flex; flex-direction: column; align-items: center; margin-top: 20px;"> | ||
D --> E( | <div style="position: relative; width: 360px;"> | ||
<div style="background-color: #48db92; color: black; text-align: left; padding: 10px 0; border-radius: 8px; margin: 5px 0;">🌐 Уровень представления (Frontend) | |||
<ul> | |||
<li>Реализован через статические файлы (static).</li> | |||
<li>Отображает данные пользователю.</li> | |||
<li>Отправляет HTTP-запросы к серверу.</li> | |||
</ul> | |||
</div> | |||
<div style="width: 2px; height: 15px; background-color: #48db92; margin: 0 auto;"></div> | |||
<div style="background-color: #48db92; color: black; text-align: left; padding: 10px 0; border-radius: 8px; margin: 5px 0;">🚀 Backend (API-сервер) | |||
<ul> | |||
<li>Обработка HTTP-запросов.</li> | |||
<li>Маршрутизация (/api/reddit, /api/news, /api/comments).</li> | |||
<li>Возврат данных в формате JSON.</li> | |||
<li>Логирование.</li> | |||
</ul> | |||
</div> | |||
<div style="width: 2px; height: 15px; background-color: #48db92; margin: 0 auto;"></div> | |||
<div style="background-color: #48db92; color: black; text-align: left; padding: 10px 0; border-radius: 8px; margin: 5px 0;">🔌 Слой бизнес-логики | |||
<ul> | |||
<li>RedditClient.</li> | |||
<li>NewsClient.</li> | |||
</ul> | |||
</div> | |||
<div style="width: 2px; height: 15px; background-color: #48db92; margin: 0 auto;"></div> | |||
<div style="background-color: #48db92; color: black; text-align: left; padding: 10px 0; border-radius: 8px; margin: 5px 0;">🌍 Внешние API | |||
<ul> | |||
<li>Reddit API.</li> | |||
<li>Hacker News API.</li> | |||
</ul> | |||
</div> | |||
<div style="width: 2px; height: 15px; background-color: #48db92; margin: 0 auto;"></div> | |||
<div style="background-color: #48db92; color: black; text-align: left; padding: 10px 0; border-radius: 8px; margin: 5px 0;">⚙️ Инфраструктурный слой | |||
<ul> | |||
<li>Переменные окружения (.env).</li> | |||
<li>Логирование (logging).</li> | |||
<li>HTTP-клиент (requests).</li> | |||
<li>ASGI-сервер Uvicorn.</li> | |||
</ul> | |||
</div> | |||
</div> | |||
</div> | |||
</div> | |||
<div style="background-color: #ffffff; padding: 20px; border-radius: 12px; margin-bottom: 20px; box-shadow: 0 1px 3px rgba(0,0,0,0.1);"> | |||
<h3 style="color: #2c3e50;">⚙️ Логика работы приложения</h3> | |||
{{#mermaid: | |||
flowchart TB | |||
A[Пользователь обращается к API (например, /api/reddit)] --> B(Сервер на FastAPI принимает запрос) | |||
B --> C(В зависимости от маршрута создаётся RedditClient или NewsClient) | |||
C --> D(Клиент отправляет HTTP-запрос к внешнему API) | |||
D --> E(Полученные данные:проверяются, обрабатываются и приводятся к нужному формату) | |||
E --> F[Результат возвращается пользователю в формате JSON] | |||
F --> G[Все действия логируются] | |||
}} | }} | ||
Версия от 01:40, 27 марта 2026
| Описание | Сайт, отслеживающий популярные посты с платформы Reddit. |
| Область знаний | Программирование на Python, Работа с API, Веб-технологии |
| Близкие рецепту понятия | Лента, популярное, новости |
| Среды и средства для приготовления рецепта | Python, Visual studio code |
Сайт по сбору популярных статей Reddit.
Автор: Харламова Анна
Группа: АДЭУ-221
Дисциплина: Работа с API социальных сетей и визуализация данных
Статус проекта: Выполнен
Введение
🎯 Целью данной работы является разработка веб-приложения на основе FastAPI, предназначенного для автоматического сбора, обработки и предоставления пользователю популярных постов из Reddit и актуальных новостей с Hacker News. Приложение должно обеспечивать удобный доступ к агрегированному контенту через API и веб-интерфейс.
💡 Основная идея проекта — упростить доступ пользователей к актуальному и популярному контенту Reddit в удобном и структурированном виде.
Задачи проекта:
- Изучить работу внешних API (Reddit и Hacker News).
- Реализовать клиент для получения постов и комментариев с Reddit.
- Реализовать клиент для получения новостей с Hacker News.
- Создать API-эндпоинты для: получения постов, получения новостей, получения комментариев.
- Организовать обработку и структурирование данных (JSON-формат).
- Реализовать логирование работы приложения.
- Обеспечить обработку ошибок при работе с внешними сервисами.
- Подключить статические файлы для отображения пользовательского интерфейса.
🏗 Архитектура и блок-схема проекта
Архитектура построена по принципу клиент-серверной модели и включает несколько уровней:
🌐 Уровень представления (Frontend)
- Реализован через статические файлы (static).
- Отображает данные пользователю.
- Отправляет HTTP-запросы к серверу.
🚀 Backend (API-сервер)
- Обработка HTTP-запросов.
- Маршрутизация (/api/reddit, /api/news, /api/comments).
- Возврат данных в формате JSON.
- Логирование.
🔌 Слой бизнес-логики
- RedditClient.
- NewsClient.
🌍 Внешние API
- Reddit API.
- Hacker News API.
⚙️ Инфраструктурный слой
- Переменные окружения (.env).
- Логирование (logging).
- HTTP-клиент (requests).
- ASGI-сервер Uvicorn.
