CleanMyData — веб-приложение, позволяющее пользователям загружать изображения и автоматически скрывать личную информацию с помощью ML-детекции объектов (лица людей, номера автомобилей). Анонимизация осуществляется путём блюра или пикселизации найденных областей.
- Возможность регистрации и авторизации пользователей.
- Загрузка фотографий и автоматическая анонимизация.
- Отображение результата и скачивание изменённого файла.
- Хранение истории обработанных изображений в личном кабинете.
- Использование готовой YOLO-модели для детекции лиц и автомобильных номеров.
Актор: гость Шаги:
- Пользователь переходит на страницу Sign Up.
- Заполняет форму: email, пароль.
- Нажимает кнопку «Создать аккаунт».
- Получает уведомление об успешной регистрации.
- Автоматически перенаправляется на страницу входа.
Результат: создан новый пользователь.
Актор: зарегистрированный пользователь Шаги:
- Пользователь вводит email и пароль.
- Отправляет форму.
- Бэкенд генерирует JWT-токен.
- Токен сохраняется в localStorage (или cookies).
- Пользователь попадает в личный кабинет.
Результат: пользователь авторизован.
Актор: авторизованный пользователь Шаги:
- Пользователь открывает экран «Обработать фото».
- Нажимает кнопку «Загрузить изображение».
- Выбирает локальный файл.
- Сервер запускает детекцию YOLO и применяет блюр/пикселизацию.
- Пользователь видит результат (до/после).
- Может скачать результат.
Результат: изображение анонимизировано.
Актор: авторизованный пользователь Шаги:
- Пользователь открывает «Историю».
- Видит список обработанных изображений (миниатюры, дата).
- Может открыть конкретную запись и скачать результат повторно.
Результат: доступен журнал обработок.
Шаги:
- Пользователь нажимает «Выйти».
- JWT токен удаляется.
- Пользователь возвращается на страницу входа.
- Поля: email, пароль
- Кнопка: «Войти»
- Ссылка: «Создать аккаунт»
- Поля: email, пароль
- Кнопка: «Зарегистрироваться»
- Блок «Загрузить фото»
- Кнопка перехода в «Историю обработок»
- Кнопка «Выбрать файл»
- Показывается загруженное изображение
- Кнопка «Запустить анонимизацию»
- После обработки: показ результата и кнопка «Скачать»
- Список миниатюр обработанных изображений
- Отображение даты
- По клику — просмотр результата
- React + Vite
- React Router
- Fetch/axios для API
- Простая UI-верстка (никаких дизайн-инструментов)
- FastAPI
- JWT авторизация
- Работа с файлами
- YOLO (готовая модель, например YOLOv8n или YOLOv5s)
-
SQLite (для локального MVP)
-
SQLAlchemy
-
Таблицы:
- users
- processed_images