Документация , но на самом деле это отчёт по практике, я подумал почему бы и нет. Не будет же она просто так валяться.
- https:
https
сертификаты находятся в '/frontend/certs'
- Регистрация, идентификация, авторизация через jwt-токен:
- Меню редактора:
- Цвет
- Размер
Радужный прямоугольник выделяющий область для обрезки фотографии переливается радугой.
- Сжатие
ЖПЕГ. (реализация .ppeg, а также .ppega будет добавлена в следующих версиях)
- Приколы
дрейн генг романчик-манчик сёма, влада карасёва, макс всем привет! Заставляет задуматься о бренности. Клепаем крипипасты.
Изображение после редактирования:
АХЫФДАФЫЗЛАЛЗЩЙЦЛЩАЗЙЦ, пока делал ридми нашел багфичу с конфликтом пост-запросов компресса и приколов..
- Поддержка слоёв
можно нажать на любой из слоёв и вы сбросите картинку до него
ещё одно изображение после редактирования, но уже со всеми пруфами
- Профиль пользователя:
Сайт пока что не адаптивен... Нам правда жаль, мы это исправим.
- Vue 3 + Vite
- Vuetify
- Vuex
- Куча плагинов, по типу: js-cookie, axios, bcryptjs (помоему уже не используется), file-saver, ...
- Компоненты: @vuepic/vue-datepicker и mdi-шки, хотелось конечно использовать fa-шки, но как-то руки не дошли.
- Кривой дизайн
- Огромная куча запутанного кода, который не подлежит рефакторингу.
- Его остаётся лишь сжечь и просить богов о милости.
- немного адаптивности не помешает?
- FastAPI + uvicorn (роутинг и запуск)
- psycopg2 + pydantic (дб, бд и модели)
- PyJWT + bcrypt (шифровка, проверка и генерация жвт) И куча всякой фигни. Надо бы реализовать всё на sqlalchemy, но крайний срок вчера сказал потом. Кстати там к фастапи сваггер прилагается, так что пируем за чужой счет.
Есть класс PostgreConn, который принимает даннные для захода в бдшку и там всё колдует.
- /user/signup:
- Регистрация. Нужно куча данных, которые инсертаются PC.insert_user. Пароль хешируется сразу. Возвращает жвтшку.
- /user/check:
- Возвращает данные о юзере, данные которого мы кинули ему на растерзание. Если чето вернулось проверяет пароли у pass_hash.py.
- /user/login:
- Проверяет юзера предыдущим пунктом, если проходит проверку возвращает жвтшку на основе user.login + "/" + user.email.
- Прикол в том, что в форме можно вводить либо почту либо логин, поэтому колхозим так.
- /user/profile:
- Декодирует токен и селектает пользователя по декодированным данным (либо логин либо пошта)
- /user/logout:
- Продолжаем колхозить, дамы и господа, поэтому возвращаем здесь пустой набор необходимых данных.
-
@app.get("/", dependencies=[Depends(jwtBearer())]) async def pong(): return { 'id': 0, 'name': 'John', 'surname': 'Doe' }
- Flask (роутинг и запуск)
- PIL (Цвета, обрезание, сжатие, наложение дрейнгенг эффекта и элегантного)
- cv2 (Кривое выгрызание фона)
- base64 (декодирование и кодирование картинок оттуда сюда)
- re, io, os, numpy, ... (понятно) И куча всякой фигни. Не успел реализовать сохранение картинок у пользователя в бдшке, чтобы можно было работы в профиле смотреть.
Ну и ладно
Есть класс Editor, который переправляет запросы для каждого из модулей (цвет, размер, сжатие и приколы) и после обработки возвращает данные.
- /upload:
- Собстна, загрузка фотографии в Едитор.
- Сначала декодирует картинку из base64 в PIL image.
- Потом проходит по каждому модулю, там определяется че надо ченить или пофик скипаем.
- Возвращается снова base64 из пил картинки.
- /compress_size:
- Компрессирует и возвращает картинку и размер полученной картинки.
- Помоему я забил на размер картинки и считаю её на фронте.
- /pre_prikol:
- Прикалываемся, но не полностью.
- Здесь мы рандомно прикалываемся из дрейн эффектов и выкидываем картинку и файл.
- Файлом мы потом в аплоад заходим и гарантированно тот эффект который нам нужен применяем. Всё это приправленно криворукостью, неоптимизированным кодом и тихим ужасом, а иногда даже и громким.
- Было бы странно увидеть здесь, что-то кроме PostgreSQL.
- В нём две таблицы с юзерами и категориями юзеров.
- Переменные окружения в database.env
- Остальное в докер композе.
- Кстати я перевёл постгру на алпину, но еще не запускал. Надеюсь оно будет нормально и не захватит заложников.
- Пока что не знаю, что написать.
НИКАКИХ БОЛЬШЕ ПУНКТОВ!!!
1. Открываете терминал в рут папке проекта!
1. Пишите docker-compose up
1. Радуетесь!!!
**круто
ставте пять звезд лайк и подписывайте на меня свои завещания. всем пока!