Skip to content

Moivvas/Fast_image

Repository files navigation

Fast_image

Опис проєкту

Це REST API для обміну та управління фотографіями. Реалізовано на FastAPI, цей застосунок дозволяє користувачам завантажувати фотографії, коментувати їх, ставити рейтинг та використовувати ряд інших функціональностей.

Технічні деталі

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

Використовується JWT токени для аутентифікації користувачів. Реалізовано три ролі: звичайний користувач, модератор та адміністратор. Адміністратор має найвищі права та завжди є першим користувачем в системі.

Робота зі світлинами

  • Завантаження фотографій з описом (POST).
  • Видалення фотографій (DELETE).
  • Редагування опису фотографій (PUT).
  • Отримання фотографії за унікальним посиланням (GET).
  • Додавання до 5 тегів під фотографію, теги унікальні для всього застосунку.

Робота з посиланнями

  • Створення посилань на трансформовані зображення для перегляду фотографії в форматі URL та QR-code (POST).

Коментування

  • Додавання коментарів під кожною фотографією (POST).
  • Редагування свого коментарю, але не видалення (PUT).
  • Видалення коментарів адміністраторами та модераторами.

Додатковий функціонал

  • Маршрут для профілю користувача з унікальним юзернеймом.
  • Редагування інформації профілю користувача.
  • Адміністратори можуть блокувати користувачів.
  • Механізм виходу користувача з застосунку через logout.
  • Рейтинг для фотографій від 1 до 5 зірок.

Пошук та фільтрація

  • Пошук фотографій за ключовим словом або тегом.
  • Фільтрація результатів за рейтингом або датою додавання.

Технічні деталі

Технології

  • Фреймворк: FastAPI.
  • База даних: PostgreSQL з використанням SQLAlchemy ORM.
  • Аутентифікація: JWT токени.
  • Зберігання фотографій: Cloudinary.
  • Генерація QR-code: бібліотека qrcode.
  • Документація: Swagger.

Тести та деплоймент

  • Застосунок покритий модульними тестами.
  • Деплой застосунку виконано за допомогою Koyeb.

Інструкція з встановлення та використання

  1. Клонувати репозиторій: git clone https://github.com/Moivvas/Fast_image.git
  2. Зайти в папку проекту: cd fast_image
  3. Встановити залежності: poetry install
  4. Перейти у выртуальне середовище: poetry shell
  5. Запустити застосунок: uvicorn main:app --reload

Swagger Документація

Повна документація API доступна за посиланням /docs після запуску застосунку.

About

Team project in Python Web course GoIT

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •