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