Giter VIP home page Giter VIP logo

door43.org's Introduction

master | Build Status

develop | Build Status

door43.org

This is the source for door43.org website. Note that it does not include the files that show up at door43.org/u/ as those are created by the tX conversion app.

Project Overview

The http://door43.org site provides a front end view to all of the content in the Door43 ecosystem. The source content on http://git.door43.org is converted into HTML and uploaded to the correct location on http://door43.org.

DCS to Door43 Conversion

Whenever a source repository is updated, it notifies (via webhook) the conversion app to convert the content and publish it online. A repository like https://git.door43.org/Door43-Catalog/en_ulb will become a published web page at https://door43.org/u/Door43-Catalog/en_ulb/.

The pages outside of the /u/ location on the site are generated by Jekyll and provide localized navigation, Door43 project information, and curated content recommendations for each language.

Project Management

We use the Zenhub plugin to manage this project with Boards and Burndown charts. We do one week Sprints following Scrum methodology. If you don't have the (free) Zenhub plugin you can still see the issue list and the milestones that we have created.

If you would like to submit an issue, please do so here. Be sure to follow the template that is provided on a new issue. You can also see the New Door43 Roadmap to get an idea of our overall priorities and potential timeline to implementation.

Developer Quickstart Information

Easiest way to develop is using Docker:

docker compose up

will start a docker container that is mapped to port 8080 (http://localhost:8080) or whatever you set DOOR43_PORT to before starting docker compose

Door43.org Jekyll Site

Installation

To setup a development environment for developing on this site, you need to run the following commands (after cloning this repo):

cd door43.org
bundle install

This will install the Ruby gems specified in Gemfile. You may be asked for the sudo password to install to the system RubyGems on Linux. If you do not have the bundle executable, then you'll need to run sudo gem install bundle or sudo apt install ruby-bundler first. If you do not have /usr/lib/ruby/include/ruby.h on Linux, then you'll need to run sudo apt install ruby-dev first. If you cannot install nokogirl due to requiring zlib, then you'll need to run sudo apt install zlib1g-dev.

Updating dependencies

bundle update
Setup

If you need s3cmd, then install it from http://s3tools.org/download. It's as easy as sudo pip install s3cmd, yum install s3cmd or sudo apt-get install s3cmd for Linux.

If you need npm, use sudo apt install npm for Linux.

You will also need to ensure that you have a configuration file for s3cmd available as s3cfg-prod at the root of the repo. Both the assets and s3cfg-prod locations are excluded from git in .gitignore.

Publishing Setup

There are two branches that are built and deployed to S3 by Travis CI:

  • develop
  • master

The develop branch may be seen online at http://dev-door43.org.s3-website-us-west-2.amazonaws.com.

The master branch is available at https://door43.org.

Adding language pages

To create a new language landing page, add a directory for it under _data (like data/en), with the *.yml files localized for the new language. Also add a directory for it under pages (like pages/en) and add an index.md file to it. Update the links in the *.md files to include the new language code in the paths.

Pre Production Testing

You may run make test, or make build, or make serve to test and review your changes locally. Once the cibuild.sh script passes successfully locally, deploy to test by following setup instructions in s3_test_push.sh and then run the script s3_test_push.sh. Your changes will then be uploaded to http://test-door43.org.s3-website-us-west-2.amazonaws.com

Develop Testing

After Pre-production Testing you commit your changes and make a pull request against develop branch. After it has been merged Travis will automatically deploy to dev site for further testing before deploying to production. Your changes will then be uploaded to http://dev-door43.org.s3-website-us-west-2.amazonaws.com

Push to Production

If Travis CI has built and deployed the develop branch successfully, you create a pull request to merge it into the master branch. When this has been merged, Travis will automatically deploy yours changes to production. Your changes should be visible within 5 minutes on https://door43.org

Syncing Assets

Assets (binary things like images) are housed on cdn.door43.org/assets for this site. This assets folder is a Resilio Sync folder shared among the developers (ask if you need access).

Note: The first time you will have to Link your Resilio Sync folder into _site/assets/. Then run s3cmd --configure to setup s3cmd. Next copy and rename the cfg file to s3cfg-prod in project folder (e.g. cp ~/.s3cfg s3cfg-prod )

Syncing

In order to synchronize the assets to the cdn S3 bucket you may now run make assets. This process will not remove assets from the /assets folder, only add or update existing files.

Running Unit Tests

Note: we do not run these tests directly from InteliJ or Pycharm environments. They are launched from the command-line and debugging is done within Chrome using it's JavaScript Debugger with it's 'Developer Tools'.

Adding Tests

  • tests are js files in ./test/spec
  • will also need to add new test spec files to ./test/SpecRunner.html

Running Tests Locally using Karma

  • to make sure we have dependencies do npm install
  • to run the tests do npm run-script test-phantom

*Note: if Karma tests fail, you can find help by looking at karma log file (karma.log).

Viewing Local Code Coverage

  • coverage reports are generated automatically when you run the previous step Running Tests Locally using Karma
  • coverage reports will be in coverage folder - open coverage/PhantomJS*/lcov-report/index.html in browser to view.

Debugging Tests Locally using Karma

Note: we do not run these tests directly from InteliJ or Pycharm environments. They are launched from the command-line and debugging is done within Chrome using it's JavaScript Debugger with it's 'Developer Tools'.

  • to make sure we have dependencies do npm install
  • to debug the tests do ./karma_start_debug.sh
  • in Chrome Browser open to http://localhost:9876/# and then click on Debug
  • then open Chrome's "Developer Tools" (on current Chrome click on the three vertical dots in upper right then select More Tools/Developer Tools), set breakpoints (click Sources tab, js files are under base/test/spec) and then do refresh.
  • when done debugging, do ./karma_stop.sh to stop karma running

Open source acknowledgements

door43.org's People

Contributors

bspidel avatar codemis avatar dependabot-preview[bot] avatar dependabot[bot] avatar ethantkoenig avatar jag3773 avatar phillip-hopper avatar photonomad0 avatar richmahn avatar robh123 avatar yakob-aleksandrovich avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

door43.org's Issues

Define Development Architecture

Story

As a developer I need to know the layout of the tX code architecture for Door43 so that I can contribute.

Notes

I see a few options, but maybe there are others too?

  1. Keep all our conversion code in https://github.com/unfoldingWord-dev/tX . This means a monolithic code base that may quickly become difficult to maintain and test.
  2. Split each converter out into its own Github repo and distribute them as Python Packages (pip).
    • This would mean that the main conversion Lambda function would include the respective packages in a requirements.txt file and conversion script would import them as 3rd party modules.
    • Travis CI can be setup to automatically deploy to the Python package index (see https://docs.travis-ci.com/user/deployment/pypi).
  3. Split each converter out into its own Github repo and deploy them to individual API endpoints.
    • We will want to do this eventually anyway, so that any dev can get endpoint/convert/obs2html (or something like that) and get their desired output.
    • Our main conversion Lambda function would then call these individual API endpoints to actually do the conversion work from a Gogs webhook notification.
    • Here again, Travis CI can be setup to automatically deploy to an AWS Lambda function (see https://docs.travis-ci.com/user/deployment/lambda). Alternately, we could still use apex to do these deployments.

Although option 2 is enticing, it does box us into Python unnecessarily (Lambda supports other types of code too). Perhaps going with option 3 would allow the most amount of flexibility going forward.

Move Open Christian Library

Story

As an user I want to be able to access the resources listed https://door43.org/en/library on the live.door43.org site so that I can still access them when DokuWiki is deprecated.

As an admin I want the resources listed https://door43.org/en/library moved into Gogs so that I can deprecate DokuWiki.

Notes

The Discipleship for Disciples resource will need to be faked, in the sense that we'll just want to manually upload the already generated PDF, DOCX, and ODT files to the live site instead of trying to generate them because we don't have the source files in plain text.

Setup DNS

The DNS entries need to be configured for the new site. The site should show up at live.door43.org (until we are ready to deprecate DW).

Metrics: Views Per Repo

Story

As an admin|user I want to see how many times a particular repository has been viewed so that I know how popular it is.

Update: to use Javascript to update the database. See https://www.google.com/search?q=javascript+query+dynamodb&rlz=1C5CHFA_enUS690US690&oq=javascript+query+dyn&aqs=chrome.0.0j69i57j0l4.7279j0j7&sourceid=chrome&ie=UTF-8

Notes

This should work similar to views on a YouTube video. Note that this applies to the rendered HTML pages of the repos. Views should be counted for a repo as a whole and also for each commit.

Should be counting number of hits/pageviews.

Data can be pulled either from Google Analytics or from CloudFront web log file.

If using CloudFront log files, write a lambda function that processes them whenever a log file is saved to the S3 bucket at logs.door43.org/door43.org/.

Data should go into DB in #446.

Research phase is time boxed at 1 hour.

Setup CloudFront Distribution for Site

Story

As a user I want the door43 site to load as fast as possible so that I don't have to wait.

Notes

The S3 bucket needs to be fronted by a Cloudfront distribution.

Content Curation

Story

As a user I want to get to the best content in my language so that I don't have to look through all of it.

Notes

We need to devise a content curation algorithm that takes into account the metrics we are tracking.

A first pass should simply sort by number of views, the more views the repo has, the higher it should appear in the list.

Possibly a backend Lambda service could generate these numbers on a periodic basis.

Write usfm2html Conversion Module for Bible

Story

As a translator I want to see my Bible translation uploads on a pretty HTML page so that I can review the text and share it with others.

Notes

Some specification at https://github.com/unfoldingWord-dev/door43.org/wiki/tX-Development-Architecture#tx-conversion-modules

We need a convertor that takes USFM files and converts them to HTML. This should expect well formed USFM files as input (USFM Spec at http://paratext.org/system/files/usfmReference2_4.pdf)

This repo should have well formed USFM files that could be used for testing https://git.door43.org/jag3773/ULB-pt-br .

History

@codemis said "Completed with the following commits:

Definition of Done

  • Code is written
  • Travis CI is configured and passing:
    • For code building
    • For code unit testing
    • For deploying
  • Coveralls is configured to report code test coverage (and is greater %70)
  • Peer review of code before deploying to production
  • Documentation of code functions (input/output, internal logic)
  • Documentation of public facing features on Wiki as needed

Slack Signup Page

Story

As a user I would like to join the Door43 community so that I can ask questions, volunteer, and generally stay in touch.

Notes

PHP code from DW at https://github.com/unfoldingWord-dev/Door43/tree/development/lib/plugins/slackinvite .

This should show up at /en/contact/.

Use AWS API GW + Lambda (via Apex) if we need a server side component for this.

Definition of Done

  • Code is written
  • Travis CI is configured and passing:
    • For code building
    • For code unit testing
    • For deploying
  • Coveralls is configured to report code test coverage (and is greater %70)
  • Peer review of code before deploying to production
  • Documentation of code functions (input/output, internal logic)
  • Documentation of public facing features on Wiki as needed

Comments

Story

As a user I want to leave comments for the content creator so that they know what I think.

Notes

This should work similarly to YouTube's commenting system.

Potential Implementations

  • Create a DCS issue when someone comments?
  • Setup disqus for all the pages?
  • Use JSON in the S3 bucket?

UPDATE: Looks like someone has built a commenting system on Github instead of Disqus, which is very similar to our idea to use DCS, see http://donw.io/post/github-comments/ . Using DCS is the preferred route at the moment.

Need a research task to identify size of this feature.

Move to door43.org

Story

As a user I want to see my translation(s) live published on door43.org so that I can view and share them with others.

Notes

  • DokuWiki moves to dw.door43.org
  • This new Door43 site becomes door43.org
    • Verify S3/CloudFront configured for naked domain door43.org
    • Update door43.org Jekyll settings, e.g. _config.yml
    • Update DNS:
  • Track 404s so that we can fix dead links
  • Put link to door43.org/en/new_door43/ in info message on DW after move.

Number of Contributors

Story

As a user I want to be able to see how many people contributed to the content project so that I can get a feel for the scope it.

Notes

This information should be gathered from Gogs and the manifest.json file.

Add "Get PDF" Button to Door43 Pages

Story

As a user I want to get a PDF from my Door43 user/repo page so that I can download, use, edit and/or share the resource offline.

Notes

For all of the rendered content on the door43.org/u/ pages, we want to add a "Get PDF" button that will use #11 to generate the PDF.

This button should do the following:

  • Check to see if a PDF exists for the latest commit (by checking /u/[user]/[repo]/[short_commit_hash]/pdf/[repo_name_timestamp].pdf).
  • If above fails,
    • Hit the API endpoint to ask for a PDF
    • Let the user know that it will take a few seconds
    • Start the download when the generation is finished

Optionally, we may want to allow the user to be emailed the PDF link if they do not want to wait.

Add "Get DOCX" Button to Door43 Pages

Story

As a user I want to get a DOCX from my Door43 user/repo page so that I can download, use, edit and/or share the resource offline.

Notes

Similar to #13

For all of the rendered content on the door43.org/u/ pages, we want to add a "Get DOCX" button that will use #12 to generate the DOCX.

This button should do the following:

  • Check to see if a DOCX exists for the latest commit (by checking /u/[user]/[repo]/[short_commit_hash]/docx/[repo_name_timestamp].docx).
  • If above fails,
    • Hit the API endpoint to ask for a DOCX
    • Let the user know that it will take a few seconds
    • Start the download when the generation is finished

Optionally, we may want to allow the user to be emailed the DOCX link if they do not want to wait.

DCS Login

Story

As a user I want single sign on capability with Gogs so that I do not have to enter my Gogs login credentials to login to the door43 site to comment or rate.

Notes

Possibly a cookie can make this happen across git.door43.org, live.door43.org, and door43.org ? Probably at least 2 tasks here:

  1. To allow someone to login via Gogs
  2. Implement the login function on the live site

Convert: UBN/UBC โ†’ HTML

Story

As a creator I want to see UBN/UBC rendered into HTML after I edit the page in Gogs so that I can see how it will look and link to other resources and so that I can see if there are errors in rendering it.

Ratings

Story

As a user I want to be able to rate content on the site so that other users can see the quality of it.

Notes

TBD: thumbs up/thumbs down, 5 stars, etc.

These should be tied to the repo-commit, not just to the repo -- unless we come up with a clever weighting algorithm based on number of changes in each commit?

One suggestion was that this could be used as a mechanism to get content added or removed from the Door43 Catalog.

Add tN to md2html Conversion Module

Story

As a creator I want to see tN rendered into HTML after I edit the page in Gogs so that I can see how it will look and link to other resources and so that I can see if there are errors in rendering it.

Make HTML files per book.

Pull ULB text from the same organization as the tN. In other words, Door43/en_tn should pull ULB from Door43/en_ulb. If that doesn't work, fall back to https://git.door43.org/Door43/en_ulb.

Likewise, someOne/hi_tn should pull from someOne/hi_ulb. If that fails, fall back to https://git.door43.org/Door43/en_ulb.

The same process applies for UDB too.

The pre-processor will put a variable for where the ULB and UDB goes. A trigger in the CDN bucket for tN repos will trigger a lambda function that populates the text.

Source Format Problem Reports

Story

As a creator|user|admin I want to see if there are structural or formatting issues with my content so that I can fix them.

Notes

The underlying architecture for reporting this information has been completed. What is needed to complete this task is the following:

  • For Markdown Source texts, report the following:
  • For OBS projects:
    • Report missing chapters
    • Report missing frames
    • Report missing references
    • Report missing titles
    • Report missing or not translated front / back matter
  • For USFM projects:

See https://github.com/unfoldingWord-dev/uw-api/blob/develop/static/versification/ufw/ufw.vrs for a full list of the typical English versification system.


Historical Notes From Initial Issue Creation

Related to #6, every repo in Gogs should have a build status indication. This should be keyed off of the output from the last time the conversion API tried to generate that repo.

This could be shown as a badge like a Travis CI badge. The extended error information should also show up in the HTML page that is built ( #58 ).

For Markdown repos this should include:

For Scripture/USFM repos this should include:

  • any ill-formed USFM according to the Spec
  • any missing chapters or verses for a given book

Up for discussion on how this should be recorded. I'm leaning toward saving this data in a JSON file for each commit in the S3 bucket (e.g. /u/[user]/[repo]/[short_commit_hash]/build_errors.json) and then have the project page ( #58 ) pull in this JSON file and display it nicely.

The badges are recorded in #213 .
Future task would be to tag repos that do not conform to the forthcoming resource container spec ( #79 ).

Metrics: Time to First View

Story

As an admin I want to see statistics about how long it takes someone to view the rendered HTML page from the time of the commit that created it so that I can make informed planning decisions about the content in the repo and the site as a whole.

Matching Algorithm

Question

What sort of metrics or tactics could we use to get people to the content they want right away? How do we read their mind?

Ideas to Start With

  • Search box
  • Localized language pages (see #27 and #28)
  • Browser language setting (auto redirect to correct /lang_code/ page)
  • Geo IP matching to region
  • Cookies to track previous browsing history
  • Content curation (see #28)
  • Show list of Recent Uploads for each language

Travis and Coveralls Compliance

We need to ensure that all of our repos are configured with Travis CI and Coveralls. This task is to verify that we have these 2 services configured and have badges showing on the README for each repo.

Note that deployment via Travis will be handled in #56 and #41 and likely hasn't been configured yet.

Possibly, it would be helpful to list each module on this repos README with the Travis and Coveralls badges so that we can easily see the build and coverage status of all modules at one time.

Definition of Done

  • Travis CI badge on repo
  • Coveralls badge on repo (at least %50)

For the following projects:

  • tx-webhook
  • slack-lambda
  • tx-manager
  • tx-sample-client
  • tx-html2pdf
  • tx-usfm2html
  • python-gogs-client
  • tx-md2html
  • tx-shared-tools

Suggest an Edit

Story

As a user I want to be able to suggest an edit to a content repo so that I can make a simple contribution.

Hypothesis

Our users want to be able to make simple suggestions to other users' work.

Notes

Requires that the user login to DCS. See #31 .

From the HTML live site page, we want a Suggest an Edit button that does the following:

  • Forks the repository into the user's account
  • Create a "throwaway" branch for the suggestion to avoid conflicts
  • Opens the respective file in a web editor
  • Provides comment/commit message box
  • Commits in the forked repo
  • Generates PR against original repo with the git commit in the PR comment box

The above should occur on 1 screen in as simple a layout as possible.

Step by step instructions for doing this manually are in http://help.door43.org/en/knowledgebase/5-general-questions/docs/39-suggest-an-edit-on-dcs.

Metrics: Number of Pageviews For Every Language Page

Story

As an admin I want to see statistics about how many people make it to a language page so that I can make informed planning decisions about supply and demand on the Door43 platform.

Notes

For example, if someone shows up at door43.org/ru/ we want to count that.

This should probably be a dedicated dynamodb table, our existing lambda that updates the view count on project pages can be copied to function for this table.

The update code needs to go into the existing https://dev.door43.org/en/ page but also needs included on the 404 pages for languages ( #635 ).

This data should show the top ten language pages from the table in the dashboard page.

Completely Separate Development from Production

We need to setup a test s3 bucket in our test AWS account our Lambda script needs to be able to determine if it is running in our test account or our production account and upload to the correct S3 bucket.

Definition of Done

  • Code is written
  • Travis CI is configured and passing:
    • For code building
    • For code unit testing
    • For deploying
  • Coveralls is configured to report code test coverage (and is greater %70)
  • Peer review of code before deploying to production
  • Documentation of code functions (input/output, internal logic)
  • Documentation of public facing features on Wiki as needed

Index Document Not Loading

The index.html page is not loading properly for relative paths. For instance, live.door43.org/en/index.html loads fine, but live.door43.org/en/ does not.

Possibly this is a S3 or CloudFront issue, but I've double checked the settings and they don't appear different than our uW configuration. Possibly a Jekyll related issue?

@phillip-hopper or @codemis do you have any ideas on this? Did we have to do something special when we setup the uW site to solve this?

Setup Webhook and Deployment for Jekyll

I had setup the webhook and deployment stuff for this repo when it was on Gogs, that all needs copied over to Github and tested to make sure it is working the same.

Design Link to Door43 HTML Page from Gogs

Story

As a user I want to get to the Door43 HTML page from the Gogs repo so that I don't have to type the URL in manually or guess where it might be.

Notes

Example page in question is https://git.door43.org/jag3773/ULB-pt-br .

Definition of Done (for designer)

Attach screen(s) below that show

  • Where the button goes
  • What it looks like
  • What the text of the button should be (probably, "View this on Door43")

Make Lambda/Travis Build Jekyll Site

Story

As an admin I would like Travis CI to build this Jekyll site so that I don't have to maintain a server to do it.

Notes

We could go completely serverless with our Jekyll configuration if we implemented this.

Effectively, anytime a commit hits this repo then a webhook could trigger that Lambda script above to generate the site in test S3 buckets. Similar to how it works now (see https://github.com/unfoldingWord-dev/door43.org#publishing-setup), the master branch would also be the production S3 bucket. Whenever a merge to master happened then the site would be published again.

I think Travis CI can do this, which would be the much easier and preferred route.

Convert: Any โ†’ DOCX

Story

As a developer I want to get a DOCX from tX of content that is in a Gogs repo-commit so that I don't have to generate it manually.

As a user I want to get a DOCX from my Door43 user/repo page so that I can download, use, edit and/or share the resource offline.

Definition of Done

  • Code is written
  • Travis CI is configured and passing:
    • For code building
    • For code unit testing
    • For deploying
  • Coveralls is configured to report code test coverage (and is greater %70)
  • Peer review of code before deploying to production
  • Documentation of code functions (input/output, internal logic)
  • Documentation of public facing features on Wiki as needed

Metrics: Software to Use

Story

As an admin I want to be able to see statistics about the site so that I can make informed planning decisions.

Notes

Time box at 2 hours of research.

This issue is to setup a framework that can handle the sort of specific metric requests in issues like #18 and #17 . Is Google Analytics a possibility here? What about Piwik? What about StatHat? What about an AWS Service or even Google Sheets?

Deploy Automated Pipeline to Production

Story

As a translator I want to see my translations on a nice HTML page so that I can review it and share it with others.

As a regional director I want to see my teams' work online so that my FY objectives can be checked off.

As an admin I want to see our end-to-end MVP deployed to our production environment so that we can deliver live publishing to our users.

Notes

We need the basics of this to work for OBS and USFM.

Build Navigation: To Language

Story

As a user I want to get to quickly get to content in my language so that I can view it.

Notes

Browse button from main page takes someone to the language dashboard page #27 . On first load the modal window with a world map pops up, at the top of this we will provide a short list of recommended languages based on client IP and browser language setting. We will also provide an option to "view all" languages. Clicking on a portion of the map shows a list of languages in that region. List of languages should have 1. localized name, 2. (language code), 3. anglicized name if appropriate.

Navigation: To My Stuff

Story

As a user I want to get to quickly get to my content so that I don't have to wade through everything else.

Notes

This is effectively the "My Projects" link dropdown from the upper right in the screenshots on #59 (comment). This requires that the user be logged in.

OBS Resource Page

Story

As a user I want access to the OBS resources so that I can use them for my own purposes.

Notes

All the resources here https://door43.org/en/obs/resources need to be linked to.

Maybe spin this page as a "Remix OBS" page or something like that, offering access to the source images and video clips?

Setup Test S3 Bucket

We should probably call this test.door43.org and make sure it is in the WA account.

Build Language Pages

Story

As a user I want to have a home page for my language so that I can just see content in my language and so that I can understand the page.

Notes

Every language should have it's own landing page (at /lc/ , like /en/ ). This page will eventually be localized into the respective language (use the English landing page to start off).

If there are no gogs repos for this language then the page should show a standard boilerplate response like "No content here yet, why not use translationStudio to create it!".

If there are Gogs repos for this then they should be sorted by the content curation algorithms #28 .

Query parameters when the user searches should come after the existing URL, like /en/search?yada

Add tW to md2html Conversion Module

Story

As a creator I want to see tW rendered into HTML after I edit the page in Gogs so that I can see how it will look and link to other resources and so that I can see if there are errors in rendering it.

Simplify Main Page

Story

As a user I want to know what door43 is about right away when I visit the site so that I don't have to guess or waste a lot of time reading the main page.

Notes

The main page should have a simple and enticing overview of what the project is about. Use the tagline from uW site.

Move OBS Change Log Files

Story

As a translator I want to see what has changed between versions of OBS so that I can update my translation quickly.

Notes

Move OBS Change log files to new site (http://ufw.io/obs_changes, http://ufw.io/obs1-3, http://ufw.io/obs2-3). Possibly this can be accomplished when #35 is done, by tagging the revision history appropriately (though that may be difficult to step back in time to generate the previous states for each version...)?

Write md2html Conversion Module for OBS

Story

As a translator I want to see my OBS translation uploads on a pretty HTML page so that I can review the text and share it with others.

Notes

Some definition at https://github.com/unfoldingWord-dev/door43.org/wiki/tX-Development-Architecture#tx-conversion-modules

Note that OBS is the only resource type required to complete this issue. Adding other resource types will have their own issues.

The input will be Markdown files, 1 per chapter of OBS (as the tx-webhook module will emit). Maybe doing #35 first would help?

History

@phillip-hopper said: "I've started on this: https://github.com/phillip-hopper/uw-publish/blob/feature/Publish-OBS-tS/app_code/cli/publish_obs_from_ts.py"

@codemis said: "Completed with the following commits:

Definition of Done

  • Code is written
  • Travis CI is configured and passing:
    • For code building
    • For code unit testing
    • For deploying
  • Coveralls is configured to report code test coverage (and is greater %70)
  • Peer review of code before deploying to production
  • Documentation of code functions (input/output, internal logic)
  • Documentation of public facing features on Wiki as needed

Add tQ to md2html Conversion Module

Story

As a creator I want to see tQ rendered into HTML after I edit the page in Gogs so that I can see how it will look and link to other resources and so that I can see if there are errors in rendering it.

Integrate with Gogs Tags/Releases

Story

As a user I want to be able to see if the content creator or translator has marked their work as published or finished so that I don't have to guess if the latest build is the "best one".

As a creator|translator I want to be able to signal when my content is at a stopping place (publish phase) so that everyone else knows when my content is ready for consumption and distribution.

Notes

When a user tags their git repo with a release, we could have the conversion app automatically build the HTML (as usual) but also the PDF ( #11 ) and DOCX ( #12 ) . The files could then be linked to on the Gog's tag page (like the zip of the code is).

Note that we should think about presenting these in a special way on the HTML page for that repo, something like Releases or Versions.

Note that this should include aliasing the git tag to the git hash in the URL. For example, tA version 7 at https://live.door43.org/u/Door43/en_ta/eccd2b1a6f/ should be the same page as https://live.door43.org/u/Door43/en_ta/v7/ . This will make linking much clearer for apps and users.

Move English OBS to Gogs

Story

As an admin I want English OBS to show up in Gogs and rendered on the Door43 site so that I don't have to maintain DW anymore.

As a user I want to see English OBS on the Door43 site so that I can view and interact with it.

Metrics: Number of Views Until First Interaction

Story

As an admin I want to see how many views a page has to get before the first person comments or gives a rating on it so that I can make informed planning decisions about the Door43 platform.

Notes

This will require that we first have the commenting or rating system setup.

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.