ProjectBeta

NgurraChat Censor App

Challenging
2 completions
~ 29 hours
5.0

Assist the tribe leader in restoring harmony to communication within the tribe. Additionally, delve into the practical application of some of the most popular string search algorithms within the context of censorship, including brute-force, Boyer-Moore, Knuth-Morris-Pratt, Rabin-Karp, and Aho-Corasick ones.

Provided by

JetBrains Academy JetBrains Academy

About

NgurraChat, an app that bridged the gap between the Aboriginal tribe's traditions and modern life, was a crucial tool for their community. However, inappropriate messages began infiltrating the platform, threatening the sanctity of their digital campfire. The leader wanted to censor disruptive and disrespectful messages to preserve their communal exchange.

Graduate project icon

Graduate project

This project covers the core topics of the Python with Algorithms for Tech Interviews course, making it sufficiently challenging to be a proud addition to your portfolio.

At least one graduate project is required to complete the course.

What you'll learn

Once you choose a project, we'll provide you with a study plan that includes all the necessary topics from your course to get it built. Here’s what awaits you:
The tribe was upset with the censorship, so they wrote more efficiently using the Knuth-Morris-Pratt algorithm.
The tribal leader noticed that chat messages can be diverse, from regular text to a jumble of characters. An algorithm with multiple heuristics, including Boyer Moore's, comes in handy.
The tribe's vocabulary grew, requiring the algorithm to find multiple patterns of equal length. A Rabin-Karp algorithm with a rolling hash function is used for efficiency.
The tribe leader wants a better algorithm for string searching with multiple patterns. Enter the Aho-Corasick algorithm, which is efficient and widely used.
The tribe tricked the censor system by changing word characters. Aho-Corasick's algorithm made it easier than adding patterns.