Reddit bot that responds to comments in the PlayTheBazaar subreddit about item and skill information. The bot uses HowBazaar to get item/skill information and uses PRAW to interact with Reddit. The user can trigger the bot using [[item]] or [[skill]] in their comments. The bot is hosted on a Google Cloud VM.
Animation of the Pittsburgh Regional Transit (PRT) bus routes. GTFS data from PRT is used for route timing and the animation is built with pygame. Features include customizing the time range and map for the animation and also allows the user to use their own GTFS data for the animation.
An immaculate grid game for CS:GO. Immaculate Grid is a game featuring a 3x3 board with a clue corresponding to each row and column. The user's goal is to select a player in each grid spot such that the clue for each row and column in that grid spot is satisfied without repeating any players. Data from the CS:GO players are scraped from HLTV using JavaScript and the puzzles are generated using a python script and are stored on a MongoDB database. The site is built with Express and EJS and is stored on Render.
Learning the Express Way is a website that teaches the basics of web development and is for beginners and intermediates. It was built as a tool to help students in TJHSST's Web Application Development class. The website was created in the Summer of 2022 and is built with Gatsby. The lessons are written in Markdown and are converted to HTML using Gatsby's MDX plugin, allowing other users and students to easily create and add their own lessons onto the site.
A predicting game inspired by FiveThirtyEight's NFL Forecasting game. On the site, users predict the outcome of professional CS:GO matches and earn/lose points based on how confident their predictions are. A more confident correct pick earns more points than a less confident correct pick, but a confident incorrect pick loses more points than a less confident one! Users can log in using their Steam account on the website through the Steam OpenID library. Users can also compare their picks with other users through the leaderboard feature. Custom leaderboards are also a upcoming planned feature. The site was built with Express and EJS with user data being stored in a MongoDB database.
Note: The site was originally hosted on Render, but is currently down to host my other project, CSGODOKU.
RateMyTJ was my Senior Research project for the Mobile and Web Application Senior Research Lab. Inspired by Faculty Course Evaluations found in many colleges, the site allows students to rate their teachers and classes on different statistics such as difficult, enjoyment, and workload. It is aimed at helping students make more informed decisions when choosing classes and also aims at fixing many of the issues found on the current TJHSST course catalog. The site was built with Express and Handlebars with data being stored in a mySQL database. The site is hosted on TJHSST director and supports login with Ion authentication through OAuth.
The DPC Simulator allows users to try different scenario and 'what if' situations in the Dota Pro Circuit. Users can simulate the DPC season by picking their winners and losers and view how each match affects the chances of each team from making the major or getting eliminated. The site was built with pure Javascript and uses the OpenDota API to get data on the teams and matches. The site is hosted on Netlify.
I helped host TJCTF 2022, a CTF (capture-the-flag) competition consisting of over 1100 players and 300 teams. I designed the TJCTF webpage and wrote a few challenges for the competition.
Note: The Github link links to the a repository to all of the problems from TJCTF 2022. My challenges are found at 'misc/cheapest-cookies-2', 'web/game-leaderboard', 'web/ascordle', and 'web/portalstrology'.
An AI that plays Othello (also known as Reversi) pretty well. The AI was built in Python and uses a minimax algorithm with alpha-beta pruning to search for the best move. The AI was an assignment for my artificial Intelligence class in 2021 and won the TJHSST Othello Tournament in 2021.
Note: For Honor Code Reasons, my Othello code is unfortunately not public. However, you can play against the AI in the link below and selecting on the '🌟 T-2021 2022alam' player.
fresh is a tool that is used to autonomously record and display locations of trash found outside, providing powerful and valuable analysis tools for researchers, volunteers, and environmentalists alike. The mobile app was built with Flutter, backend with Express and MongoDB for website & API, and the frontend was built with Gatsby. The project was built for HackTJ 8.0 and won Best Mobile App.
A web application that uses the Hypixel API to track prices of items in the Skyblock Bazaar. The site was built with Javascript and uses Chartjs to display prices over time.
App built using Javascript that allows users to alter and add race results to see how F1 standings would change. It features drag and drop capabilities to aid users in changing race results.
Python program that takes in the size of a crossword puzzle, the number of blocking squares, and a word list and outputs an American style crossword puzzle. Built for my Artificial Intelligence class to help students visualize their crossword puzzle outputs. To display the GUI, tkinter was used. To generate the crossword, the python program used constraint satisfaction to generate crossword puzzles efficiently.
Note: Unfortunately, the code is not publicly available. However, you can contact me if you want more information.
Taking in a sudoku puzzle input of any NxN (minimum 9, maximum 16) size, the program will output a solved sudoku puzzle based on the input(unless the puzzle is not possible, which will cause the program to output that the puzzle is not possible. The GUI was built with tkinter in Python and the solver used Python with constraint satisfaction and forward looking to efficiently solve sudoku puzzles. The program was built as a helpful addon for students for the Sudoku solving assingment in my Artificial Intelligence class.
Note: Unfortunately, the code is not publicly available. However, you can contact me if you want more information.
andrew.lam
on Discord or andrewlamm04@gmail.com
through email.