Skip to content
308butterfly edited this page Mar 14, 2021 · 52 revisions

Welcome to TriviaRank!

What is TriviaRank?

Trivia rank is a platform to rank your trivia skills. Play different trivia games with your friends and get ranked amongst each other and globally.

What can you do with TriviaRank?

  • Create your own account
  • Play trivia sessions with other users
  • Get ranked on a leaderboard
  • Make friends (stretch goal)

Technologies used in implementing TriviaRank

  • Angular
  • C#/.NET5.0
  • EF Core
  • Azure Pipeline
  • Azure Database

Basic Features

  • Create account
  • User Authentication
  • Create trivia games with other users
  • View leaderboards
  • Adding friends
  • Messaging friends
  • Making games public/private
  • Choosing game modes and and inviting other friends

Future Features

  • Group messaging
  • User account balance and winning prize money
  • Predictive features

Workflow

A user can create an account or enter their account info into the TriviaRank homepage to access it. From there they are greeted with a page that shows the current leaderboard which is a list of usernames along with their respective total points. There are also options to "view user statistics", "create a new trivia game", "view games completed", "view open games", "games invited to", "view friends", "update settings" or exit the site.

Selecting the "view user statistics" will show the user their details, the number of games won, and the statistics of a chosen answer.

Selecting "create a new trivia game" will allow the user to create a new trivia game where they can select the difficulty level of the trivia questions, set the game to be public or private, and choose the number of questions. After creating a new game the user is brought to the "view open games".

Selecting "view open games" will allow a user to join a trivia game. From there they will be able to select their answers to the trivia question by clicking on their respective choice. Once the game is completed the user is brought back to the view open games screen.

Selecting the "view games completed" option will show a search box that will display the results of a searched for game, selecting the "open games" will show a search box where all open games to the user can be searched for.

Selecting the "games invited to" option will display a list of all games that the user has been invited to. The user can accept or reject the invitation to the game.

Selecting the "view friends" option will show a list of all friends the user has. From here they are able to send a friend request, message one of their friends, remove one of their friends or invite them to a game.

Selecting the "update settings" option will allow a user to change their password, username, or to remove their account.

Selecting the exit site option will exit the user from the site.

Basic Database Schema

User

  • UserId (PK)
  • Username
  • Password (not sure how this works with Auth0/Okta)
  • Birthday
  • Points

UserStatistics

  • Id (PK)
  • UserId
  • Selection
  • Frequency

GameUsers

  • ID (PK)
  • GameId (FK -> Game)
  • UserId (FK -> User)
  • TotalCorrect

Game

  • GameId (PK)
  • GameName
  • OwnerId (FK -> User)
  • StartDate
  • EndDate
  • GameMode
  • TotalQuestions
  • IsPublic

Question

  • Id (PK -> from API)
  • GameId (FK - > Game)
  • UserId (FK -> User)
  • UserSelected

UserMessage

  • MessageId (PK)
  • FromId (FK -> User)
  • ToId (FK -> User)
  • Body
  • Date

Friends

  • Id (PK)
  • UserId (FK -> User)
  • FriendId (FK -> User)

GameInviteOutbox

  • Id (PK)
  • InvitedId (FK -> User)
  • Date
  • GameId

FriendInviteOutbox

  • Id (PK)
  • InviterId (FK -> User)
  • InvitedId (FK -> User)
  • Date

Questions from Open Trivia API