Nexia
Материал из Поле цифровой дидактики
| Описание | Сайт, отслеживающий популярные посты с платформы 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.
