Ehsan UH.

My Projects

Explore a curated selection of my projects, each with a brief description to give you a taste of what I've been working on. For a complete list and in-depth details, check out my GitHub!

Amazon Mechanical Turk Requester API Helpers

C#
.NET
AWS MTurk SDK

This .NET application serves as a powerful toolkit for advanced requester tasks on Amazon Mechanical Turk (MTurk). Equipped with a curated set of helper functions, it allows users to programmatically handle requester tasks that go beyond the capabilities of the standard MTurk Web Requester Portal. Additionally, the app supports exporting worker data into Excel sheets based on QualificationTypes, making it convenient to organize and analyze worker information. Further, the app includes a robust logging system for sensitive tasks, such as sending emails to workers.

Tic-Tac-Toe Game

C#
Unity 2D

This project recreates the iconic Tic-Tac-Toe game, designed for an engaging player experience against a sophisticated AI opponent. Players can choose from three difficulty levels—Normal, Hard, and the ultimate challenge, Unbeatable. The AI opponent brings a new level of strategic depth, leveraging the Minimax algorithm with Alpha-Beta pruning to evaluate optimal moves and anticipate the player's strategy. Each level offers a unique challenge, from casual gameplay to a flawless opponent that's hard (impossible) to beat.

Amazon Product Review Scraping and Parsing Toolkit

Python
Poetry
Beautiful Soup 4

This application streamlines the retrieval of user reviews for Amazon products, offering flexible options to filter reviews by multiple criteria supported by Amazon. Additionally, it enables targeted review searches based on specific keywords. The tool also features built-in functionality to parse and export the collected data into JSON or CSV formats, making it easy to analyze and integrate into other workflows.

15 Puzzle Game

Java
Swing
Docker
AWS

This project brings the classic 15 Puzzle game to life with a Java Swing interface, offering an intuitive and interactive experience. From the main menu, clicking the Game button launches the puzzle, where players can shuffle the grid and take on the challenge of reordering the tiles to their original positions. Players begin with a perfectly ordered grid, giving a clear view of the goal configuration. If stuck, player can reset the grid to start again. With every move, the game tests players' strategic thinking and spatial skills, making it a fun and mentally engaging experience. A major challenge was figuring out how to host the game online as Swing apps are not web-compatible. I used Webswing to make the app web-compatible, then deployed the dockerized app in an AWS EC2 instance.

Use admin as username and pwd as password to play.

3D Render of the Mega Structure Taj Mahal

C++
OpenGL

This Windows application brings the majestic Taj Mahal to life in 3D, allowing users to explore the architectural marvel from numerous viewpoints. With ambient lighting and optional white and blue point lights, the app creates a captivating atmosphere, casting dynamic shadows and illuminating the monument's intricate details. Users can rotate the light sources 360 degrees, enhancing the visual depth and realism of the scene. Additionally, keyboard camera controls let users navigate the 3D space, offering exploration of the structure from different viewpoints.

Smart-on-FHIR Client Portal

Node.js
Vue.js

This client portal application is designed to support FHIR (Fast Healthcare Interoperability Resources) standards, integrating various essential resources like Practitioner, Patient, and Patient Observations. On the backend, it supports secure authentication with Logica EHR sandbox, ensuring reliable access to health data. For added resilience, the app includes a fallback mechanism to a local FHIR server (if available), allowing uninterrupted service when remote server authentication or authorization encounters issues. This ensures robust and secure access to health information, enhancing usability and compliance with FHIR specifications.