Inspiration

Almost all of us learned drawing flow charts at school. It is easy to understand, and fun to draw. There are many programming languages and each one requires time and effort to learn. This abundance might make people feel overwhelmed and get discouraged from learning programming and coding in particular. But what if people could code without the coding skills and knowledge, with just a pen and a paper?

What it does

Our service takes a handwritten (drawn) flow chart and converts it into an editable code, that the user can run on our platform. The only thing required from the user is to draw a flow chart of a correct algorithm and enumerate the steps. Any error in the code will indicate an error in the algorithm of the user. Furthermore, the user gets to choose the output programming language and search the web for error outputs.

How we built it

We used multiple APIs for this project. The first one that users interact with is a Imgur API from Rakuten, that we use to generate a link with the user's image of choice to provide it to the next API in our chain, which is the Google Handwriting Detection (OCR) API. After receiving the text from Google Cloud (Handwriting Detection) the text is interpreted and translated into the user specified language (for this demonstration only Python is available). Then using the JudgeO API, that is also provided by Rakuten we run and compile the Python code on our platform. Finally, if the code runs into an error, the Web Search API, that is also provided by Rakuten is used to find relevant information about the error, based on the message.

Challenges we ran into

The most significant challenge was coming up with a feasible solution for analyzing the flow chart. We were first planning to separate the chard by shapes then detect the shapes and detect the text in the shapes. But this solution had a lot of issues, such as inability to separate the shapes appropriately and recognize them due to poor processing APIs.

Accomplishments that we're proud of

Fortunately, we have successfully overcome all the intermediate challenges and come up with a simple solution of the service. We introduced the enumeration system, which solved the previous problem and made our platform more efficient, by removing extra processing steps.

What we learned

We learned a lot about APIs and how they can be used as building blocks for our ideas and projects. We also understood that sometimes the solution that sounds great appears not be so.

What's next for CODRAW

CODRAW has an immense potential for growth in many directions. The most important one would be the integration of APIs into the diagrams. This means that now a single block can represent a whole API. This would reinvent programming for millions, and even people with little to no knowledge will have the ability to create whole software systems. So, as an example, Rakuten can benefit from a project like this by distributing APIs for flowchart developers as well.

Built With

Share this project:

Updates