mammonbank / webapp

Modern web-based application which simulates real banking operations
MIT License
6 stars 0 forks source link

Mammonbank

Тестовое приложение, которое пытается симулировать кредитно-депозитный портфель банка.

Немного о структуре

Есть api сервер, который является главным звеном, отвечающим за хранение, обработку и выдачу данных. Формат выдачи данных - JSON. Есть система ролей (защищенные endpoint-ы).

Есть приложение для клиентов банка, а также для сотрудников банка. Эти два веб-сайта используют общий api-сервер. REST API, все дела.

Все это размещается на одном digitalocean-вском vps-е с 512 МБ памяти. Там, собственно, и крутятся эти три приложения (спасибо pm2). Каждое на своем порту. В качестве reverse-proxy используется nginx.

Немного о технологиях

В качестве backend-а используется NodeJs. Подходит ли он для банковских приложений - спорный вопрос, однако имеем что имеем. База данных - postgresql. Просто так. Клиент - ох, тут по-разному. Сайт для клиентов сделан на бэме. Почему? Просто так. Ну а сайт для работников банка был сделан в лучших традициях "чик-чик и в продакшн". Вина немного искупляется использованием сборщика и робкими потугами юзать ES6 фичи.

Немного о всяком

Из общей рутины можно выделить реализацию двухфакторной аутентификации для клиентов и json web token authentication для api. Соль, транзакции - все, как обычно.

Немного выводов

Как всегда в студенческих проектах, больше половины функционала была сделана в спешке перед показом, поэтому изобилует багами. Но это все лирика. Никогда больше не использовать коллбэк-функции (по-крайней мере, там, где можно и без них), потому как сервер превратился в жутковатую смесь коллбэков и промисов, а это не комильфо. Промисы и генераторы - наше все. Далее. Использовать ES6. Пора уже. Начать использовать webpack.

p.s. если вдруг что,

login - jacoren

password - waterchip

p.p.s. для авторизации на клиентском сайте, надо иметь приложение Google Authenticator на телефоне.