Coder Social home page Coder Social logo

ntsdk / larpwriter-toolkit-nims Goto Github PK

View Code? Open in Web Editor NEW
9.0 4.0 3.0 12.41 MB

Larpwriter Toolkit NIMS is a larpwriter software for rich backstory LARPs. Also this repo contains derivative projects: Measurelook - scientific measures storing and visualizing, Vampire the Masquerade character list and other.

Home Page: http://trechkalov.com/index-en.html

License: Apache License 2.0

HTML 2.18% JavaScript 96.62% CSS 1.20%
larp larp-writing character-sheet experiment-results framework

larpwriter-toolkit-nims's Introduction

What is the project?

This repo contains sources of larpwriter toolkit NIMS project (frontend, core and server).

Dev install

Installing monorepo manager Lerna:

npm i -g lerna

Installing project dev dependencies:

npm i npm run bootstrap

Dev run

Running development standalone version

  1. npm run watch:standalone
  2. Open http://localhost:8080/nims.html in browser.

Running development server version

  1. npm run watch:server

It will create dist folder in packages/nims-app with frontend build.

  1. Open http://localhost:3001/

Default login/password: admin/zxpoYR65

  1. Default base is empty. You need to load some base. You can download base example from standalone NIMS build or take it from nims-resources.

Package description

nims-app

NIMS webclient interface - all pages and page control. Also DBMS tests are here too.

nims-app-core

Common utilities for webclient interface. Common UI, l10n, utils and autosave in browser local storage.

nims-dbms

NIMS data engine APIs. Includes all APIs both general and server specific.

nims-dbms-core

NIMS data engine core. Generic part and utilities.

nims-resources

Data resources - localization files and NIMS base examples.

nims-server

NIMS express server.

wiki

Old outdated package.

Description (Outdated)

This repo contains sources of larpwriter toolkit NIMS project (frontend, core, BUT NOT server) and derivative projects:

  1. Larpwriter toolkit NIMS - larpwriter software for writing rich backstory LARPs. README RU, README EN, Geektimes post RU
  2. Vampire The Masquerade character sheet - interactive web page with charlist. YouTube Demo RU
  3. Measurelook - scientific measures data storing and visualization. README RU, README EN, habrahabr post RU
  4. Deus Ex Shop - Shop system for Deus Ex Machina LARP with was in 2017 near Moscow. YouTube Demo RU, YouTube Demo EN
  5. Watches - information system for city game wathes in 2017 year. YouTube Demo RU

How to build projects RU

Contributors EN

larpwriter-toolkit-nims's People

Contributors

dependabot[bot] avatar ntsdk avatar trechkalov avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

larpwriter-toolkit-nims's Issues

Ошибка при удалении группы из вкладки Фильтр персонажей

Стек
removeGroup TypeError: Cannot read property 'nextName' of undefined
at groupProfile.js:330
at Object.exports.refresh (permissionInformer.js:154)
at groupProfile.js:328
at localDBMS.js:140
at LocalDBMS. (logger.js:288)
at groupsAPI.js:166
at Object. (precondition.js:28)
at Object. (libsCore.min.js:2908)
at Object.precondition (libsCore.min.js:2908)
at LocalDBMS.removeGroup (groupsAPI.js:163)

Идеи для развития НИМСа - Stage 0

В этом тикете я буду собирать идеи для развития НИМСа.
На это меня вдохновил процесс принятия изменений в стандарт JavaScript (русская версия).

Для начала попробуем в три стадии, а дальше как пойдет.
0 - идея
1 - спецификация
2 - реализация

При переименовании элемента единственного выбора можно создать новые варианты выбора

Шаги:

  1. Создайте в досье поле единственный выбор и заполните его
  2. Попробуйте переименовать одно из значений на "раз,два,три"

Результат: старое поле заменилось на три новых
Ожидание: скорее всего запрет на название выбора с запятыми

О проблеме - указывать элементы единственного выбора через запятые это было осознанное решение.
Плюсы:

  • на мой взгляд просто и удобно

Минусы:

  • нужна специальная обработка запятых в переименовании и возможно других местах

Особенности

  • предполагается, что выбор это односложные значения. Если пользователи захотят использовать развернутые предложения, то почти наверняка там будут запятые и все сломается.

Рекомендуемое исправление - запрет на ввод запятых при переименовании. Возможно в будущем от ввода запятых нужно отказаться в пользу списка тегов.

Модуль отношений в базе можно испортить некоторыми именами персонажей

Шаги:

  1. Загрузите базу пример и переименуйте Арагорна в starter, а потом в ender.

Результат: в отчете по отношениям исчезает первая колонка с именами персонажей.
Ожидание: колонка не исчезает.

О проблеме - модель хранение данных об отношении использует имя персонажа как ключ. Таким образом можно испортить корректные данные назвав персонажа именами 'origin', 'starterTextReady', 'enderTextReady', 'essence', 'starter', 'ender'. Исправляться это должно сменой схемы данных.

При использовании \ в имени персонажа ломается досье

Шаги воспроизведения:

  1. Создаем структуру досье, персонажа, заполняем его досье
  2. Переименовываем персонажа - добавляем в имя \

Результат: досье пусто
Ожидание: досье на месте

О проблеме - имя персонажа без экранирования ставится в атрибут дом, а потом используется в css селекторе [profile-name="${name}"]. Ограничений на символы в имени нет, так что надо думать как сохранять информацию в атрибуте безопасно или на что-то менять.

Досье не открывается, если имя персонажа содержит кавычки

Ошибка
Failed to execute 'querySelector' on 'Document': '.profile-editor2-tab.character-type [profile-name=""""] .select-button' is not a valid selector.

Стек
logger.js:307 getProfileStructure DOMException: Failed to execute 'querySelector' on 'Document': '.profile-editor2-tab.character-type [profile-name=""""] .select-button' is not a valid selector.
at queryEl (http://trechkalov.com/nims/online/js/scripts.min.js:1701:21)
at selectProfile (http://trechkalov.com/nims/online/js/pages.min.js:7398:20)
at callback (http://trechkalov.com/nims/online/js/pages.min.js:7378:13)
at Object.innerExports.initProfileStructure (http://trechkalov.com/nims/online/js/pages.min.js:6146:27)
at http://trechkalov.com/nims/online/js/pages.min.js:7382:31
at http://trechkalov.com/nims/online/js/common.min.js:4254:17
at Object. (http://trechkalov.com/nims/online/js/commonCore.min.js:215:17)
at Object. (http://trechkalov.com/nims/online/js/libsCore.min.js:2908:1818)
at Object.precondition (http://trechkalov.com/nims/online/js/libsCore.min.js:2908:982)
at LocalDBMS.getProfileStructure (http://trechkalov.com/nims/online/js/common.min.js:4253:16)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.