HTML/CSS | Python | JAVA | MySQL
This project is an extension from a Database Design class where my pair programming partner and I leveraged MySQL to create a database to store national average data for the user's carbon footprint calculation and a copy of the reported values for each user. The database uses trigger methods to autogenerate the report. This database was then developed into a simple Java application (using the console). To further enhance this project, I spent time outside of class to learn HTML/CSS and Python to create a website and improve the user-interaction side of this program. The website is currently still being developed!
JAVA | Java Swing
Image Processor is a project that impelments the SOLID principle and Model, View, Controller (MVC) design pattern learned in Object Oriented Design course. The aim of the project was to create a fully functioning image editor application in Java using the Java Swing library, while also practice pair-programming and following object oriented design methods. The application allows functions such as importing, saving and exporting image files, adding image filters (such as mosaic, downscale, blur, sharpen) and perform color transformation (like sepia and greyscale). To practice the SOLID principles, the program is written in various interfaces and classes that are specific to their purposes; this made adding new features and making enhancements more convenient and less troublesome throughout the project. The image on the left is the filter mosaic applied using the image editor! Click here to view the USEME file.
JAVA
FloodIt! is a simple yet interesting strategy game created using Java and a Java image library specifically made for this course. The purpose of the game is to flood the whole board with one color in less than the allowed steps and time. This program practices the use of dynamic dispatching and interfaces to improve code effeciency and modifiability. The animation on the left shows how FloodIt is played!
JAVA
MazeGame is a Java desktop game that uses Kruskal's algorithm to generate mazes by selecting an edge of a cell by random and connecting the cells if they are not already connected by a path. To provide the users with solutions for the maze, the program implements breadth-first search (BFS) and depth-first search (DFS) to find the path from the beginning point to the destination cell in the board. If the user can't solve the maze, they can either press "b" to find the path using breadth-first search or press "d" to find the path using depth-first search from where they left off . The animation on the left shows an example of Mazegame!
JAVA
Mastermind is a code-breaking game developed using Java. The program generates a random set of codes, represented by different-colored circles, and asks the user to guess the colors of the circles (code). The user has at most 10 tries and for each try, they will be receiving two numbers in which the first number represents the number of codes with both the correct order and color, and the second number represents the number of codes that have the correct colors. This project practices dynamic method dispatching and designing codes in interface and class structures. The animation on the left shows an example run of this game!
HTML/CSS | JavaScript
This portfolio website is made from scratch using HTML/CSS and JavaScript to display past projects, resume and experience. It is resiable and responsive to various window sizes and includes simple yet cool animations and effects. Through this project, I was able to not only learn new languages (HTML/CSS and JavaScript), but also got to develop my skills in self-learning and research. I was able to strengthen my skills in planning out timelines and organzing design processes to effeciently build this website.