Code Automation for Everyone

Code Automation for Everyone is a project that I'm doing as my final year engineering project. I am a fan of automating things, sometimes spending more time automating a task that could be done in a shorter time manually, all for the eventual goal of making something reusable. My gripe with automation, and the point of this project, has always been that automation scripts are never very accessible to the layman who would really benefit the most from a script of the sort.

The objective of this project is:

  • Utilize the Visual programming paradigm to create a flowchart-based language that anyone can use to build programs to automate repetitive tasks.
  • To enable the user to accomplish all sorts of web-based tasks that present a non-restrictive interface and which can be traditionally automated using conventional algorithms.
  • To provide the ability to modularize, reuse and share flow sequences among users.
  • To implement basic error handling and reporting mechanisms that can be easily understood by the user.

While still in development at the moment, the scope of our project currently is to make a visual programming interface that can essentially input a program flow from the user (somewhat like making a LucidChart, but hopefully even easier, depending on the UI), and based on that user flow, run a program, without having the user code a single line. Our goal is to make this interface a Turing Complete language of it's own, so that theoretically, one can do whatever they wish with this language, but then gear it towards automation using presets and modules.

The use cases that we picked out initially were mostly mundane tasks that are painstakingly done manually in the absence of automation or have expensive software based around specific limited use-cases.
  • Merging and filtering various data feeds to be given as an input to a dashboard application in real-time, for example, making Covid-19 trackers, student attendance trackers, batch tracking shipments, etc.
  • Periodically tracking the cost of various products across several websites and sending email notifications
  • Applying a common transformation to a huge repository of data files (image, sound, text), etc.

A future scope for the project, and one that we hope to be able to implement by the end of this year is the integration of a recommender engine within this framework, that can take user feedback, ask you what you want to do with the interface and recommend community generated presets or first party modules to the user. One could argue that the onus lies on the developer to make enough presets or modules to make the interface easier to use for a user, however it is our belief that if community generated presets can be promoted on the platform itself, there won't be a need to further develop modules for it; the community would grow from itself.

In the same way as any programming language, this language per se would rely on its user interface to implement everything from simple calculation tasks to complex data manipulation.