Це 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.
- Клонувати репозиторій:
git clone https://github.com/Moivvas/Fast_image.git
- Зайти в папку проекту:
cd fast_image
- Встановити залежності:
poetry install
- Перейти у выртуальне середовище:
poetry shell
- Запустити застосунок:
uvicorn main:app --reload
Повна документація API доступна за посиланням /docs
після запуску застосунку.