✨ 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
Log in or sign up for Devpost to join the conversation.