Inspiration

We wanted to try and replicate mobile keyboard suggestions in a terminal with a neat user interface.

What it does

Provides suggestions based on what the user is typing.

How we built it

We used python with curses library for UI and a C library "Levenshtein" to quickly find distances between words.

Challenges we ran into

We had problems with some curses modules that provide very limited usage possibilities and had to work around this fact. We researched many ways of storing dictionaries and computing word distances to achieve good performance. We also tried to maximize the performance of our suggestion algorithm to reduce the terminal flicker.

Accomplishments that we're proud of

A very neat terminal user interface. Fast word lookup. Decent suggestions.

What we learned

How to implement terminal UI. Principles of auto-correction, dictionaries, and distance algorithms.

What's next for Cursed Corrector

Improve the autocorrection algorithm by precomputing and hashing prefixes.

Built With

Share this project:

Updates