Language: PHP // Created On: March 13th, 2015 // URL: https://lfh.cxkes.me/ // Status: Finished (minor fixes here and there)

About

GTA: Online LFH was inspired by the very successful Destiny LFG site that was created for avid players of Bungie's newest game, Destiny. With Rockstar finally releasing the long awaited Heists mode for GTA: V, there was a new requirement to have 4 player teams. Not everyone has three friends to play with, unfortunately. That's when Destiny LFG came to mind, and I thought: "Why not make one for GTA?" That's how it started. By utilizing the knowledge I had of PHP, and Laravels gracious framework, I was able to throw up GTA: Online LFH in about 4 hours. Of course, some initial development was needed after the initial launch to accompany the needs and wants of the people using it.

A simple bulletin board type website; post your game session details and wait for someone to contact you. Users of this site can easily get in touch with others who're wanting to do the same Heists mission. Not only was it compensating for the somewhat poor matchmaking system in GTA: V, it was helping build better Hiests teams, and was even able to bring some new friends together.

Behind The Scenes

GTA: Online LFH is powered by Laravel 4.2 and a few open source packages. After a listing was submitted, we would save it to our database and display it for other users when they came to visit our site. I suppose I'll mention some of the stuff that goes on in the background with the website.
liebig/cron
After a few days of the site running, I noticed that there was a large volume of listings coming in. Quite a lot more that I expected. So, with saving disc space, and keeping the site running fast, I decided to set up a Cron job to remove listings that are older than two hours. This was rather simple to add to the site. Thanks to Laravel's timestamps, it was very easy to compare them to the current time.
LFHBLacklister
LFHBlacklister is the custom class that I wrote in order to replace the need for pragmax/firewall. With the custom written class, we're able to blacklist (ban) an IP address from accessing our website, or a specific username from posting a listing. Both of these became something that we needed to have as the amount of shenanigan listings only seems to increase.

The original need for this functionality on LFH was due to an unknown individual posting rather offensive material in his listings. It's proven very effecting at culling users who do not wish to cooperate with other members, and those who blatantly violate our websites Terms of Use.
koraktor/steam-condenser
This was probably the last addition that I made to this project that was needed. When GTA: V PC launched, Steam users would also be playing Heists now. You can imagine that if finding players on a console would be hard, PC must be even harder. So with koraktor/steam-condenser, I was able to integrate Steam links directly into the site. When a user submits their username as a PC player, our backend will use this package to return the users steam64 ID and then associate it with the listing. Using the users steam64 ID, we were able to make direct links to their Steam profiles, and create a Steam application link. Meaning that clicking the add friend button would open Steam and add the user.