Our F2A Games website is inspired by G2A.com. We were inspired by how many complex features it takes for E-Commerce websites to function and we wanted a way to challenge ourselves.
What it does
Our Website specializes in selling gaming products by the use of redemption keys. it contains many types of features from PayPal payment integration, Facebook, Google, and PayPal Oauth, Node-Cache, Node-Mailer, Discord Livechat, 2FA, and auto-completion of search as well as Voice Recognition and Amazon S3 Bucket that contains our game images.
How we built it
Our website was built at the start with only basic features like searching of games by their EXACT name, querying the database for ALL of the games that are inside, our database queries also had N+1 query problems which would, in turn, cause the server to run very slowly as well as constantly querying the database with each user that enters the website. and through time, we solved most of the problems that we were facing as well as implemented newer and advanced features to help boost our server's performance and usability.
Challenges we ran into
The challenges I ran into were with the two-factor authenticator when I first started implementing the two-factor authenticator. It was actually using google authenticator to verify that the user is entering a valid secret code. One good thing about it is that it is not too difficult to implement. However, the downside to it was that the user has to download the Google Authenticator on their mobile phone, and on top of that they still have to scan a QR code. This greatly affects the usability of the feature and so one way to solve this challenge was to implement another way of verifying the user and scraping all of what I had done for the 2FA. I overcome it by auto-generating random codes, caching it, sending the email to the user, validate then verifying.
It was a bit challenging for me to implement the google OAuth as I had never coded OAuth before and I had no idea where to even begin. I had a hard time understanding the different URLs I needed and how to retrieve them. Eventually, after reading through examples and tutorials online I managed to successfully implement the google OAuth into our website. I learned that I could do it if I put in enough effort and that concentration is key in figuring out different sets of codes and modifying them to adjust to our website’s scope.
One challenge I faced is the Facebook OAuth login cannot work on localhost so I need to test it in the Heroku app and I need to spend more time waiting for the deployment on the Heroku. I learn that coding needs patience.
Accomplishments that we're proud of
Turning the website into what it is right now. From a website that was barely functioning and filled with many incomplete features, performance issues, and bugs. We managed to turn it into a website that is functional, implemented advanced features, improved performance, and bugs minimized.
What we learned
One learning key my team learned is that communication and being considerate of one another makes things a lot easier for the team and in the process of our work. By discussing and hearing each other’s opinions we were able to make decisions that we agreed would be best for our website such as the features we wanted to add and how we want to implement them. By being considerate we are able to forge a stronger bond as a team and be able to voice our opinions more confidently as we know that the rest will listen and take them into consideration.
What's next for F2A Games Ecommerce Website
We want to further improve the website design, features, and code.