Skip to content

yabetancourt/polarized-text-editor

Repository files navigation

Polarized Text Editor

This project implements an English text editor that illustrates the polarity of each word as it is typed using colors.

The editor uses the SentiWordNet tool to calculate the polarity of each word. The polarity of a word p is calculated as follows:

polarity(p) = (positivity(p) - negativity(p)) / (positivity(p) + negativity(p))

Where positivity(p) and negativity(p) are the positivity and negativity values provided by SentiWordNet.

It is important to note that a word can be in several synsets (i.e., it can have several meanings) within SentiWordNet. Therefore, it can have different positivity and negativity values in each of them.

Features

Real-time polarity coloring of words as they are typed
Support for multiple synsets per word

Running the application

The project is a standard Maven project. To run it from the command line, type mvnw (Windows), or ./mvnw (Mac & Linux), then open http://localhost:8080 in your browser.

You can also import the project to your IDE of choice as you would with any Maven project. Read more on how to import Vaadin projects to different IDEs (Eclipse, IntelliJ IDEA, NetBeans, and VS Code).

Deploying to Production

To create a production build, call mvnw clean package -Pproduction (Windows), or ./mvnw clean package -Pproduction (Mac & Linux). This will build a JAR file with all the dependencies and front-end resources, ready to be deployed. The file can be found in the target folder after the build completes.

Once the JAR file is built, you can run it using java -jar target/polarized-editor-1.0-SNAPSHOT.jar

Project structure

  • MainLayout.java in src/main/java contains the navigation setup (i.e., the side/top bar and the main menu). This setup uses App Layout.
  • views package in src/main/java contains the server-side Java views of your application.
  • views folder in frontend/ contains the client-side JavaScript views of your application.
  • themes folder in frontend/ contains the custom CSS styles.

Useful links

Deploying using Docker

To build the Dockerized version of the project, run

mvn clean package -Pproduction
docker build . -t polarized-editor:latest

Once the Docker image is correctly built, you can test it locally using

docker run -p 8080:8080 polarized-editor:latest