Miscellany is a collaborative world building tool tailored for tabletop RPG players and game masters.
The app revolves around the concept of Entities
. This are for example:
- Characters
- Items
- Locations
Each entity is split between two tables:
- The
entity
table which contains some generic information available to all entities (name, id) - A table for the specific data of the entity.
Most entities can have n-to-n relations to other entities.
For example, there are Relations
that link two entities together, as well as Attributes
which contains n-to-1 custom data of an entity.
Assets can be compiled by following the Laravel Documentation
The following will produce assets for development
npm run dev
The following will produce assets for production
npm run prod
The following rules apply when developing the application.
All improvement, feature or bug must be related to a ticket on github. Each commit must contain on the first row the name and ticket id of the issue related to the change.
Code must follow PSR-4 recommendations.
All migrations should have a working down()
function. Exceptions are allowed for migrations that alter lots of content.
Development should be done in the develop
branch, with substaintial new features done in a separate branch.
Tagging is only done on the master branch.
Once a feature is ready and tested, the admin will merge it into the master branch. There is no auto-deploy to the servers.
To work on translations, execute the following command to clean you translations and re-import them.
php artisan translations:reset
php artisan translations:import
In the database, change your user's is_translator
to true
._Navigate to /translations
to start working on your translations. Add your new language to app/config/laravel-translation-manager.php
if needed.
When you are finished, export your changes.
php artisan translations:export