In the break of dawn, while working on a head-scratching programming problem in the library, I was struck by the realization of the difficulty to learn to code which would only have been compounded had I not been fluent in English. Through iterative ideation and discussion with my teammate, I ultimately came up with the idea of Code Universal.

What it does

In an English-dominated world, Code Universal is an educational tool that translates the programming syntax of different human languages to address the inaccessibility of coding to non-English speakers. The software can be useful in two primary ways: as a communication and translation tool for non-English speaking developers and as an educational tool for beginners to learn programming in their native tongue.

How we built it

The frontend website is written in React, while the backend and data storage was made using Convex. We used Python to create the translation algorithm for the specific case of English to Spanish code and used Python libraries for the tokenization process and word translations. We used Flask and Apex to integrate JavaScript and Python.

Challenges we ran into

ChatGPT would have provided a significant amount of functionality, however, it is not available for use as an API yet and forced us to rely on other tools for the tokenization of programming syntax. Even the simpler case of English-to-Spanish translation proved to be quite complex, as it requires an algorithmic design that must be both efficient and encompass all edge cases and possible choices in the translation process.

Accomplishments that we're proud of

Creating a full stack proof of concept from scratch and designing an algorithmic approach for how to generalize syntactic translation.

What we learned

We learned about how tokenization works in syntactic highlighting for IDEs and relevantly applied this to our translational model for how the algorithm should operate case by case.

What's next for Code Universal

Fix bugs. Generalize the model to more human languages (Latin and non-Latin based) and programming languages (Java, C++, C, etc…). Refine the current code to improve efficiency and consider more situations, such as how to address libraries that are not built-in. Improve and add features to make the website a more practical and enjoyable user experience, such as allowing customization for naming conventions of variables or creating a display of the list of translations made. Conduct market research and interviews with non-English speakers to improve the product.

Share this project: