Что такое Spica Engine? Альтернатива Firebase!?
Это моя первая статья на Хабре, и в этой статье, я хотел бы рассказать вам о такой технологии как Spica Engine. Что это такое и с чем его едят ?

Предыстория
Группа разработчиков занимающие аутсорс проектами обратила внимание, что практически все проекты разрабатываемые ими имеют схожую структуру. Тогда им в голову пришла идея, создать технологию с открытым исходным кодом, которая облегчит процесс создание проектов для себя и для других разработчиков в целом. Так в 2019 году и началась история Spica.
Что это такое?
Spica - это технология для создания бэкенда проекта и взаимодействия с ним на основе REST API с открытым исходным кодом. Благодаря этому, как начинающий так и опытный разработчик может сэкономить свое время и ресурсы.
Spica предоставляет пользователю такие модули как:
Моделирование данных
База данных реального времени
Облачные функции
Управление идентификацией и доступом
Хранилище (CDN)
Панель индикаторов
Стек технологий
Spica состоит из клиентской и серверное частей. Клиентская сторона основана на фреймворке Angular. Серверная же часть, на одном из фреймворков NodeJs, NestJs. Также используется документно-ориентированная база данных NoSQL, MongoDb. И все это упаковано в контейнер Docker.
Также у Spica есть свои библиотеки о которых поговорим в следующих статьях.
Немного о модулях
Моделирование данных
Вы можете легко моделировать данные используя панель Spica. Для примера я создал сущность под названием Article
и добавил к нему несколько полей (title
, description
, create_at
, thumbnail
). Как вы заметили, возможно добавлять типы данных для полей. Также, есть возможность добавлять правила доступа для сущностей и каждого поля по отдельности в целях безопастности.

Облачные функции
Используя язык программирования Javascpipt
мы можем писать облачные функции и при помощи REST API
триггеров взаимодействовать с ними.

Контроль версий
Как же без всеми любимого Git
. Используя эту фичу, мы можем контролировать процессы проектирования касающиеся наших сущностей и функции.

Здесь я описал несколько основных модулей, возможно в следующих статьях будет подробный разбор этих и других модулей.
Перейдем наконец-то к установке
Я буду устанавливать Spica Engine на свою локальную машину.
Для этого в первую очередь нам потребуется установить платформы NodeJs и менеджер пакетов npm устанавливающийся вместе с ней, а также Docker. (Вы можете найти в открытом доступе как это сделать)
Для того чтобы развернуть проект на Spica и для дальнейшего взаимодействия с ним, нам потребуется установить Spica CLI. (На момент написания статьи актуальная версия 0.9.21)
$ npm install @spica/cli -g
После успешного установления всех необходимых технологий мы можем развернуть проект введя в терминал следующую команду
$ spica project start <instance name>
Если все пройдет успешно, то в терминале в должны увидеть следующую запись

Здесь нам сообщается о том, что проект был развернут и запущен на порту 50125. (По умолчанию проект запускается на порту 4500, так как на моем компьютере он занят, для этого проекта выделился другой порт)

Теперь, в браузере перейдя по указанному адресу http://localhost:50125
, у вас откроется логин панель Spica. По умолчанию имя пользователя и пароль spica
Если вы смогли успешно залогиниться и попасть на стартовую страницу панели я вас поздравляю. Теперь вы можете наслаждаться разработкой своих проектов намного проще и быстрее.
Подробно вы можете изучить англоязычную документацию на официальном сайте Spica Engine.
Благодарю всех кто дочитал эту статью до конца. Если вам будет интересно продолжение и детальный разбор каждых модулей, прошу оставить свои положительные и отрицательные отзывы.
Желаю всем хорошего дня.