Essay Editor Pro
We are computing majors so we don't how to write formal English. We came up with the idea to create a language processor to clean up our writing, creating formal and grammatically correct paragraphs.
What it does
Reads each paragraph and uses the python language tool to fix any grammatical errors it finds and then corrects them. It also counts how many times each non stopword is used in a paragraph, allowing us to inform the writer if a word is deemed to be overused. In doing all of this, we search sentences for Wikipedia articles that correspond with key words in the sentence and send the writer a link to that article.
How we built it
We used NodeJs for the frontend, leveraging the pre-existing architecture of NextJs. NextJs also has built in Server Side Rendering and and API server which was used to authenticate the users along with MongoDb. We used Github's and Facebook's OAuth, alongside "magic link" emails for passwordless authentication. The editor itself was built using DraftJS which allowed us to add the basic rich text features that are commonly used to write essays. Finally the UI was built using Ant Design Components and ReactJS which allowed us to mockup and customize the UI quickly, providing us with the much needed time to focus on the backend.
Python was used for the backend, where it receives the text body from the frontend and parses the data into a usable format. The paragraphs are then split into sentences and those sentences are fixed using python language tool. After we fix the grammatical errors we send the new sentence into a word counter that ignores stopwords and then returns a dictionary allowing the program to see overused words. The new string is also passed into a function that returns Wikipedia articles relating to that sentence and says what type of voice the sentence is in i.e. active or passive. After all of this is done the data is formatted into an array and passed back to the frontend.
Challenges we ran into
Accomplishments that we're proud of
We are proud that we were able to complete the project in just over a day with majority of the functionality we were aiming for being complete and functional. We are also proud that the entire project is configurable and deployable using 3 files to store environment variables such as API keys.
What we learned
What's next for Essay Editor Pro
We would like to revisit the side by side comparison at a later point. Also, using MongoDB allows us to store user documents, so we would like to implement this in our project and create stored files for each user that they can come back to when needed.