Challenge Overview

Challenge Objectives

 
  • Target environment: Desktop browsers

  • Basic Requirements: Explore a way to replace the TinyMCE editor with a new open-source editor. It should cover all the existing functionalities of TinyMCE.

Project Background

 

TinyMCE is an online rich-text editor released as open-source software under the LGPL. It has the ability to convert HTML textarea fields or other HTML elements to editor instances.

 

TinyMCE is a great rich-text editor but its license LGPL is too restricted. So our client wants to rewrite TinyMCE and open source it with a license without any license cost (Apache/BSD).

 

The rewritten TinyMCE should provide the same API as the original TinyMCE, 

 

Additionally, the client wants to implement the additional features to the rewritten TinyMCE.

  • Import MS Word document and convert it to HTML

  • PDF preview

  • Print preview

  • PDF generation

  • HTML preview

  • Save HTML into Oracle DB (under the column type CLOB)

  • Implement macros, the macro is a template of HTML that can be inserted into the TinyMCE editor, it should be implemented as extJS.

Technology Stack

  • Javascript/Typescript

  • CSS

  • HTML

  • Java

  • Oracle

  • ...

 

Individual requirements

 

The source code of TinyMCE is https://github.com/tinymce/tinymce

 

In this challenge, we are looking for you to

  • Explore and recommend any open source products or tech stack to rewrite the TinyMCE, specifically, all the dependencies should be under the license Apache/BSD. The app should be written by Typescript.
    The new solution should be an apple to apple replacement of the current product TinyMCE and it’s integration with the macros & application as used by the client.

  • Write a detailed document to describe

    • how TinyMCE implements its API and plugin scheme, and how will you replicate the same features with the new tech stack.

    • how to import the word document and convert it to HTML

    • how to export to PDF

    • how to preview PDF

    • how to preview HTML

    • how to preview Print

    • how to support macros written in extJS.
    • How to connect with the application’s service. How to invoke the application service from a web application. It has to be invoked from the editor when the user 'save' the document after editing.
  • Write one or some demo apps to verify your proposed method

    • how to import the word document and convert it to HTML

    • how to export to PDF

    • how to preview PDF

    • how to preview HTML

    • how to preview Print

    • how to support macros written in extJS.

Some notes:

  • For the demo apps, you can either write one demo app for each feature or write one demo app for all the features. But one demo app for all the features is preferable.

  • The demo app should be a web app, it can be just functional, UI looking is not necessary to be not fancy. We just need your app(s) to verify all the proposed methods are feasible.

  • The content should have some complicated elements, like tables, images, lists, bold, italic text, etc. The format of MS word, HTML, PDF, Print and its generated counterparts should be identical.
  • ���While estimating the efforts, consider the coding standards to be considered as per the client’s requirement. The requirement is attached in the forum.
 

The license of all the modules provided by TinyMCE is Apache 2.0, we might be able to reuse them.



Here are some of the modules for your reference

 

References

You can take the following plugins for reference

 

Review

 

This challenge will be reviewed by the copilot (and the PM/client) subjectively, so there is no appeal and appeal response phase.

 

If you have any concerns or doubts, please raise your questions in the forum, thanks.

 

 


Final Submission Guidelines

Please zip all the following content in a zip archive.

1. Well-Formatted document (in .md/.pdf/.docx) to cover all required content in the specification.

2. The source code of your demo app(s). You should document the verification steps in the document above.

3. Any other contents that you think are required for augmenting your solution.

ELIGIBLE EVENTS:

2020 Topcoder(R) Open

Review style

Final Review

Community Review Board

Approval

User Sign-Off

ID: 30113382