✨ Inspiration

Code Kindle gives an opportunity to all developers and newbies to understand a piece of code while learning a new language. Developers face hardships to understand complex codes and are unable to understand it completely so we decided to make a developer tool that will convert source code into pseudocode from which it would be easy for developers to understand the complex codes.

👀 What it does

  • The converter page contains two editors, one for writing the source code that you want to convert and the other one which will display the pseudocode after the conversion
  • You can also upload the file to be converted by first choosing the language from the dropdown menu and then browsing the file and uploading it
  • The file that you chose will also be converted and the result will be displayed in the text editor.
  • The convert button will run the online compiler translating your code.

🛠️ How we built it

  • Created a website design with Figma
  • Frontend build with React.js
  • Pseudocode generator for cpp is rule based translator that scans source code by line and map with the tokens according to rules for different conditions
  • Pseudocode generator for python is trained with corpus data and implemented functions to spell check, grammar check, remove blanks and comments and remove type errors and different ambiguities
  • Site deployed on DFINITY

🏃‍♂️ Challenges we ran into

  • Understanding deployment on DFINITY
  • There are not many helpful resources to implement lexical analysis and parse tree models.
  • Integrating the online compiler in our website.
  • Integrating React with Node APIs and displaying the output on the website.

🙌 Accomplishments that we're proud of

  • Deployed our first-ever DFINITY app
  • Used Git and GitHub Efficiently and collaboratively

🔮 What we learned

  • Learnt to deploy an app on DFINITY
  • Learnt to embed a compiler into a web app
  • Learnt Statistical Machine Translation

🤩 What's next for Code Kindle

  • Add support to more languages like COBOL, Fortran, OCaml, Rust so that people are open to learn new programming languages and can easily understand functional programming
  • Implement transpiler(source to source compiler) to convert source code written in one language and transforming it into another language that has a similar level of abstraction. For example, converting python code to rust code
  • Improving the algorithm of the translator to include complex cases like multiple functional calls inside the main and create a google chrome extension
  • Make our website more accessible according to Web Content Accessibility Guidelines and add more pages like team introduction and our project's update
+ 2 more
Share this project: