Freelance Tracker — это полнофункциональное веб-приложение, разработанное для решения ключевых проблем фрилансеров и самозанятых специалистов: разрозненный учёт проектов, сложность контроля доходов и отсутствие единой платформы для управления бизнес-процессами.
Сервис предоставляет пользователю возможность создавать и отслеживать проекты, вести финансовый учёт, анализировать эффективность и управлять подписками. Проект реализован с упором на безопасность, масштабируемость и удобство использования.
Целевая аудитория: Фрилансеры, самозанятые, владельцы малого бизнеса, IT-специалисты, управляющие несколькими проектами одновременно.
Стек технологий:
Backend: Python 3, Flask, Flask-Login, SQLAlchemy, Flask-Admin, Flask-Migrate
Frontend: Jinja2, Bootstrap 5, JavaScript (виджет ЮKassa)
База данных: PostgreSQL (продакшен) / SQLite (разработка)
Платежи: ЮKassa (бывший Yandex.Kassa)
Инфраструктура: Gunicorn, Docker (подразумевается), планировщик задач APScheduler
Дополнительно: Экспорт в Excel (openpyxl), SEO-оптимизация (динамические sitemap/robots.txt), почтовые уведомления (Yandex SMTP)
В рамках проекта была разработана платформа, закрывающая все этапы работы фрилансера — от регистрации до получения прибыли.
Основные функциональные блоки и реализованные решения:
Безопасная аутентификация и управление пользователями:
Реализована регистрация с подтверждением email (6-значный код, TTL 15 минут).
Внедрена система защиты от брутфорса (блокировка на 15 минут после 5 неудачных попыток).
Пароли хэшируются с использованием pbkdf2:sha256.
Разграничение прав: обычный пользователь / администратор (с отдельной защищённой панелью).
Гибкая тарифная система и приём платежей:
Разработана модель монетизации: базовый бесплатный тариф (до 3 проектов за всё время) и платные подписки (месяц, полгода, год).
Интегрирован платёжный агрегатор ЮKassa через виджет (embedded) для приёма карт.
Реализована поддержка вебхуков для автоматической обработки статусов платежей.
Внедрено автопродление подписок и система напоминаний об истечении срока.
Управление проектами и финансами:
Полный CRUD для проектов с отслеживанием статуса ("Активный", "Завершен", "Отменен").
Автоматический расчёт итоговой стоимости проекта (бюджет или почасовая ставка × часы).
Визуализация метрик на дашборде: количество проектов, общий и потенциальный доход.
Экспорт данных в формат Excel (xlsx) с форматированием и выделением просроченных задач.
Соответствие законодательству РФ (152-ФЗ):
Реализован сбор согласий на обработку персональных данных (отдельные сущности для истории согласий).
Добавлена возможность отзыва согласия с автоматическим закрытием доступа.
Ведётся аудит действий администраторов (логирование действий с ПД).
Реализована "корзина" для удалённых аккаунтов с блокировкой повторного использования бесплатного периода.
Администрирование и мониторинг:
Административная панель на базе Flask-Admin для управления пользователями, проектами и платежами.
Собственная админ-панель со статистикой (количество пользователей, проектов, динамика по месяцам).
SEO и Маркетинг:
Динамическая генерация robots.txt и sitemap.xml для улучшения индексации в поисковых системах.
Наличие публичной оферты и политики конфиденциальности.
Планировщик задач (Фоновые процессы):
Настроен APScheduler для автоматического обновления статусов подписок, автопродления и отправки уведомлений.
В результате был создан готовый к использованию коммерческий продукт, который решает реальные задачи фрилансеров.
Ключевые достижения:
Полноценный бизнес-цикл: Разработана система, покрывающая путь клиента от регистрации до оплаты и использования сервиса.
Высокий уровень безопасности: Обеспечена защита данных пользователей, реализована политика конфиденциальности в соответствии с законодательством РФ.
Масштабируемость: Архитектура на Flask и SQLAlchemy позволяет легко расширять функционал и подключать новые модули.
Автоматизация рутины: Планировщик и вебхуки автоматизируют процессы управления подписками, снижая нагрузку на администратора.
Готовность к Production: Использование Gunicorn, настройка под PostgreSQL и наличие entrypoint-скриптов делают проект готовым к деплою на сервер.
Итоговый результат: Я получил опыт создания полного цикла веб-приложения: от проектирования базы данных и бэкенда до интеграции платежей и SEO-оптимизации. Проект демонстрирует навыки построения надёжных, безопасных и монетизируемых веб-решений.