QuestQube
Our team, DTC-10, is developing QuestQube, a mobile web application to help gamers discover new games and connect with other gamers using an AI-powered interactive game recommender.
IDE: Visual Studio Code FrontEnd: HTML, CSS, Bootstrap, EJS Backend: NodeJS Node Modules USed: axios, backblaze-b2, bcrypt, cheerio, connect-mongo, connect-mongodb-session, dotenv, ejs, express, express-session, fs, joi, mongoose, multer, and stream Database: MongoDB, BackBlazeB2 AI: OpenAI API Other APIs: IGDB API, BackBlaze API
- .env
- .gitignore
- app.js
- databaseConnection.js
- gpt.js
- package-lock.json
- package.json
- Procfile
- prompts.js
- README.md
- server.js
- Tree.txt
- utils.js
- verifyGame.js
- models/
- user.js
- public/
- datasets/
- games_list.csv
- mediaResources/
- beast.jpg
- cheer.jpg
- city.jpg
- favicon.ico
- ghost.png
- ghosts.gif
- guild.jpg
- initial.png
- loading.svg
- logo.png
- logo4.png
- pacman.gif
- pacman_music.mp3
- searchglass.png
- user.png
- video.mp4
- scripts/
- gameSearchbar.js
- loader.js
- pacman.js
- profileSwapper.js
- scrapeImages.js
- styles/
- 404.css
- community.css
- favourites.css
- finalRecommend.css
- foot.css
- gameSearchbar.css
- index.css
- initialRecommend.css
- login.css
- loginSubmit.css
- nav.css
- profile.css
- promptScreen.css
- recommender.css
- signup.css
- signupSubmit.css
- wishlist.css
- datasets/
- uploads/
- text.txt
- views/
- 404.ejs
- changePassword.ejs
- community.ejs
- favourites.ejs
- finalRecommend.ejs
- forgotPassword.ejs
- index.ejs
- initialRecommend.ejs
- login.ejs
- loginSubmit.ejs
- profile.ejs
- promptScreen.ejs
- recommender.ejs
- securityQuestion.ejs
- signup.ejs
- signupSubmit.ejs
- updatePassword.ejs
- user.ejs
- wishlist.ejs
- templates/
- foot.ejs
- gameSearchbar.ejs
- head.ejs
- nav.ejs
- profile_picture.ejs
- To work on our web app, the developer need to install an IDE such as vscode, MongoDB database, node modules and nodemon.
- The developer also need to download API frameworks for Backblazde and IGDB.
- Yes they do. The developer will need openAI API key, BackBlaze API, and twitch API key.
- The installing order should be language/IDE -> node modules and nodemon -> MongoDB databases -> API frameworks. They should all be downloaded and installed into the same folder.
- In order to configure the project on your local repository, you would need an env file that contains your mongodb host name, your mongodb user, your mongodb cluster password, your mongodb database name, your node session secret, your mongodb session secret, your backblaze account ID, your backblaze API key, your BackBlaze bucket ID, your BackBlaze bucket name, your OpenAI API key, your Twitch client ID, and your Twitch client secret.
- https://docs.google.com/spreadsheets/d/1dqKkkIfp2BC0RXR_0_BQJEKG7jyMMEvfTxMCoOparP8/edit#gid=0
Signing up:
- Click on the "Explore" button on the landing page.
- Fill out ALL fields on the signup form. Ensure that email is a valid email and password matches requirements on screen.
- Click on "Submit" button.
Logging in:
- Click on "Login".
- Enter registered email and password.
- Click on "Submit" button.
Using the recommender:
- Log in to the app.
- Click on the controller icon on the bottom navbar.
- Click on "Begin your Adventure Now" button.
- Click on preferred options for each of the following prompts.
- On the conclusion page, click on "Recommendations" button.
- View recommendations.
- Click on "New game" button for new recommendations.
- Click on "Add to Wishlist" button to add game to wishlist.
Editing profile information:
- Log in to the app.
- The app will automatically take you to the profile page upon logging in. If not, click on the profile icon in the top left of top navbar.
- Click on "Profile Settings" in the menu under the profile picture.
- Edit the fields on the form with your information.
- Click on "Update Profile" button.
Changing your profile picture:
- Log in to the app.
- The app will automatically take you to the profile page upon logging in. If not, click on the profile icon in the top left of top navbar.
- Click on "Choose Image" button to select a file from your phone.
- Picture should be less than 5MB and in .jpg, .png, or .gif format.
- After selecting the image, click on the "Upload Profile Picture" button.
Adding to Wishlist:
- Log in to the app.
- The app will automatically take you to the profile page upon logging in. If not, click on the profile icon in the top left of top navbar.
- Click on "My Wishlist" in the menu under the profile picture.
- Search for a game in the search bar.
- Game will automatically be added to wishlist after selecting game in search bar.
- Click on the "Remove" button to remove game from wishlist.
Adding to Favourites:
- Log in to the app.
- The app will automatically take you to the profile page upon logging in. If not, click on the profile icon in the top left of top navbar.
- Click on "Favourite Games" in the menu under the profile picture.
- Search for a game in the search bar.
- Game will automatically be added to wishlist after selecting game in search bar.
- Click on the "Remove" button to remove game from favourite games list.
User Searching:
- Log in to the app.
- In the top navbar, enter the name of the user in the search bar.
- By searching the user, the app will automatically take the user to the searched user's page.
Connecting to Discord Channel:
- Log in to the app.
- In the bottom navbar, click on the discord icon to be taken to the discord community.
ChatGPT was used to generate some of the code in this project. video.mp4 was taken from https://stock.adobe.com/ca/ loading screen provided by loading.io AI images generated by Lexica.art Pacman gif provided by DeviantArt Ghosts images provided by https://wifflegif.com/gifs/706393-pixel-art-pacman-gif
Creating App: *We used chatGPT to create a base code for us to further modify for many of the pages in our web application *We used Lexica.art in order to generate AI images for our recommender game.
Creating and Cleaning Data Sets: *No AI usage here.
Usage of AI in the app: *OpenAI API was used to generate the story prompts and options in the recommend game. *OpenAI API was used to generate the recommendations at the end of our recommend game.
Lulu Dong: [email protected] Adam Goldsmith: [email protected] Martin Siu: [email protected] Danny Nguyen: [email protected]