Система управления предприятием нового поколения на Haskell с формальной верификацией
- Backend: Haskell (GHC 9.12.4)
- База данных: PostgreSQL (30+ таблиц)
- API: REST (Scotty, порт 8080)
- UI: QML Desktop + Web (Desktop + Mobile/PWA)
- Отчёты: PDF-Slave шаблоны (9 типов)
- Тесты: Hspec (32+ тестов)
- CI/CD: GitHub Actions
stack buildstack teststack exec surypusСервер запустится на http://localhost:8080
Откройте web/index.html в браузере
- CI runs all 164 tests (RBAC gating is not needed — all tests pass).
- For local development, you can skip RBAC tests if needed:
SURYPUS_SKIP_RBAC_TESTS=1 stack test
- Swagger tests are fully enabled (real OpenAPI 3.0.3 spec at /swagger.json).
- Set
SURYPUS_DEBUG=1to enable verbose debug output throughout the server and middleware. - Debug output is printed to stdout prefixed with
[SURYPUS-DEBUG]. - Currently covers: authentication checks, public endpoint RBAC decisions, login success/failure, server startup, health check failures.
- Example:
SURYPUS_DEBUG=1 stack exec surypus
Surypus/
├── src/
│ ├── Core/ # Бизнес-логика
│ ├── DB/ # Слой БД (Hasql)
│ ├── Domain/ # Доменные модели
│ ├── APIServer.hs # REST API
│ └── Surypus/ # Ядро системы
├── qml/ # QML Desktop UI
├── web/ # Web UI
│ ├── index.html # Desktop
│ └── mobile.html # Mobile/PWA
├── config/ # SQL схемы
├── templates/reports/ # PDF-Slave шаблоны
└── test/ # Тесты
POST /api/v1/auth/login- ВходPOST /api/v1/auth/logout- ВыходGET /api/v1/auth/me- Текущий пользователь
GET /api/v1/persons- СписокGET /api/v1/persons/:id- По IDPOST /api/v1/persons- СоздатьPUT /api/v1/persons/:id- ОбновитьDELETE /api/v1/persons/:id- Удалить
GET /api/v1/goods- СписокGET /api/v1/goods/:id- По IDPOST /api/v1/goods- Создать
GET /api/v1/bills- СписокGET /api/v1/bills/:id- По IDPOST /api/v1/bills- Создать
GET /api/v1/locations- СписокPOST /api/v1/locations- Создать
GET /api/v1/accounting/accounts- План счетовGET /api/v1/accounting/entries- Проводки
GET /api/v1/payroll/employees- СотрудникиGET /api/v1/payroll/salary/:id/:period- Расчёт
GET /api/v1/jobs- СписокGET /api/v1/jobs/pending- Ожидающие
GET /api/v1/reports- СписокGET /api/v1/reports/templates- ШаблоныPOST /api/v1/reports- Создать
Основные таблицы:
companies- Организацииpersons- Контрагентыgoods- Товары и услугиlocations- Складыstock- Остаткиbills- Документыbill_items- Строки документовaccounts- План счетовaccounting_entries- Проводкиemployees- Сотрудникиpayroll- Зарплатаjobs- Задачи
stack testТекущий статус: 32 теста проходят
docker build -t surypus:latest .
docker run -p 8080:8080 surypus:latestGPL-3
Surypus Team