Text Editor

Job ID: 32260415

Budget: $30 – $250 USD

JavaFX

VIEWS:

1. It must have views for user Sign In and Sign Up.

2. Once a user signs in successfully, program displays a menu bar at the top, a status bar at
the bottom, and a text area in the middle.

3. The menu bar should at least have a File menu and an Edit menu.

a. The File menu should have the following menu items: New, Open, Close, Save, Save As, and Exit. In addition, it should have a Spell-Check menu item. It also should have two other menu items --- one is called Learn and the other called Create. The Learn menu item allows the user to open a text file to “learn” and store word sequences. The Create menu item allows the user to create a new text passage based on what it has learned. An initial word and an integer specifying the word count of the new passage are provided by the user when the Create menu item is clicked.
The Save As and Open menu items should be supported by a file chooser to allow the user to choose files and folders anywhere on your computer. It also needs to implement a text file filter (.txt) for the file chooser so it will only display folders and text files with the extension of .txt. The Save menu item uses a file chooser only if the file has never been saved before. Otherwise, it saves the content in the Text Area using the existing file name.

b. The Edit menu should have the following menu items: Undo, Word Count, Sentence Count, and Flesch Score.

4. The status bar is used to display word count, sentence count, and the Flesch Score. These values are displayed when the corresponding menu items are clicked and also when text is entered in the text area in real time.

5. The Text Area in the middle is used for the user to enter and edit text.

6. You may choose to add other GUI controls as you see fit.

FEATURES:

The use of the most efficient data structures and algorithms is critically important. The use of MVC design pattern is essential. Java APIs must be used whenever possible. Classes and Methods must be short and pure. The use of utility classes and static methods is encouraged for utility functionalities.

1. Any text file can be loaded from the hard drive into your text editor (into the Text Area). Any text in the Text Area can be saved as a text file onto the hard drive. All text files should be stored in a subfolder named Data in the project folder. All menu items in the File menu should work.

2. Implement spell check. Misspelled words can be corrected in the text area.

3. Implement a Markov Text Generator so the Learn and Create menu items would work. A text file (WarAndPeace.txt) is provided for you to demonstrate machine learning and text generalization.

4. The menu items in the Edit menu should all work.

5. User account creation and authentication should work. You need to have data
persistence so user accounts, once created, are saved for future sessions. User passwords must be at least 6 characters long with at least one upper case letter, one lower case letter, and one digit.