GameKnight is a Game Library web application which can store and manage your game library across different platforms. The application lets gamers filter their game libraries to find and remember games from their past and find the games they want to play in the future.
The application is powered using Django and connects to a backend database which can be configured in the settings. MariaDB/MySQL was used in application testing, however other databases should work if connected to Django in settings.
This project was created for the Data Management System Course
- Jad Eletry
- Abbas Rizvi
- MohammadHamza Asif
- Shahzabe Mahmood
- Daniel LoPresti
Ensure dependencies are installed with current version or newer
Python 3.9.5
pip 21.3.1
Python packages should be managed in virtual environment.
In this project pipenv was used, though python virtual environments can be used.
If following this guide ensure latest version of pipenv is installed using the command:
pip install pipenv
Clone github directory and open src folder
$ git clone https://github.com/JadEletry/GameKnight.git
$ cd src/
Install required packages via pipenv
pipenv install
In order to use this application you must run the virtual environment and execute the runserver command
$ pipenv shell
Before running the application, the src/env needs to be filled to allow the appropriate connections.
Find the database connection information for whichever database connection you are using.
This application was developed for a MariaDB backend, however MySQL should also be compatible. Other databases have not been tested, however so long as they are connected through Django, they should also work.
A secret key can be generated by Django through running the following command in the python virtual environment:
python manage.py shell -c 'from django.core.management import utils; print(utils.get_random_secret_key())'
Save this generated key in the SECRET_KEY field.
This project uses the RAWG API.
In order to use this application you must get an API Key from their website
Inside the virtual environment run:
$ python manage.py runserver
The application should now be available at: http://127.0.0.1:8000/library/home
The Library page allows users to view their saved games in table format. Users can also filter through their saved games through a combination of genre, platform and search selections. Users can then access the linked game details page which provides further detail about a single game.
The details page provides details about a single game with items such as the associated tags, genres and platforms. Users can also access a detailed description about the selected game.
The save game page links to the external RAWG API to find and list games. Users can select games to add to their library either through the main page or using the search function implemnented through RAWG API.
GameKnight also provides an API which can be used to retrieve information regarding your library in a standard REST format via Django Rest Framework
This can be accessed at http://127.0.0.1:8000/api/game
information regarding a specific game can be found at http://127.0.0.1:8000/api/game/GAME_ID, where GAME_ID is the id for the requested game


