Git Product home page Git Product logo

romajs's Introduction

Build Status Docker Build Status

RomaJS is a web app for creating and editing ODD documents to customize and generate schemata for the Text Encoding Initiative.

This web app is written in React/Redux and is designed to be easily compiled and deployed as a static site. Some key transformations are handled online via the API provide by OxGarage, a TEI maintained online service. TEI data comes from the TEI Vault.

How to deploy

Download the latest build from the release page. Serve the static site from a simple server. You will need to set up a rewrite to index.html to make sure URL routes will work. For example in Apache 2:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.html [L,QSA]

You can also deploy it via Docker.

How to develop

Make sure node.js is installed then:

$ npm install --legacy-peer-deps

Important notice to new developers / maintainers

RomaJS was largely developed between 2017-2018 using technology available at the time. While we have little concerns about the longevity of the compiled tool, over time there will be issues with using outdated libraries when developing new features or fixing bugs. We will try to fix ostensibly broken dependencies, but otherwise will stick to the versions that worked when this tool was developed.

In particular, adding or fixing HTML components can be tricky: we used an early version of the Material Components Web library (v 0.43.0). The closest documentation is currently available here (Wayback machine link).

Test

$ npm test

Serve locally for development

$ npm start

Build static assets

$ npm run build

Change URL to OxGarage service and TEI static data (TEI Vault)

Edit src/utils/urls.js and rebuild. Alternatively, these variables can also be overridden from the Docker configuration.

romajs's People

Contributors

raffazizzi avatar peterstadler avatar lb42 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.