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.