Ну так то движок это всего лишь система управления данными.
Кому-то удобно видеть их в виде таблицы и управлять с помощью navicat
Кому-то удобно представлять себе цепочку инфоблоков и платить битриксу деньги
Кто-то делает обертку под гуглдокс
Но что касается большой галлереи - самое тупое, что может быть связано с картинками - это загружать их на сервер через браузер на специальной страничке, которая прикрепляет картинку к какой-нибудь новости там, чтобы потом их копировать, ресайзить и накладывать ватермарк, да еще и хранить каждую картинку в базе.
Формально для теневой работы проекта нужна страница которая позволяет закинуть картинку по урлу, файлом, архивом каким-нибудь или текстовым файлом (списком урлов) - с крышей достаточно. Кто не умеет - может выделить мышкой и перетянуть. Картинки попадают в папку загруженных, при отображении делаются кеши нужного размера с ватермарками.
Ты просто создаешь папку с оригиналами.
Просто пишешь функцию которая при обращении к картинке проносит ее через семь кругов ада, создавая кеш и водяной знак, потом проверяешь есть ли картинка по хешу.
Система управления (движок) - кому ты собрался упрощать работу?
Хранить данные?
Картинки имеют месторасположение и уникальное название в пределах этого расположения, что контроллируется операционкой.
К этим двум параметрам можешь привязать любые блоки с данными. Название там, описание, что угодно. Для этого картинку не нужно "загружать с компьютера" через кнопку "загрузить с компьютера" - ты их льешь на фтп куда положено и все.
А дальше любой язык в зависимости от степени упрощения и полученных ништяков.
Простой способ в реализации - xls файл какой-нибудь, где две колонки будут отвечать за имя файла и его расположение в ОС-ке, а остальные поля будут параметрами картинки.
Минусы xls - большой xls файл долго читать
Минусы csv - его неудобно открывать в экселе, а опенофис постоянно лагает при попытке что-нибудь скопировать и вообще тупое животное
Минусы xml - без программиста правильно не составить
Минусы json - некоторые его боятся, потому что он настолько прост, что его способны понять только программисты
yaml - новее json-а, но опять же без мозгов не составить
делать админку управления картинками - дорого и нахер нужно, разве что потешить самомнение
Так что наиболее четкий вариант - хранить инфу в своей базе, которой управлять через navicat, а выгружать и загружать небольшими файлами, которые хранятся в папке каждого юзера с историей когда загрузил.
Это будет проще сделать чтобы протестировать идею, чем писать фронтенд и долбаться тем что какая-то кнопка не работает, потом подрубать ангуляры, реакты и тонуть в этом всем.