Git Product home page Git Product logo

tailor's Introduction

Tailor

GitHub package version Codacy Badge Known Vulnerabilities GitHub license js semistandard style Open Source Love

Adaptive course authoring platform.

๐Ÿ“˜ Dependencies

  • Node.js (>= 8.8.0)
  • npm (>= 5.4.2)
  • PostgreSQL (>= 9.6)

โ˜• Installation

Prerequisites

Setup

  • Run npm install in the repo directory
  • Create database in PostgreSQL
  • App is configured via environment variables contained in a file named .env. Use the .env.example file as a template: cp .env.example .env and enter configuration details.
  • You can init the db (for development) by setting ENABLE_DEFAULT_SCHEMA=1 and running npm run db:seed.
  • You can create admin user by running npm run add:admin <email> <password>
  • App branding is configured via values set in a file named .brand-rc.json. Use the .brand-rc.json.example file as a template: cp .brand-rc.json.example .brand-rc.json and enter configuration details.

๐Ÿš€ Launch

Development

  • Server: npm run dev:server
  • Client (webpack dev server): npm run dev:client

Production

  • Bundle client by issuing npm run build
  • npm run start

๐Ÿ“š Content repository structure

Repository stucture can be altered through .activities-rc.json file. Use the .activities-rc.json.example file as a template: cp .activities-rc.json.example .activities-rc.json and enter configuration details. It's also possible to use .activities-rc.js, by using module.exports to export the structure. By default, the file is searched for in the root of the project. If a custom location or a custom name is needed, it can be provided through the activitiesConfig param to any of the build scripts (without the extension), for example: npm run dev:client -- --activitiesConfig=server/.custom-activities-rc

Content repository structures are defined using following properties:

SCHEMAS

An array of Schema objects.

Schema

  • id String - Schema identifier.
  • name String - Schema display name.
  • meta Array<Metadata> - An array of objects defining repository metadata.
  • structure Array<ActivityConfig> - An array of objects which define schema structure.
  • contentContainers Array<ContentContainer> - Array of content container configs

ActivityConfig - Schema structure elements

Configuration for schema structure nodes (activities). Contains the following properties:

  • level Number - The hierarchy level for that particular activity type.
  • type String - Const for marking activity type.
  • subLevels Array<String> - An array of sub-types.
  • label String - Display label.
  • color String - Display color in hexadecimal notation.
  • contentContainers Array<String> - Array of content container types that define which content containers can be added.
  • hasAssessments Boolean - Activity allows adding assessments activities to it.
  • hasExams Boolean - Activity allows adding exam activities to it.
  • exams Object - Configuration for activity exams.
  • relationships Array<Relationship> - Defines what relationships this activity has to other activities.
  • meta Array<Metadata> - An array of objects defining activity metadata.

Relationship

Defines the structure of an activity realtionship field.

  • type String - Defines the name of the relationship. The relationship will be published under this value.
  • label String - Display label.
  • placeholder String - Display label for select picker.
  • multiple Boolean - Defines if the relationship can have multiple associations chosen. True by default.
  • searchable Boolean - Defines if the list of activities can be searched. True by default.
  • allowEmpty Boolean - Defines if the member list can be empty. True by default.
  • allowCircularLinks Boolean - Defines if member of a relationship instance can set the owner of that instance as a member of its own instance of that relationship. Example, activity X sets activity Y as its prerequisite. If allowCircualLinks is set to true then activity Y can set activity X as its prerequisite. False by default.
  • allowInsideLineage Boolean - Defines if an ancestor or a descendant can be a member of the relationship. False by default.

Metadata

Defines the structure of an activity metadata field.

  • key String - Unique key for the field.
  • type String - Type of the input component used on the client.
  • label String - Display label.
  • placeholder String - Input component placeholder.
  • validate MetadataValidator - Validator object.
  • defaultValue * - Default field value.

MetadataValidator

Defines validation rules on an activity metadata field.

  • rules Object - Contains the following properties:
    • max Number - Maximum character count.
    • required Boolean - Defines if the field is required.

CONTENT_CONTAINERS

An array of ContentContainer objects.

ContentContainer

Configuration for content containers. Contains the following properties:

  • type String - Const for marking container type.
  • label String - Content container label.
  • multiple Boolean - Defines if there can be multiple instances of the ContentContainer inside one activity. False by default.
  • types Array<String> - An array of possible teaching element types that can exist inside ContentContainer. If not specified all types of elements are allowed.
  • displayHeading Boolean - Defines if a heading is displayed on top of the ContentContainer. False by default.
  • layout Boolean - Defines if elements inside container can be placed two in a row. True by default.

PREVIEW_URL

A string template that will be interpolated on the client using two route params, repositoryId and activityId, into a preview URL for each activiy. Example: https://my.url.com/#/repository/{repositoryId}/activity/{activityId}/preview

tailor's People

Contributors

2pacalypse- avatar abasic avatar ibebic avatar kjuej avatar kronicker avatar mbareta avatar snyk-bot avatar underscope avatar vkaracic avatar vladimyr avatar

Watchers

 avatar

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.