Recent Projects

Virtual Stock Market Game

  • Vue.js
  • Java
  • OOP
  • JavaScript
  • APIs
  • Agile

What it is: A virtual stock market game that allows users to compete with their friends to see who can make the most money in the stock market in a given period of time. It was built with an Agile scrum team of fouras a final capstone project at Tech Elevator's 14 week coding bootcamp.

  • Register: As a Player, I can register with the system so that I can log in and play.
  • Login: As a Player, I can login so that I can play.
  • Create Game: As a Player, I can create a new game and I will assigned as the Organizer for that game. A game will have an end date when the game will finish and a name.
  • Invite Players to Game: As an Organizer, I can invite existing Players into my game. They will be given an initial $100,000 to invest.
  • View Games: As a Player, I can see a list of all my current games.
  • See Leaderboard: As a Player, I can see the running total of the portfolio value of all the other players in this game.
  • Buy a Stock: As a Player, I can buy a stock. I can specify the trade in dollars or in shares.
  • Sell a Stock: As a Player, I can sell a stock. The value of the trade will be added to my available cash immediately.
  • See Stocks: As a Player, I can see my available cash and the status of all of my current stocks.
  • Game End: When the game end date is reached, the system will sell all outstanding stock balances for all the Players in the game and prevent anymore trades from happening. The winner is the Player with the most cash.
  • Search for Stocks: As a Player, I can search for and research stocks on the site so that I can pick a good one to buy.
  • Countdown Timer: As a Player, I can see a timer that displays the time remaining in the game.
  • See Trades: As a Player, I can see all of the trades that I’ve done in the game.
  • Visualizations: As a Player, I can see on a graph how my investments are doing and how my cash has changed over time.

How we built it: The project uses Java and Spring Booton the back end and Vue.js on the front end. We used Finnhub API for real-time stock data and ECharts library to display graphical data.

Faith Family Empowerment Center

  • Front End
  • Responsive Web Design
  • JavaScript
  • Semantic HTML
  • CSS

What it is: Faith Family Empowerment Center is a nonprofit organization that serves families in the Dallas/Fort Worth area. I designed and developed a responsive site to improve user experience and increase donation revenue. Users are able to:

  • Choose an amount to donate
  • Donate specified amount via PayPal
  • Learn about the organization and the services they offer

TEnmo Money Transfer App

  • Java
  • OOP
  • RESTful API
  • Spring Boot
  • PostgreSQL
  • JDBC
  • Integration Testing
  • Pair Programming

What it is: TEnmo is a command-line program that allows users to send, request, approve, and reject 'TE Buck' transfers. I built this with a partner as a mini-capstone as part of my curriculum at Tech Elevator's 14 week coding bootcamp. Users are able to:

  • View their current balance
  • Send money to another TEnmo user
  • Request money from another user
  • Approve/reject transfer requests
  • View a list of past tranfers and their details

How we built it: On the server side, we used Spring's JdbcTemplate to send queries to the PostgreSQL database to fetch, add, or update information. We used the Spring MVC framework to open up endpoints for the client-side to access using RestTemplate.

The client displays relevant data and interacts with the server based on user input. We created custom exceptions to validate user input and Integration tests to ensure everything runs smoothly.

Euchre Card Game

  • Java
  • OOP
  • JUnit Testing
  • MVC design pattern
  • Test Driven Development

What it is: Euchre is a 4 player trick-taking card game similar to Bridge. I built it for fun because it's often hard to find four players who know how to play the game, and its even harder to explain the rules to someone who hasn't played before (if you're up for a challenge, you can read the official rules of Euchre here).

In my version, up to four players can play a game against the computer in the command line. While playing, they can:

  • Select the number of players who wish to play against the computer
  • View their cards and decide whether they want the dealer to pick up the top card or pass
  • If applicable, view their cards and decide whether they want to call trump or pass
  • Play cards in a trick based on what has already been played
  • See who won each trick and, subsequently, who won the hand
  • View score updates after each hand is played
  • See the winner of the game once the game is over and a team has reached 10 points
  • Once the game is over, decide whether they want to play again or end the program

How I built it: I built Euchre following the MVC design pattern. Using Java and Object oriented programming principles, I was able to separate the data and logic from the display of it. Right now it is a command line program, but it is built to be extendable so that the logic can be reused with a revamped front end. I used Test Driven Development techniques to build the program so I could ensure that each additional piece of logic did what it was supposed to.

Virtual Vending Machine

  • Java
  • OOP
  • JUnit Testing
  • File I/O
  • Pair Programming

What it is: A vending machine CLI application that allows users to feed money, select products, and finish their transactions to receive change. I built this pair-programming style with two others as part of a mini-capstone project at Tech Elevator. The application:

  • Displays a menu when started, allowing users to view items in the machine, purchase an item, or exit
  • Allows users to repeatedly feed money into the machine in valid, whole-dollar amounts
  • Allows users to select a product to purchase based on its unique slot identifier
  • Informs users if the selected product is out of stock or if they do not have enough money to purchase it
  • Dispenses a product (if valid product is selected) and informs the user of how much money they have remaining
  • Allows user to finish transaction, which dispenses change in nickels, dimes, and quarters
  • Logs purchases to a file to allow audits and prevent theft
  • Has a hidden option on the main menu that shows the total sales since the machine was started

How we built it: We used OOP principles to design of the project, then implemented our plan using Java. We used the Scanner class to read in inventory from a CSV file, instantiating objects of the relevant class that stores price, name, and slot information. A VendingMachine class contains all the logic for inventory management and feeding and dispensing money, and another Scanner object allowed us to read and respond to user input in the command line. We also wrote JUnit tests to ensure all the logic worked as intended.

IP Address Tracker Hub

  • Responsive Web Design
  • JavaScript
  • JSON
  • APIs
  • Semantic HTML
  • CSS

What it is: The IP Address Tracker Hub is a challenge from Frontend Mentor that I completed in order to practice interacting with external APIs and building responsive apps. Its an app that allows users to look up the location, timezone, and ISP of IP addresses and domains. Users can:

  • View the optimal layout for each page depending on their device's screen size
  • See hover states for all interactive elements on the page
  • See their own IP Address on the map on the initial page load
  • Search for any IP addresses or domains and see the key information and location

How I built it: After building the basic design with HTML and CSS, I used the LeafletJS map API to display a map. On page load, JavaScript retrieves the IP address data of the website visitor using the IP Geolocation API by IPify. The returned JSON string is parsed to pull out and display relevant information to the screen and reposition the map. Each time the user searches, the process is repeated to show them updated details for that IP address or domain.