⚽️ Soccer Hub — это веб-приложение, разработанное на фреймворке FastAPI, которое предоставляет API для управления информацией о футбольных командах, матчах и аналитикой.
Проект ориентирован на поддержку адаптивного дизайна, что позволяет пользователям удобно получать доступ к данным с различных устройств.
Приложение также включает в себя систему аналитики для отслеживания посещаемости и действий пользователей.
Структура проекта
Используемые технологии
1️⃣ FastAPI: Фреймворк для создания высокопроизводительных API.
2️⃣ Pydantic: Для валидации и сериализации данных.
3️⃣ SQLAlchemy: ORM для работы с базой данных.
4️⃣ Alembic: Миграции базы данных.
5️⃣ Docker: Для контейнеризации приложения (опционально).
4️⃣ Репозиторий на GitHub
⌨️ Теги: #сайт #аналитика #fastapi #web #api #pydantic #sqlalchemy #alembic #docker #фреймворк #analytics #maximdupley #quadd4rv1n7 #2024
Проект ориентирован на поддержку адаптивного дизайна, что позволяет пользователям удобно получать доступ к данным с различных устройств.
Приложение также включает в себя систему аналитики для отслеживания посещаемости и действий пользователей.
Структура проекта
soccer_hub/
├── app/
│ ├── __init__.py # Инициализация FastAPI приложения
│ ├── main.py # Запуск приложения
│ ├── core/
│ │ ├── config.py # Конфигурации приложения
│ │ └── security.py # Функции безопасности
│ │
│ ├── db/
│ │ ├── database.py # Подключение к базе данных
│ │ ├── models.py # Модели данных
│ │ └── schemas.py # Схемы Pydantic для валидации
│ │
│ ├── routes/ # API маршруты
│ │ ├── __init__.py # Инициализация маршрутов
│ │ ├── analytics.py # Маршруты аналитики
│ │ ├── players.py # Маршруты игроков
│ │ ├── teams.py # Маршруты команд
│ │ └── matches.py # Маршруты матчей
│ │
│ ├── services/ # Логика бизнес-процессов
│ │ ├── team_service.py # Сервис для работы с командами
│ │ └── match_service.py # Сервис для работы с матчами
│ │
│ ├── templates/ # HTML шаблоны
│ │ ├── base.html # Основной шаблон
│ │ ├── index.html # Главная страница
│ │ ├── analytics.html # Страница аналитики
│ │ ├── matches.html # Страница матчей
│ │ ├── players.html # Страница игроков
│ │ ├── team.html # Подробнее о команде
│ │ └── teams.html # Страница команд
│ │
│ ├── static/ # Статические файлы (CSS, JS, изображения)
│ │ ├── css/ # Файлы стилей
│ │ ├── js/ # Файлы скриптов
│ │ └── images/ # Фотографии
│ │
│ └── analytics/ # Аналитика посещаемости и действий
│
├── tests/ # Тесты для приложения
│ ├── test_routes.py # Тесты для маршрутов
│ └── test_services.py # Тесты для сервисов
│
├── add_data.py # Добавление данных в БД
├── create_db.py # Создание базы данных
│
├── .env # Переменные окружения
├── .gitignore # Файлы и папки, которые нужно игнорировать в Git
├── alembic/ # Миграции базы данных (если используем Alembic)
│ └── env.py # Конфигурация миграций
│
├── docker-compose.yml # Docker для контейнеризации (опционально)
├── README.md # Описание репозитория проекта
├── requirements.txt # Зависимости проекта
└── run.py # Точка входа для запуска проекта
Используемые технологии
⌨️ Теги: #сайт #аналитика #fastapi #web #api #pydantic #sqlalchemy #alembic #docker #фреймворк #analytics #maximdupley #quadd4rv1n7 #2024
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Pet-проекты и данные для Data-Engineer
⚡️ При изучении дата-инжиниринга часто возникает вопрос: «откуда брать данные?»
1️⃣ Брать реальные данные откуда‑то.
2️⃣ Генерить данные самостоятельно.
Первый вариант хорош, но сложнее, потому что к такого вида данным сложнее получить доступ и я бы этот вариант использовал, если вы хотите на этих данных строить какой‑то продукт или аналитику. Если обобщить, то сделать данные «полезными».
Второй вариант как по мне более предпочтителен, потому что вы сможете проверить больше инструментов и возможностей в своих pet‑проектах и не особо задумываться над качеством и источником данных. Но также стоит упомянуть, что можно генерировать довольно правдоподобные данные, которые можно будет использовать для аналитики или визуализаций.
APILayer APIs
Faker
🖥 Оптимизировал пример создания ненастоящего пользователя:
⌨️ Теги: #analytics #faker #api #generate #user #profile #данные #генерация #quadd4rv1n7 #maximdupley #2024
Первый вариант хорош, но сложнее, потому что к такого вида данным сложнее получить доступ и я бы этот вариант использовал, если вы хотите на этих данных строить какой‑то продукт или аналитику. Если обобщить, то сделать данные «полезными».
Второй вариант как по мне более предпочтителен, потому что вы сможете проверить больше инструментов и возможностей в своих pet‑проектах и не особо задумываться над качеством и источником данных. Но также стоит упомянуть, что можно генерировать довольно правдоподобные данные, которые можно будет использовать для аналитики или визуализаций.
APILayer APIs
Faker
from faker import Faker
from datetime import timedelta
import random
fake = Faker(locale='ru_RU')
def generate_fake_user(min_age=18, max_age=70, registration_years=5):
"""
Генерирует фейковый профиль пользователя.
:param min_age: минимальный возраст пользователя
:param max_age: максимальный возраст пользователя
:param registration_years: максимальное количество лет назад для даты регистрации
:return: словарь с данными пользователя
"""
# Генерация даты рождения и даты регистрации
birthday = fake.date_of_birth(minimum_age=min_age, maximum_age=max_age)
registration_at = fake.date_time_between(start_date=f"-{registration_years}y", end_date="now")
# Генерация фейкового профиля пользователя
fake_user = {
'first_name': fake.first_name(),
'last_name': fake.last_name(),
'middle_name': fake.middle_name(),
'phone_number': fake.phone_number(),
'email': fake.email(),
# Генерация адресных данных с логической структурой
'address': {
'country': fake.country(),
'country_code': fake.country_code(),
'region': fake.region(),
'city': fake.city(),
'street_address': fake.street_address(),
'postcode': fake.postcode(),
},
# Дополнительные сведения о пользователе
'occupation': fake.job(),
'company': fake.company(),
'work_phone': fake.phone_number(),
'marital_status': random.choice(['Single', 'Married', 'Divorced', 'Widowed']),
'website': fake.url(),
# Даты
'registration_at': registration_at,
'birthday': birthday,
# Профиль в социальных сетях и банковские реквизиты (при необходимости)
'social_profile': fake.url(),
'credit_card': {
'number': fake.credit_card_number(),
'provider': fake.credit_card_provider(),
'expiration_date': fake.credit_card_expire(),
}
}
return fake_user
# Пример использования
fake_user = generate_fake_user()
print(fake_user)
⌨️ Теги: #analytics #faker #api #generate #user #profile #данные #генерация #quadd4rv1n7 #maximdupley #2024
Please open Telegram to view this post
VIEW IN TELEGRAM
Хабр
Pet-проекты и данные для Data-Engineer
При изучении дата-инжиниринга часто возникает вопрос: « откуда брать данные? » И тут я вижу два варианта: Брать реальные данные откуда‑то. Генерить данные самостоятельно. Первый вариант хорош,...
👍2