-
Notifications
You must be signed in to change notification settings - Fork 0
Individual Contribution Report for Practice App Halis Ayberk Erdem
-
Learning Flask API and Git #153
-
Researching and implementing RAWG API#167
-
Creating Tests For RAWG API 223
-
Creating Meeting Notes #19 186
RAWG API is a RESTful API that provides access to a vast database of video game information. It allows developers to access data related to video games, including game titles, genres, platforms, release dates, ratings, reviews, screenshots, and videos. The RAWG API provides a comprehensive and flexible set of endpoints that enable developers to retrieve and manipulate data in a variety of ways. Developers can use the API to create video game-related applications, websites, or services. Additionally, the RAWG API supports authentication via API keys, which enables developers to keep track of their usage and protect their account information. I used two endpoints which I specified below.
https://api.rawg.io/api/genres
- Name: RAWG Genres
- Route: /api/genres
- Description: This endpoint returns an array of objects, each representing a game genre. The objects contain information such as the genre "count": 0, "next": , "previous": , "results": [ {} ]
https://api.rawg.io/api/genres/{id} This URI was used to retrieve information about a specific game genre, where {id} is the ID of the desired genre.
- Name: RAWG Genre by ID
- Route: /api/genres/{id}
- Description: This endpoint returns an object representing a single game genre. The object contains information such as the genre ID, name, slug, and other details specific to the requested genre ID.
After the user clicks on the "get genre information" button on the website, they will be directed to a page that displays all the available genres for games. This page will have a user-friendly interface that allows users to easily browse through the various genres and select their favorite one.
Next to the name of each genre, there will be a count of the total number of users who have marked that genre as their favorite. This will help users to see which genres are more popular and make an informed decision when selecting their own favorite genre.
To select their favorite genre, users simply need to click on the heart icon next to the name of the genre and add genre to favorites button. This will mark the genre as their favorite, and the count next to the genre name will be incremented accordingly.
When users click on the image of a particular genre, they will be directed to another page that provides a detailed description of that genre. This page will include information such as the history of the genre, the key characteristics that define it. This information will help users to gain a deeper understanding of the genre and make more informed decisions when selecting games to play.
-
remove_tags(text): This function removes XML tags from the given text and returns the cleaned text.
-
FavoriteGenre: This is a SQLAlchemy database model for the favorite game genres. It has three columns: genre_id (integer), genre_name (string), and time_id (big integer).
-
get_genres(): This function has two routes, one for GET and another for POST requests. If the request method is GET, it sends a request to the RAWG API to get a list of all game genres and the number of favorites for each genre. It then renders the get_genres.html template with the genres and favorite counts. If the request method is POST, it gets the selected genre ID from the form, retrieves the genre name using the ID, creates a FavoriteGenre object, adds it to the database, and redirects back to the get_genres page.
-
get_genre_name_from_id(genre_id): This function takes a genre ID and sends a request to the RAWG API to get the genre name using the ID. If the request is successful, it returns the genre name. Otherwise, it returns None.
-
get_genre_info(id): This function takes a genre ID and sends a request to the RAWG API to get the detailed information about the genre. It removes the XML tags from the genre description and renders the get_genre_info.html template with the genre information.
-
Headers = {'Date': 'Fri, 12 May 2023 19:25:19 GMT', 'Content-Type': 'application/json', 'Transfer-Encoding': 'chunked', 'Connection': 'keep-alive', 'Cache-Control': 'no-cache', 'allow': 'GET, HEAD, OPTIONS', 'expires': 'Fri, 12 May 2023 20:08:02 GMT', 'path': 'api-genre-list', 'x-frame-options': 'SAMEORIGIN', 'vary': 'Origin', 'content-language': 'en', 'api-user': '678665', 'x-cache-status': 'MISS', 'x-server': 'api_rawg_io', 'CF-Cache-Status': 'DYNAMIC', 'Report-To': '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=FF2ouRAjDeVw%2Fr7QGIheNwsqN135sIO64PbX0wGqF%2B70JM5J2F8VPbLSjgsPQGHVx%2Flbwk%2FrCeFnO1Tlp0uT6JzziJMt4PEM4oRtOrI4qb2o8DIwkAmGIiEmlrPl"}],"group":"cf-nel","max_age":604800}', 'NEL': '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}', 'Strict-Transport-Security': 'max-age=0; includeSubDomains; preload', 'Server': 'cloudflare', 'CF-RAY': '7c650c02288192dd-IST', 'Content-Encoding': 'gzip'}
-
Json =
- Status code = 200
As someone who has not previously implemented an API, it was a bit challenging for me to use one. Similarly, working with templates was also a challenge for me. Additionally, my lack of experience using Git made collaboration difficult, but thankfully my teammate, Erkam, provided me with assistance
- Ahmet Kudu
- Beyzanur Bektan
- Emre Sin
- Emre Türker
- Erkam Kavak
- Halis Ayberk Erdem
- Hüseyin Çivi
- Ömer Bahadıroğlu
- Ömer Talip Akalın
- Sena Özpınar
- Süleyman Melih Portakal
- Umut Demir
- Muhammet Mustafa Küçük
- Scenarios
- Mockups
- Meeting #1 - 03.03.2023
- Meeting #2 - 10.03.2023
- Meeting #3 - 12.03.2023
- Meeting #4 - 13.03.2023
- Meeting #5 - 19.03.2023
- Meeting #6 - 24.03.2023
- Meeting #7 - 26.03.2023
- Meeting #8 - 30.03.2023
- Meeting #9 - 02.04.2023
- Meeting #10 - 04.04.2023
- Meeting #11 - 05.04.2023
- Meeting #12 - 06.04.2023
- Meeting #13 - 07.04.2023
- Meeting #14 - 08.04.2023
- Meeting #15 - 09.04.2023
- Meeting #16 - 27.04.2023
- Meeting #17 - 30.04.2023
- Meeting #18 - 04.05.2023
- Meeting #19 - 07.05.2023
- Meeting #20 - 11.05.2023
- Meeting #21 - 05.10.2023
- Meeting #22 - 11.10.2023
- Meeting #23 - 16.10.2023
- Meeting #1 - 21.10.2023 (Backend)
- Meeting #1 - 22.10.2023 (Frontend)