Skip to content

Simple Latex Editor reengineered and extended during the Software Development 2 course @cse.uoi.gr

Notifications You must be signed in to change notification settings

Zengineers/latex-editor

Repository files navigation

Latex Editor

Latex Editor is a Java application that was reengineered and extended during the Software Development 2 course @cse.uoi.gr.

Summary

The goal of the project was to reengineer and extend an existing Java application. The application is a simple Latex editor for inexperienced Latex users. The first phase of the project revolved around understanding the application’s legacy architecture. We studied the documentation, user stories and source code and set up a mock installation of the application. Moreover, test cases were prepared for each of the user stories and the design was captured in UML package and class diagrams. In the second phase refactoring and extension was performed, aiming to improve code quality and extensibility as well as usability for both developers and users. Refactoring techniques such as Extract Method, Move Method, Substitute Algorithm, Singleton Pattern, Remove Middle Man and Externalize Strings were used to address issues such as Duplicate Code, Long Method, Dead Code, Message Chains and Misplaced Responsibilities. The application was also extended to support two more user stories regarding HTML document import and export. The refactored design was captured in UML package and class diagrams as well as CRC cards.


The Latex Editor Application

Latex Editor is a simple editor aiming to assist inexperienced Latex users with Latex document preparation. Latex is a high-quality document preparation markup language. It provides a large variety of styles and commands that enable advanced document formatting. Formatting documents with Latex is similar to a programming process as it involves the proper usage of Latex commands which are embedded in the document contents. The goal of the Latex Editor is to facilitate the usage of Latex commands for the preparation of Latex documents. One of the prominent features that distinguishes the Latex Editor from other similar applications is its multi-strategy version tracking functionality that enables undo actions.


More about Latex:

[1] wikipedia
[2] latex-project


Features

Users can:

  • Create a Latex document based on a document tamplate.
  • Edit the contents of a Latex document.
  • Add Latex commands in the Latex document using application's UI.
  • Activate automatic version tracking that keeps track of the document evolution history.
  • Select between two different strategies of document version tracking.
  • Disable the automatic version tracking at any time.
  • Rollback to previous version of the Latex document based on the document evolution history.
  • Save the Latex document on disk storage.
  • Load a Latex document from disk storage.
  • Import an HTML document as a Latex document.
  • Export a Latex document as an HTML document.

Usage

Run the executable jar found in releases.
Alternatively, the application is also ready to be imported into Eclipse IDE.


Credits

Zengineers Logo

Tsiouri Angeliki
Antoniou Christodoulos