Наше хозяйство - LamronNu/i GitHub Wiki

Диаграма связей сущностей

Ссылки на доки по другим API и технологиям

Наши сервисы (API), с описаниями и примерами

Репозиторий кода GIT - Github: https://github.com/e-government-ua/i.git

Репозиторий артефактов Maven - Nexus

Система непрерывной интеграции (CI) - Jenkins

Локальная установка всех проектов для разработки

ПОРТАЛЫ:


Тестовый-альфа(ветка test):

  • test.igov.org.ua - главный портал с полным каталогом для гражданина (фронт: /i/central-js, бэк: /i/wf-central)
  • test.region.igov.org.ua - региональный каталог для гражданина (только фронт: /i/portal-php)
  • test.region.igov.org.ua/admin - региональный дашбоард/админка для чиновника (только фронт: /i/dashboard-js)
  • test.region.igov.org.ua/admin-activiti - региональная админка для админов, активити-эксплорер (фронт и бэк: /i/wf-region)

Тестовый-бета(ветка test-version):

Боевой-релиз(ветка master):

  • igov.org.ua - главный портал с полным каталогом для гражданина (фронт: /i/central-js, бэк: /i/wf-central)
  • region.igov.org.ua - региональный каталог для гражданина (только фронт: /i/portal-php)
  • region.igov.org.ua/admin - региональный дашбоард/админка для чиновника (только фронт: /i/dashboard-js)
  • region.igov.org.ua/admin-activiti - региональная админка для админов, активити-эксплорер (фронт и бэк: /i/wf-region)

ВАЖНО!!!:


Тестовые учетки(бэкдур), для простого входа: BankID для порталов:

  • логин: +380102030405
  • пароль: value
  • SMS: 123456

Для админки/дашборда (в т.ч. activiti):

  • логин: kermit
  • пароль: kermit

Для авторизации сервисов:

  • логин: activiti-master
  • пароль: UjhtJnEvf!

Логи на FTP (по Tomcat и NodeJS):

* Тест-альфа-централ: `test.igov.org.ua`
протокол: `sftp`
логин: `sftpuser`
пароль: `zaqxswcde` * Тест-альфа-регион: `test.region.igov.org.ua`
протокол: `sftp`
логин: `sftpuser`
пароль: `zaqxswcde` * Тест-бета централ и регион: `dniprorada.igov.org.ua`
протокол: `sftp`
логин: `sftpuser`
пароль: `zaqxswcde`

Авторизация BankID:

**([документация](https://github.com/e-government-ua/i/wiki/Project,-%D0%B0%D0%B2%D1%82%D0%BE%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D1%96%D1%8F-%D0%B7%D0%B0-BankID))** * полигон: bankid.privatbank.ua * продакшин: bankid.org.ua * https://bankid.privatbank.ua/DataAccessService/das/authorize?response_type=code&client_id=dniprorada&redirect_uri=https://bankid.privatbank.ua/DataAccessService/acceptCode

Хранилища/сервера:

* DataBase SQL: `PostgreSQL 9` * DataBase NoSQL Key-Value Storage(temp): `Redis 2.8.19 (00000000/0) 64 bit` * DataBase NoSQL Key-Value Storage(static): `MongoDB 2.6.9 (db version)+GridFS` * Cервера на Amazon(10 шт.) AWS CentOS: * -`2 CPU` * -`4Gb RAM` * -`20Gb-40Gb HDD`

Контроль систем:

* Мониторинг: `Zabbix` * Логирование: `Logslash`+`Kibana`+`Redis`+`log4j` * Управление серверами: `Puppet` * Развертывание: `Vagrant`

Модули:

* Авторизация-ядро: /i/auth - ядро авторизации * Авторизация: /i/auth-custom (iGov-UA Auth Custom) - производный от ядра авторизационный модуль.

Приложения:

- Бэкэнд: `Java 7` (точные версии компонентов: Spring+Hibernate+Liquibase и т.д. в корневом POM-е проекта) - Бэкэнд апликэйшин-сервер: `Tomcat 8.0.20` - Фронтэнд: `NodeJS 0.12.0` (точные версии компонентов: AngularJS, Bootstrap и т.д. в конфигах grunt-ов central-js и dashboard-js)

Бэкэнд - /i/wf-central + /i/wf-region (общая часть вынесена в ядро: /i/wf-base)

*

Основан на java, spring, [activiti](http://activiti.org/)

*

Сборка проекта: [Maven](http://maven.apache.org/index.html)

Фронтэнд центрального портала гражданина - /i/central-js

*

Основан на [NodeJS](https://nodejs.org)

Фронтэнд регионального дашборда чиновника - /i/dashboard-js

*

Основан на [NodeJS](https://nodejs.org)

*

Структура проекта

* сгенерирована на основе https://github.com/DaftMonk/generator-angular-fullstack для http://yeoman.io/

Стек технологий:

-Разработка: angularJS, express, bootstrap, css3, html5 -
-Тесты: karma, protractor -

Сборка проекта:

http://gruntjs.com -

Почему такой стек:

-быстро на начальном этапе, параллельная разработка, легко переключится с java на javascript, легкий процес сборки, струкутра проекта изначально разбита на профайлы - разработка, тесты, production, переменные окружения вынесены в настроечные файлы. -

Структура проекта (клиентская часть):

-client - "браузерная часть" с html страницами, контроллерами, изображениями, компонентами. generator-angular-fullstack создает структуру, которая делит проект не по view, controller'ам, директивам и т.д., а по конкретным компонентам и страницам. client/app - содержит директории с такими страницами. -
-Добавление новой страницы легко сделать используя команду генератора yo angular-fullstack:route [имя страницы] (см. https://github.com/DaftMonk/generator-angular-fullstack#route). Аналогично можно добавлять другие страницы/элементы проекта. -
-app/components содержит компоненты, которая можно переиспользовать на разных страницах. Эти компоненты легко добавлять "руками". -

Структура проекта (серверная часть):

-server - "серверная часть". Разбита на 5 директорий: api, auth, components, config, views. -
-api содержит enpoints, обращения к которым производит клиентская часть. Другими словами - сервисный слой приложения. -
-auth - часть, которая отвечает за авторизацию пользователя. Вынесена отдельно от api по примеру https://github.com/DaftMonk/fullstack-demo. -
-components - аналогично клиентской части, - то, что можно переиспользовать. -
-config - настройки, которые состоят из настройки сервера - express.js; примера настроечного файла - local.env.sample.js, переименовав копированием который в local.env.js, можно изменять различные параметры серверной части в процессе разработки (! важно не комитить local.env.js в репозиторий); и директории environment, которая объединяет в себе все натройки и должна использоваться в дургих частях серверного слоя для обращения к настройкам. -
-Добавление новых endpoint'ов можно производить с помощью команды yo angular-fullstack:endpoint [имя endpoint'а] (см. https://github.com/DaftMonk/generator-angular-fullstack#endpoint)
⚠️ **GitHub.com Fallback** ⚠️