Tablesorting algorithm for all web browsers Summer 2018
This is a project that I did for sorting an HTML Table according to which column was selected.
The code is well commented, I would recommend going through it! More on this project soon!
Monkeyrunner : Android App simulationSpring 2018
This project's whole purpose is to test other projects. As our android application in our research team is very complex, it is hard to keep track of all the buttons and switches that the user might need to press or enable.
That is why I came up with a way to firstly find any touchable view that exists in a specific view, (call it main-view if you wish), then list all the positions of the touchables according to their screen location and finally be able to activate them using an android adb tool called monkeyrunner.
The following code takes a view and gets the appropriate locations of all the children touchable view. I would like to point out that I am using Log.d with a special tag for the communication between the adb shell logcat, the monkeyrunner, and the android.
Here is the code for the monkeyrunner to firstly run the android program on the device, and then read all the log outputs with a special tag.
Here is the code for the monkeyrunner that takes how ever many parameters you want in pairs of two, first the ID of the android button you wish to press, second, the time pause needed in order to activate the button.
I ran into quite a lot of problems whilst trying to run monkeyrunner as my batch file had paths that lead to nowhere. Since I had to do a number of changes to the original file, I decided to also provide that file in here.
John Deere Project : TangoSpring 2018
This is a project given to me and four other ABE students.
We were assigned on making a new design for the automated mower Tango, a John Deere product mostly recognized in Europe. Our assignment consisted of increasing or decreasing the height of the mowing blade according to how much load stress the grass created. This assignment challenged our knowledges in mechanics, electronics as well as software as all three were required.
As a bonus deliverable we also came up with a Tango App that enabled Wi-Fi communication between the Tango and an Android application. This application served as a remote controller for the Tango. This simple idea seemed to have increased the desirability of the Tango by the viewers by a considerable amount and we were very much complimented on our work and our enthusiasm to give a good final product.
Feel free to take a look at our presentation which does a perfect job of describing our accomplishments as a team.
I believe this was a very good experience for me, learning how to work with a team was very entertaining and enjoyable as it promoted and encouraged me to work and do better to impress my coworkers as much as the potential consumers.
Mechanics - ESP8266 Wi-Fi - HTML Post/Get - Arduino - PTC Creo - Android - Java - XML
Here are the codes for the Android Application as well as the Arduino Code, commented especially for the later users who wish to understand the functions as easily as possible.
Robot modeling and control class tutorial Spring 2018
This is a website that I have created after the request of one of my professors who wished to show that robot modeling or graphics modeling is not as complicated as it looked. I believe I did a good amount of work considering the timeline I had (~2 days). Feel free to visit the website here on my other github account ABEUIUC from which I host the webpage.
HTML - Robot Modeling - CSS - JS - Jquery
Interpreter on EC2 Instances Fall 2017
Creating multiple EC2 instances where users will have an interactive computational environment in which you can combine code execution, rich text, mathematics, plots and rich media. This has been used for a workshop that my research professor and multiple other performed in Australia. The workshop webpage can be found here.
DJI Drone Data Gathering Spring 2017
Android App that lets the user select an area from Google Maps or chose an previously saved area from the users personal S3 Bucket. The user can then chose to deploy an automated DJI-Drone whose mission is to take pictures of the selected area. These pictures are then displayed on the App and saved in the S3 Bucket with their specific world coordinates and time. Click here for the video of the app working. This app has been used by 5 farmers located in Illinois. The workflow of the mission is displayed bellow.
DJI - Android - AWS - S3 Bucket - SQL - XML - Google API
Workload Calendar Fall 2017
A webpage where users can register and save their personal informations as well as enter their work times. This is used for the undergraduate students who earns credit hours according to their working time. The workloads are made easy to observe thanks to graphs created in d3js.
My Farm Everyday Spring 2017
Android app that displays agriculture data to user (typically farmer) overlaid on Google Maps. The data is downloaded from the client's personal AWS S3 Bucket. The pictures are displayed in accordance to the timeline the user choses.
Android - MySQL - XML - Google API
Dynamic Website Spring 2016
This website lets you create, edit or remove sections from it’s own content, with a user friendly interface. These sections are saved and populated from a MySQL database using Flask. This website’s main purpose is to let users who aren’t familiar with HTML be able to enter their own personal contents without the need of assistance.
Factorial Trees Spring 2015
Randomly generated Tree using d3js. There is upto 15000 nodes so it can sometimes take a while to display. Feel free to refresh the page to view different trees.
Simple Image Processing Fall 2014
An image processing algorithm that is able to detect individual objects. And feedback it’s own error in detection according to how close the objects are to perfect circles as the objects in question was M&Ms.
Loading Logo Fall 2014
A simple logo I've created on my spare time, while trying to understand d3js better.
Gears Fall 2014
Little project done whilst trying to understand d3js better.