A handful of students from our university were accepted to Hack UCI. None of us had ever worked on a software project together. When we got in touch with each other, our first discussions were regarding our programming experience. We wanted to know what programming languages we all had in common. We noted that most of us had some exposure to Javascript and HTML, so we decided to create a website.

Lingua Franca

The Merriam-Webster dictionary's definition of lingua franca is:

"any of various languages used as common or commercial tongues among peoples of diverse speech"

Inspired by our own team's needs, Lingua Franca is a client-side web application that helps teams choose a common programming language to develop with. It determines which languages an individual programmer has experience with. Furthermore, it estimates which languages an individual programmer has the most experience with. Given a group of up to four programmers, Lingua Franca finds the languages and technologies that the programmers have shared experience with.

How It Works

Lingua Franca is built with Javascript, Bootstrap, and GitHub. It uses GitHub's REST API to gather information about GitHub users. To determine which languages a user has experience with, it fetches all of the user's public repositories and determines each repository's primary programming language. To estimate how much experience a user has with a given language, it calculates how many commits the user has made to repositories of that language. With this information, the website displays an intuitive graphical representation of the user's relative experience with each language. If you wish to compare the programming experiences of several GitHub users, the application will determine which languages those users have in common.


We ran into some interesting challenges during the development of Lingua Franca. The GitHub API limits user requests to 10 per minute. While debugging, we would send too many API requests and have our requests denied. In addition, we were challenged by the effects of the request latency on how the website elements were rendered.

Our Experience

This was our first time creating a client-side web application with Javascript. We learned more in 36 hours than we would have in two weeks! When our application started to work, we felt so rewarded. We got to know our team mates more closely during this project's development. HackUCI has been an experience we will cherish for a long time!

Share this project: