Macha Lang

Macha Lang is a Kannada toy programming language based designed to help rural people take their first step into the vast tech world.

Project Details

  • GitHub Repo Link: https://github.com/ManojaD2004/code-macha-v2
  • Frontend Tech Stack: ReactJS, NextJS, TailwindCSS, Monaco Code Editor, and XTerm.
  • Backend Tech Stack: ExpressJS, Zod, SocketIO, and SSH2.
  • Achievements/Awards: This project has won in 5 tech competetions including state level VTU.
  • Contribution: Contributed as a Backend Engineer.
  • Project Photos

    Project Description

    As a backend engineer, I wrote APIs that would convert Macha Lang code to NodeJS code for execution. And then I set up SocketIO for a WebSocket (real-time) connection to the client-side application. Why? Because we don't need static/end output of our code, we need it to be real-time, and mainly take input from the web itself.

    In order to take input from the user from the web, the client-side used a SocketIO connection to our backend server. Inside our server-side SocketIO connection, we are establishing our SSH connection to the backend server itself, because we want to not only run user code, but also pass our input, and get real-time output. This was challenging, to be honest, but the results were worth all the effort.

    In order to establish an SSH connection from NodeJS, the project used the SSH2 NPM library in the backend. In the frontend, Monaco Code Editor was used as a code editor, and XTerm was used for a web-based terminal. In future iterations, we added multiple regional language support and also a ChatBot to help the user code.