Martin Estrin Programming Projects

Stock Trading Site

Languages & Technologies Used: Java, MySQL, JavaScript, Java Servlets, Apache Tomcat, HTML, CSS

This web application pulls live stock data via the Finnhub API. Users can look up the share price (and other relevant information) of any stock listed on the NYSE or Nasdaq. After making an account on the site, users can buy and sell shares. User portfolios are stored in a MySQL database, enabling users to view all the stocks in their portfolio, check their current balance, and see the return on each of their investments.

Doublet Game Solver

Languages & Technologies Used: Python, Django, JavaScript, C++, HTML, CSS

This web application uses the A* Search Algorithm to solve the Doublet Game (also known as Word Ladder). Users define a "starting word", "ending word" and "word bank." Using only words from the word bank, the program transforms the starting word into the ending word — only changing one letter at a time — with the fewest possible amount of transformations.

Live On-Demand Tutoring Service

Languages & Technologies Used: Node.js, NoSQL (MongoDB), HTML, CSS

This project is a live, on-demand peer tutoring system. It is designed to allow students to be tutored by qualified individuals in various classes. There are two sites: the tutor dashboard allows tutors to sign up for the platform, and the customer dashboard allows students to get tutored in a particular subject. The data surrounding tutors and customers is stored in a MongoDB NoSQL database. Using Node.js, I implemented an algorithm that pairs students with a qualified tutor who is online and available.

Other Projects:

AVL Tree

I implemented an AVL Tree in C++, enabling logarithmic worst-case runtimes for key operations such as add, remove and update. The implementation also uses C++ templates, enabling support for all types.

RSA Encryption System

I implemented a public key encryption system in C++, following the RSA algorithm.

BASIC Interpreter

This C++ program takes in a plain text file containing code in the BASIC programming language, interprets it, and prints the output in a new plain text file.