My Projects

A Method for predicting CPU utilization for Redhat/Solaris virtual machines

This system predicts CPU utilization of Redhat and Solaris servers for balance workload among physical nodes thus increasing the efficiency of resources. This prediction can be used to migrate one or more virtual machines, avoiding physical machines overload. "vmstat", "top", "htop" commands used to gather server's system performance data. After preprocessing collected data, two machine learning models (Multiple Linear Regression and Random Tree Forest) used to train the data set.

Technologies: Python, bash scripting


Mic Anywhere

In conferences, when the audience has to share own ideas with rest, presenter has to distribute the mic to that particular person. This android app solves that problem giving use your android mobile as a microphone. The presenter can control the flow using software installed on the laptop.

Technologies: Java, Android Studio


Hybrid Difficulty Adjustment for Computer Games

Dynamic Difficulty Adjustment (DDA) in computer games focuses on improving the gaming experience by implementing user-specific difficulty levels. Most of the DDA system focused on player gaming performance to adjust the difficulty level and only a few systems considering the player’s emotions to change the difficulty level. In this project, we used both affect-based and performance-based part together as a hybrid DDA system. ECG signals were used as the biofeedback, and signal processing and machine learning methods were used to derive an emotion prediction system that acts as the affect-based element of the system. Furthermore, a fuzzy-based DDA acts the part of the performance-based DDA elements while an inter-process communication unit integrates everything and makes up the whole hybrid DDA system.

Technologies: Python, Nodejs, Java Script


ezParking

This is an android application that helps to find near parking spaces for your vehicles according to your current geolocation. Also, users can see the distance to each parking lot and the state of the parking space (full or available). The app connects to the Google maps platform using an API key to get the current location, location of parking lots, etc.

Technologies: React Native


Advanced To-Do List

This consist of both mobile and web application that displays users daily to do errands and other tasks. When the first time using the application, users have to sign up using their user credentials to use the application. After that, they can log in. Users can enter and delete their daily to-do lists on the applications, and items can be marked after completing the task. To-do list items, items' states, and user credentials are kept in a MySQL server.

Technologies: React.js, React Native, Node.js, HTML5, Sass, MySQL and Apache server


Online Multi-Player Game “PackMan “

Implementation of an online multiplayer game using Java. Each player establish a connection to the server using HTTP requests and Server-Send Events (SSE) used to broadcast game state for all contestants. Keypad events send to the server using appropriate Java functions. Using java thread lifecycle functions to control broadcasting events.

Technologies: Java


Meme Generator

This is a web based meme generator app that makes API calls to get a bunch of images from a remote database and allows users to enter text on the top and bottom side of the image. Users can download the generated meme into local storage.

Technologies: React.js, HTML5, Sass, Node.js


Library Assist

The management and maintenance of a library are very crucial and time consuming task. Since long, libraries have been using Barcode technology for the maintenance of books. RFID (Radio Frequency Identification) technology is one of the latest technology being used in libraries. The aim was to replace barcode stickers with RFID stickers and develop dedicated hardware to read/write information into RFID memory using a microcontroller.

Technologies: Arduino, Java, MySQL, PHP


Fractal Generator

Designing and implementing a software that plots two of the most popular fractals: Mandelbrot set and Julia set. Java threads were used to parallelize the computations and reduce the run time.

Technologies: Java


Smart Sonic HeadSet

An enhanced headset which will automatically user’s music player when the headset is removed from the ears and continue to play the user puts it back again

Technologies: Arduino


Auction Server

Auction server is a socket server created using java TCP sockets. A multi threaded server was implemented with authentication where several clients can connect to it and bid on items at the same time. In the server side bid history and all the changed data can be tracked using a GUI and the client is also notified if he is overbidden.

Technologies: Java


RISC microprocessor

Design and implementation of a 16-bit pipelined RISC microprocessor that follows Computer Organization & Design. The KU RISK machine is capable of handling 9 instructions. Simulations and Debugging was carried out using ModelSim.

Technologies: Verilog