Skip to content

Rayness/anime-tracker-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Anime Tracker

Современное веб-приложение для отслеживания просмотренных аниме с системой оценок и управлением сезонами.

🎯 Основные возможности

  • Иерархическая структура: IP → Сезоны/Фильмы/OVA/Спешлы
  • Гибкая система оценок: Индивидуальная оценка каждого сезона (1-10)
  • Визуализация оценок: Звездочки (5 звезд = 10 баллов, половина звезды = 1 балл)
  • Автоматический расчет: Средняя оценка IP на основе просмотренных элементов
  • Редактирование: Изменение названий и превью аниме
  • Импорт из Shikimori: Автоматическая загрузка списка аниме
  • Публичные профили: Делитесь своим списком с другими пользователями
  • Множественные виды: Сетка, список, таблица
  • Экспорт данных: JSON, CSV, TXT
  • Личные аккаунты: Регистрация и авторизация пользователей
  • Профиль: Управление именем, email, паролем, биографией

📋 Требования

  • Python 3.8+
  • pip (менеджер пакетов Python)

🚀 Установка

1. Клонируйте репозиторий или скачайте файлы

cd anime-tracker-app

2. Установите зависимости

cd backend
pip install -r requirements.txt

3. Запустите приложение

python app.py

Приложение будет доступно по адресу: http://localhost:5000

📖 Использование

Первый запуск

  1. Откройте браузер и перейдите на http://localhost:5000
  2. Нажмите "Зарегистрироваться"
  3. Введите имя пользователя, email и пароль
  4. После регистрации вы автоматически войдете в систему

Добавление аниме

  1. Нажмите кнопку "+ Добавить аниме"
  2. Введите название аниме
  3. Опционально: добавьте URL превью (изображение)
  4. Нажмите "Добавить"

Управление сезонами

  1. Кликните на карточку аниме
  2. В открывшемся модальном окне нажмите "+ Добавить сезон/фильм"
  3. Введите название и выберите тип (Сезон, Фильм, OVA, Спешл, Ремейк)
  4. Отметьте просмотренные элементы чекбоксом
  5. Поставьте оценку (1-10) просмотренным элементам

Виды отображения

  • Сетка - карточки с превью
  • Список - компактный список
  • Таблица - табличное представление

Экспорт данных

  1. Нажмите кнопку "Экспорт ▼"
  2. Выберите формат:
    • JSON - структурированные данные
    • CSV - для Excel/Google Sheets
    • TXT - текстовый формат

Управление профилем

  1. Нажмите на своё имя в правом верхнем углу
  2. Заполните биографию (опционально)
  3. Укажите имя пользователя на Shikimori (опционально)
  4. Включите "Сделать профиль публичным" чтобы другие могли видеть ваш список
  5. Измените имя, email или пароль при необходимости
  6. Нажмите "Сохранить"

Редактирование аниме

  1. Откройте карточку аниме
  2. Нажмите "Редактировать"
  3. Измените название или URL превью
  4. Нажмите "Сохранить"

Импорт из Shikimori

  1. Перейдите на вкладку "Импорт"
  2. Введите ваше имя пользователя на Shikimori
  3. Нажмите "Импортировать"
  4. Дождитесь завершения импорта

Примечание: Импортируются только аниме со статусами "просмотрено", "смотрю", "отложено" или "брошено". Дубликаты автоматически пропускаются.

Публичные профили

  1. Перейдите на вкладку "Публичные профили"
  2. Просмотрите список пользователей с публичными профилями
  3. Кликните на профиль, чтобы увидеть их список аниме

🎨 Особенности интерфейса

  • Адаптивный дизайн: работает на всех устройствах
  • Темная тема: современный киберпанк-стиль
  • Анимации: плавные переходы и эффекты
  • Горячие клавиши:
    • Ctrl + N - добавить новое аниме
    • Esc - закрыть модальное окно

🔧 Структура проекта

anime-tracker-app/
├── backend/
│   ├── app.py              # Основное приложение Flask
│   ├── requirements.txt    # Зависимости Python
│   └── anime_tracker.db    # База данных SQLite (создается автоматически)
│
└── frontend/
    ├── templates/
    │   └── index.html      # Главная страница
    └── static/
        ├── css/
        │   └── style.css   # Стили
        └── js/
            ├── auth.js     # Аутентификация
            ├── api.js      # API взаимодействие
            └── app.js      # Основная логика

💾 База данных

Приложение использует SQLite для хранения данных. База создается автоматически при первом запуске.

Модели данных:

  • User: пользователи (id, username, email, password_hash)
  • Anime: аниме IP (id, user_id, title, preview_url)
  • Season: сезоны/фильмы (id, anime_id, name, type, watched, rating)

🔐 Безопасность

  • Пароли хешируются с помощью Werkzeug
  • Сессии управляются через Flask-Login
  • Каждый пользователь видит только свои данные

🚀 Развертывание на продакшн

Для продакшн-развертывания:

  1. Измените SECRET_KEY в app.py на случайную строку
  2. Используйте продакшн-сервер (например, Gunicorn)
  3. Настройте HTTPS
  4. Используйте PostgreSQL вместо SQLite для лучшей производительности

Пример с Gunicorn:

pip install gunicorn
gunicorn -w 4 -b 0.0.0.0:5000 backend.app:app

📝 API Endpoints

Аутентификация

  • POST /api/register - регистрация
  • POST /api/login - вход
  • POST /api/logout - выход
  • GET /api/user - текущий пользователь
  • PUT /api/user/update - обновление профиля

Аниме

  • GET /api/anime - список аниме
  • GET /api/anime/<id> - детали аниме
  • POST /api/anime - добавить аниме
  • PUT /api/anime/<id> - обновить аниме (редактирование)
  • DELETE /api/anime/<id> - удалить аниме

Сезоны

  • POST /api/anime/<id>/season - добавить сезон
  • PUT /api/season/<id> - обновить сезон
  • DELETE /api/season/<id> - удалить сезон

Публичные профили

  • GET /api/public/users - список публичных профилей
  • GET /api/public/user/<username> - публичный профиль пользователя

Импорт

  • POST /api/shikimori/import - импорт из Shikimori

Экспорт

  • GET /api/export/json - экспорт в JSON
  • GET /api/export/csv - экспорт в CSV
  • GET /api/export/txt - экспорт в TXT

🎯 Roadmap

  • OAuth авторизация (Google) - в разработке
  • Импорт из MAL/AniList - Shikimori реализован
  • Публичные профили - реализовано
  • Редактирование аниме - реализовано
  • Визуализация оценок звездами - реализовано
  • Поиск аниме через API
  • Статистика и графики
  • Теги и категории
  • Рекомендации

📄 Лицензия

MIT License - свободное использование

👨‍💻 Автор

Создано для персонального использования и развития сообщества аниме-фанатов.


Приятного использования! 📺✨

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published