Building a Scalable and User-Friendly Game Discovery Platform: A Technical Deep Dive into findgames.vercel.app
Tags: javascript, technicalwriting, gamedev, html
Published: 2023-05-23 18:09:05

Earlier this year, I decided to join the technical writing community not only to join but to assist in the breakdown of complex problems or information to be simpler and easier to understand.

Findgames is a project built by my friend @Innocen36334701(Twitter handle), He's a very hardworking guy, and despite being in the university, he still got some time to develop some real-life projects.

 Below is the link to his GitHub profile and the source code for this project http://github.com/IdokoInnocent.

## Findgames 

It is a web application built for users to discover and find games based on different criteria.
The app provides a platform for users to search for games by genre, release date, and other relevant filters.
 It also offers a user-friendly interface and high game search capabilities.

## Technology 
The following are technologies used in building the Findgames web application:

- HTML: short for Hyper Text Markup Language, is the standard markup language used to create the structure and content of webpages. To learn more about HTML, kindly check out these free resources [here](https://www.udemy.com/course/hmtl5-training/?utm_source=adwords&utm_medium=udemyads&utm_campaign=DSA_Catchall_la.EN_cc.ROW&utm_content=deal4584&utm_term=_._ag_88010211481_._ad_535397282061_._kw__._de_m_._dm__._pl__._ti_dsa-406594358574_._li_1010294_._pd__._&matchtype=&gbraid=0AAAAADROdO3N1F_GSyZyTlpaJ-ezp02X9&gclid=EAIaIQobChMI04n39tjy_gIVhbHtCh3drwrYEAAYASAAEgKSR_D_BwE).

- CSS: it stands for Cascading Style Sheets. It is a style sheet language used for describing the presentation and styling of HTML or XML documents, including colors, layouts, fonts, and other design elements.
To learn more about CSS, check out these free resources [here](https://www.freecodecamp.org/news/tag/css/).

- Javascript: is a dynamic programming language primarily used for creating interactive web pages and applications. 

- React: is an open-source JavaScript library for building user interfaces (UIs) and components. 

There are various resources and tutorials to learn and master JavaScript and React. Check these articles below to start your web development or app journey [here](https://alison.com/tag/javascript).

- API: Stands for Application Programming Interface, is a set of rules and protocols that allows different software applications to interact and communicate with one another.

- Vercel: is a hosting platform.

## The architecture of the technology. 
It is a software application that refers to the overall structure and organization of the system. It defines how the different components of the application are arranged, how they interact with each other, and how the system achieves its intended functionality.

The following bulleted lists are how the technologies above interact and communicate together to form the web application:

- The front end of the app is built using HTML, CSS, and JavaScript.

- The web-application leverages React (JavaScript library) for building the app user interface components.

- It interacts with external APIs to retrieve game data, such as the RAWG Video Games Database API (https://api.rawg.io/).

- The app is deployed on the Vercel hosting platform, which enables seamless deployment and scalability.

**_Installation and Setup:_**

- The app features a clean and intuitive user interface, designed to provide a smooth user experience.

- The homepage displays a search bar and various filter options for users to refine their game search.

- Search results are presented in a visually appealing and informative manner, showcasing game titles, release dates, and platform information.

- Users can click on a game to view more details, including descriptions, screenshots, and additional information.

**_Features and Functionality:_**

- Game Search: Users can enter keywords, genres, platforms, or other filters in the search bar to find games matching their criteria.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xxslp7x29p8eaarhwnqn.jpg))

- Filtering: Users can refine their search results by applying filters such as genre, platform, release date, and ratings.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8wnf2as2kcnwi9kg5bcl.jpg)
- Game Details: Users can view detailed information about a particular game, including its description, screenshots, and release date.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/82prpy1y4wi18n2ky4yn.jpg)**_APIs and Integrations:_**

- The app retrieves game data from the RAWG Video Games Database API.

- It sends HTTP (Hypertext Transfer Protocol) requests to the API, specifying search parameters and filters, and receives JSON responses containing game information.

- The app processes and formats the received data to present it in a user-friendly manner.

**_APIs and Integrations:_**

- Findgames integrates with the RAWG Video Games Database API to retrieve game information.

- It utilizes API endpoints to search for games, retrieve details, and fetch additional related data.

- Findgames may use authentication mechanisms, such as API keys, to access the API securely.

**_Performance and Scalability:_**

- Findgames is hosted on the Vercel platform, which offers scalability and ensures optimal performance.

- Caching mechanisms may be implemented to improve response times and reduce API requests.

**_Security:_**

- The app follows best practices for web application security, including secure communication protocols (HTTPS) and input validation.

- If user accounts or personal data are involved, appropriate security measures should be implemented, such as encryption and secure authentication.

## Conclusion

The following are two key advantages of technically documenting your projects:

1. Technical documentation enhances knowledge transfer and collaboration within teams by capturing and sharing critical project information effectively. It enables an understanding of objectives, requirements, and technical aspects for team members, regardless of when they join. This reduces dependence on specific individuals and promotes collaboration. Additionally, it ensures continuity during personnel changes by preserving and providing access to project knowledge.

2. Technical documentation enhances efficiency and productivity by providing quick access to essential details, promoting consistency, streamlining workflows, and aiding troubleshooting.

I'm open to collaboration to help document your project.