Skip to content

Repository files navigation

CleanMyData — MVP веб-приложения для анонимизации фотографий

Описание

CleanMyData — веб-приложение, позволяющее пользователям загружать изображения и автоматически скрывать личную информацию с помощью ML-детекции объектов (лица людей, номера автомобилей). Анонимизация осуществляется путём блюра или пикселизации найденных областей.

Цели проекта

  1. Возможность регистрации и авторизации пользователей.
  2. Загрузка фотографий и автоматическая анонимизация.
  3. Отображение результата и скачивание изменённого файла.
  4. Хранение истории обработанных изображений в личном кабинете.
  5. Использование готовой YOLO-модели для детекции лиц и автомобильных номеров.

Структура: ключевые пользовательские сценарии

1. Регистрация нового пользователя

Актор: гость Шаги:

  1. Пользователь переходит на страницу Sign Up.
  2. Заполняет форму: email, пароль.
  3. Нажимает кнопку «Создать аккаунт».
  4. Получает уведомление об успешной регистрации.
  5. Автоматически перенаправляется на страницу входа.

Результат: создан новый пользователь.


2. Авторизация пользователя

Актор: зарегистрированный пользователь Шаги:

  1. Пользователь вводит email и пароль.
  2. Отправляет форму.
  3. Бэкенд генерирует JWT-токен.
  4. Токен сохраняется в localStorage (или cookies).
  5. Пользователь попадает в личный кабинет.

Результат: пользователь авторизован.


3. Загрузка фото и анонимизация

Актор: авторизованный пользователь Шаги:

  1. Пользователь открывает экран «Обработать фото».
  2. Нажимает кнопку «Загрузить изображение».
  3. Выбирает локальный файл.
  4. Сервер запускает детекцию YOLO и применяет блюр/пикселизацию.
  5. Пользователь видит результат (до/после).
  6. Может скачать результат.

Результат: изображение анонимизировано.


4. Просмотр истории обработок

Актор: авторизованный пользователь Шаги:

  1. Пользователь открывает «Историю».
  2. Видит список обработанных изображений (миниатюры, дата).
  3. Может открыть конкретную запись и скачать результат повторно.

Результат: доступен журнал обработок.


5. Выход из аккаунта

Шаги:

  1. Пользователь нажимает «Выйти».
  2. JWT токен удаляется.
  3. Пользователь возвращается на страницу входа.

Основные экраны (UI-структура)

1. Login Page

  • Поля: email, пароль
  • Кнопка: «Войти»
  • Ссылка: «Создать аккаунт»

2. Signup Page

  • Поля: email, пароль
  • Кнопка: «Зарегистрироваться»

3. Dashboard (Личный кабинет)

  • Блок «Загрузить фото»
  • Кнопка перехода в «Историю обработок»

4. Upload Page

  • Кнопка «Выбрать файл»
  • Показывается загруженное изображение
  • Кнопка «Запустить анонимизацию»
  • После обработки: показ результата и кнопка «Скачать»

5. History Page

  • Список миниатюр обработанных изображений
  • Отображение даты
  • По клику — просмотр результата

Технологический стек проекта:

Фронтенд

  • React + Vite
  • React Router
  • Fetch/axios для API
  • Простая UI-верстка (никаких дизайн-инструментов)

Бэкенд

  • FastAPI
  • JWT авторизация
  • Работа с файлами
  • YOLO (готовая модель, например YOLOv8n или YOLOv5s)

База данных

  • SQLite (для локального MVP)

  • SQLAlchemy

  • Таблицы:

    • users
    • processed_images

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages