p
r
o
j
e
c
t
s

GameRizz

GameRizz is a dynamic, user-centric platform that aims to revolutionize the gaming industry by providing a space where users can discover, comment, and post about the best video games in the industry. It uses the powerful combination of Next.js for frontend, GoLang for the backend, and leverages Auth0 for user authentication. The website offers an intuitive, interactive user interface built with React, and uses Cypress and Jest for robust testing. The project was managed by a team of 4 students. I was responsible for the frontend development and testing.

Skills: Next.js, React, GoLang, Auth0, Cypress, Jest, Tailwind CSS

https://github.com/maxrross/gamerizz

LeHungry

LeHungry is an innovative web platform designed to make restaurant decision-making with friends an enjoyable and hassle-free experience. This platform redefines the way you and your friends choose a restaurant by seamlessly blending your preferences to suggest a perfect dining spot that satisfies everyone's cravings. The technology stack behind LeHungry includes a combination of user-friendly tools. The frontend is powered by React, ensuring a smooth and responsive user interface. For the backend, Node.js manages the server-side operations, while MongoDB efficiently stores and retrieves restaurant data. LeHungry was created by Blake Rand and I in SwampHacks 2022.

Skills: React, Node.js, MongoDB, Firebase, Jest, Enzyme, UI/UX Design

https://devpost.com/software/lehungry

PageRank

PageRank is a command-line based C++ application which applies a simplified link analysis algorithm to rank web page entries based on their in-degrees. Using a graph representation of web pages, it calculates the rank of each page based on the weighted rank of incoming links. The graph of the web pages is implemented using an adjacency list, a choice made to optimize the space complexity of the algorithm. The application ultimately outputs the page ranks for each URL in alphabetical order, after performing the specified number of power iterations to accurately reflect the influence of each web page.

Skills: C++, Graphs, Adjacency Lists, Linear Algebra

https://github.com/maxrross/PageRank

GatorBase

GatorBase is a command-line based C++ application that utilizes an AVL tree data structure for efficient storage and retrieval of student data, including names and UFID numbers. The application makes use of various AVL tree operations including rotation to maintain tree balance, as well as multiple traversal methods to perform operations like insertion, deletion, searching and printing of the student data. The tool ensures optimal time complexity and proper space utilization, and is capable of handling invalid command inputs gracefully, by providing a 'unsuccessful' response.

Skills: C++, BST and AVL Trees, Data Structures and Algorithms, I/O Stream Handling, Catch2

https://github.com/maxrross/GatorBase-AVLTree/

Minesweeper

Recreated the classic Minesweeper game with added functionalities such as visibility toggling and four distinct layout generation options. Developed using C++ and Object-Oriented Programming principles, the project successfully incorporated recursion for essential game mechanics like cascading neighbors and revealing neighboring tiles. The game interface was implemented using the Simple and Fast Multimedia Library (SFML), allowing interactive windows and buttons. A customized Makefile was designed to ensure the program runs consistently across different computers. The game includes original features like scoreboard, randomized mine placement, and flagging tiles, along with new features like a debugging button and two test buttons for initializing the game using preloaded board from files.

Skills: C++, Object-Oriented Programming, Recursion, SFML, GUI, Makefile

https://github.com/maxrross/Minesweeper

Image Processing Program

Created an image processing application using C++ for manipulating images based on TGA files using binary file I/O. The program features eight different Photoshop-inspired blending modes such as multiply, subtract, screen, and overlay, etc. To achieve this, functions were written to read the data from binary files, process the data using these blending algorithms, and write the result into a new binary file. Additional utilities include features for splitting and rotating files, comparing files, and compacting multiple images into one.

Skills: C++, Binary I/O, Image Processing, Photoshop Blending Modes

https://github.com/maxrross/ImageProcessing

Blackjack

Developed a simplified version of the classic game, Blackjack, using Java. The program allows the player to interact through a console-based interface, enabling them to draw cards, hold their hand, view game statistics, or exit the game. The implementation uses control structures to keep track of the state of the game, calculate results, and manage user input. It features a random card drawing function, and incorporates a system for tracking the player's and dealer's hands, wins, ties, and even calculates the percentage of games won by the player.

Skills: Java, Console I/O, Control Structures, State Tracking, Random Card Drawing

https://github.com/maxrross/Blackjack

Connect Four

Built a console-based version of the popular game, Connect Four, using Java. The program allows two players to play against each other on a board of their chosen dimensions. They take turns to place their respective chips ('x' for Player 1, 'o' for Player 2) in a selected column. The game continues until a player has four of their chips in a row or column, or until there are no more spaces left on the board, resulting in a draw. This project involved the use of 2D arrays to represent the game board, control structures for game flow, and methods for inserting chips, checking for a winner, and checking for a draw.

Skills: Java, 2D Arrays, Console I/O, Control Structures

https://github.com/maxrross/Connect4

LinkedList

Implemented a templated doubly linked list class in C++ with a variety of methods. The methods included functionalities for addition and deletion of nodes at both head and tail, insertion of nodes before and after a certain node, insertion of node at a specific index, and searching for a specific node data. The class also supports several helper functions such as printing the linked list in forward and reverse order, clearing the list, and getting the node count. It also includes operator overloading for assignment (=), equality (==), and subscript([]) operations. Proper memory management is ensured with a custom destructor and copy constructor, and error checking for out-of-range indices.

Skills: C++, Data Structures and Algorithms, Linked List, Memory Management, Operator Overloading

https://github.com/maxrross/LinkedList

Gator Raider

Gator Raider is a controller implementation project that enhances the decision-making process in a Pac-Man-style game using the Gator Raider library. It employs various states to define the actions taken by the player in the game. With the help of the AttackerController interface, it manipulates the behavior of the 'Attacker' in the game. The algorithm calculates distances to game items like power pills and vulnerable enemies, and based on these distances, decides the next best action. If enemies are vulnerable, the algorithm ensures the player chases them. If there are no vulnerable enemies and power pills are available, it positions the player close to a power pill until enemies approach. In the absence of power pills, the algorithm guides the player to the nearest regular pill.

Skills: Java, Game Development, AI Decision Making, State Manipulation

https://github.com/maxrross/GatorRaider

Cache Simulation

Cache Simulation is a performance evaluation tool implemented in C++, designed to simulate the behavior of a computer cache. The simulation processes memory accesses in a given trace file, computes the number of cache hits and misses, and eventually calculates the hit rate. The cache configuration, such as size and block size, is flexible and can be adjusted as needed. The simulation supports both Fully Associative and N-way Associative caches, and implements two replacement policies: Least Recently Used (LRU) and First In, First Out (FIFO). It provides a deep understanding of cache operation and can be used to optimize computer memory performance.

Skills: C++, Cache Organization, LRU, FIFO, Performance Evaluation

https://github.com/maxrross/CacheSim

Power Function Calculator in Assembly

A simple Assembly Language program designed to compute the power of one number to another. Users are prompted to enter two integer values, x and y, where y is the power to which x is to be raised. The program performs repeated multiplication to calculate x^y and handles edge cases such as y = 0 (result is 1) and x = 0 (result is 0). It provides a deep understanding of basic assembly operations, memory management, branching and looping in low-level programming.

Skills: Assembly Language, Low-Level Programming, Memory Management, Branching, Looping

https://github.com/maxrross/PowerFunctionInAssemby

Recursive Number Printer in Assembly

An Assembly Language program that performs recursive operations. The user inputs a number and the program will print the numbers from that number down to zero and then back up to the original number. This recursion is handled in assembly with careful management of the stack to store and retrieve return addresses. The program also includes error handling for negative inputs.

Skills: Assembly Language, Low-Level Programming, Recursion, Stack Management, Error Handling

https://github.com/maxrross/RecursiveNumberPrinterinAssembly

UF Research Flask Application for Multi-Vacancy Structure Generation

A Python-Flask web application that provides a user interface for the multi-vacancy structure generator. Users can specify parameters for structure, size, vacancies, pore allowance, and desired output structures. The app then calls a Python script with these parameters and displays the result. The application also provides file downloads from an output directory.

Skills: Python, Flask, Web Development, User Interface, Script Execution, File Handling

Bloblat: A 3D interactive blob chatting application

Bloblat is a web application that provides a 3D interactive environment with a chat functionality. The user interacts with a 3D blob character in the environment, and the chat messages are displayed in a 3D context above the blob character. The application uses THREE.js for 3D rendering and socket.io for real-time chat. The user can click on the screen to move the blob character around, and the chat messages from other users appear in real-time above the blob.

Skills: JavaScript, Three.js, Socket.io, 3D Modeling, Real-time Communication

https://github.com/maxrross/bloblat/

GainGuard

As an intern, I worked on the rehabilitation of GainGuard, a fitness health tracking app. The existing Expo-built app was non-functional, prompting a transition to React Native with Ruby. Key accomplishments included successful module communication via Babel and Tsconfig updates, transition to React Native's image picker and icons, and implementing i18next for language selection in English and Hebrew. I further explored and applied websocket with next.js to augment app functionalities such as friend additions and navigation. Additionally, I introduced login/logout systems, a group creation page, app icons, and enabled user profile switching between 'trainee' and 'trainer' roles. Also, I set up a state management system for user groups.

Skills: React Native, Ruby, Babel, Tsconfig, i18next, Websocket, Next.js, State Management, Login Systems

https://gainguard.io

Hash Table vs Red Black Tree Performance Comparison

Implemented a comprehensive performance comparison between a Red-Black Tree and a Hash Table in C++. The project loads data from a .txt file into both data structures and measures the time taken to insert elements. It also offers an interactive command-line interface for executing search operations, providing a hands-on comparison of the efficiency of these two data structures in a real-world scenario.

Skills: C++, Data Structures and Algorithms, Performance Comparison, File Parsing, Command-line Interface, Red-Black Tree, Hash Table

https://github.com/maxrross/Hash-Table-vs-Red-Black-Tree

Pakudex

Constructed a creature management system, termed 'Pakudex', using Java. The application maintains a list of creatures (Pakuri) with abilities to add new creatures, evolve existing ones, sort them by species name, and retrieve their stats (attack, defense, speed). The Pakudex is also capable of handling capacity limits and can return data about the number of critters it currently stores as well as its maximum capacity. User-friendly error handling is implemented for edge cases, such as trying to evolve or retrieve stats of a non-existing creature.

Skills: Java, Object-Oriented Programming, Data Management, Sorting Algorithms

https://github.com/maxrross/Pakudex/

RleProgram

An implementation of a Run-Length Encoding (RLE) image encoder in Java. The program compresses and decompresses image data based on RLE algorithm. It allows the user to load image data from a file, enter image data as a string, or load a test image data. The user can also display the loaded image, and see its RLE string, Hex RLE data and Hex flat data representations. The program is capable of converting between hexadecimal and byte array representations, as well as encoding and decoding the RLE data.

Skills: Java, Run-Length Encoding, Data Compression, Image Processing

https://github.com/maxrross/RLEProgram

86 Monitor

A Discord bot that monitors the release and availability of Toyota GR86s from dealerships across the country. It uses the discord.js library to send webhook notifications and axios for making HTTP requests. The bot continuously checks for new GR86s and sends an embedded message in Discord whenever a new car becomes available. It uses the official dealership API to fetch new data every 30 seconds.

Skills: JavaScript, Node.js, Discord.js, Axios, API Integration, Webhook

WhoSaidIt: A Quotes Guessing Game

A React-based web application where users guess the author of given quotes. It uses React Hooks for state management, including a 'copied' state for clipboard interactions. Each round, users are presented with a quote and two potential authors. User selections are stored and their score is updated accordingly. Users can share the game through a copy-to-clipboard link feature.

Skills: React.js, Next.js, State Management, Clipboard API, Tailwind CSS

Thousand

A social media application developed in React Native that integrates with a Firebase backend for storage and authentication. The app enables users to take photos using their device's camera and view them in a gallery. It features navigation between various screens (e.g., camera, friends) and leverages Tailwind CSS for styling.

Skills: React Native, Firebase Storage, Firebase Authentication, Tailwind CSS, Camera API, Expo Secure Store

https://youtu.be/ZhWNo3c_uuM

UF Advice

An interactive resource developed for the University of Florida community. Allows users to anonymously pose questions and receive expert advice about the University. Features a user-friendly interface with dynamically generated advice posts, seamless navigation, and engaging UI animations. Integrated with Axios for API requests to retrieve blog data. Uses Next.js for frontend development and server-side rendering, and motion animations with Framer Motion.

Skills: Next.js, React, Framer Motion, Axios, Server-Side Rendering, UI/UX Design

https://www.ufadvice.com/

Vero for Verizon

Vero is a chatbot designed to enhance customer service for Verizon customers. It uses artificial intelligence to provide quick and accurate responses to customer queries, and is integrated with a mock Verizon API for real-time data retrieval about customers. Vero was developed in a team of 2 students and was a finalist in the UF AI Days Hackathon.

Skills: React, Node.js, Express, MongoDB, Heroku, UI/UX Design

https://devpost.com/software/vero-for-verizon