Coder Social home page Coder Social logo

comp3006-full-stack-project's Introduction

Hello! 👋

I'm Goel! A postgraduate Artificial Intelligence student with a background in Computer Science, at the University of Plymouth, and software engineering at several companies/organisations.

GitHub is where I place coding related projects and items which pique my interest.

What am I doing or have done recently?

comp3006-full-stack-project's People

Contributors

goelbiju avatar

Stargazers

 avatar

Watchers

 avatar  avatar

comp3006-full-stack-project's Issues

Stream audio and video between players

Description:

As a player, I want to see/hear the opponent's video/audio during the game.

Acceptance criteria:

  • Stream audio and video between the players.

View connect four board

Description:

As a player, I want to view the connect four board to play a game.

Acceptance criteria:

  • A connect-four board with correct dimensions (6 rows x 7 columns) is shown on the page
  • Board has the correct colour scheme

Resume a custom game

Description:

As a player, I want to see my paused games on the home page, so I can resume it.

Acceptance criteria:

  • Option to resume a paused game on the homepage by selecting it
  • Option to resume paused games will only be available when the opponent is online
  • Player will be taken to the paused game but the game can only be resumed once the opponent joins
  • Show a resume game notification on the opponent's sidebar to join the game

See opponent moves on the connect-four grid

Description:

As a player, I want to see the opponents moves on the connect-four grid to see what I move I need to play next.

Acceptance criteria:

  • See the real-time moves being made by the opponent on the player's board
  • The moves made by the opponent is valid and takes into account the moves previously made by the player

View friends list and online status

Description:

As a player, I want to see the online status of my friends in my friend's list

Acceptance criteria:

  • View all my added friends in a list
  • See their username and online status

Show summary of a completed game

Description:

As a player, I want to see a summary of the game after it concludes; indicates a player who has won, moves from each player, option to replay, the time elapsed for the game and add the player as a friend.

Acceptance criteria:

  • Once a game of connect four has finished, show a modal dialog with a summary
  • The summary should show which player has won
  • The summary should show the wins/points of each player
  • The summary should give the option to close the current game and return to the home page

Elapsed game time

Description:

As a player, I want to see the time elapsed since the start of the game.

Acceptance criteria:

  • See the total elapsed time when the game is in-play.

Create a custom connect four game

Description:

As a player, I want to select an option to create a custom game; options including an odd number of rounds and the friend I want to play against.

Acceptance criteria:

  • Allow the player to select an odd number of rounds
  • Allow the player to select a friend to play against

Confirm replay request and start new game

Description:

As a player, I can see a replay confirmation from the other player and confirm it by clicking the replay button myself.

Acceptance criteria:

  • View the replay confirmation from the opponent and select my option as well
  • Once both players confirm their replay requests, a new game will start

Join a custom game via a shared link

Description:

As a player, I can use a shared link to a custom game to join the game.

Acceptance criteria:

  • When opening the shared link, the page with the custom game should load

Handle players leaving a game

Description:

The server needs to handle when a player leaves a game.

Acceptance criteria:

  • If a player abandons the game, the game is stopped for all players and the other player is notified.
  • The game is declared as abandoned.

View the number of coins remaining

Description:

As a player, I want to view the number of thin pieces (coins) I have left.

Acceptance criteria:

  • A visual representation/count of the coins (in total 42) that the player has left is shown
  • As the player makes moves, the number of coins remaining decreases

Search for a random online player

Description:

As a player, I want to search for a random player who is online to play connect four against.

Acceptance criteria:

  • Matches a player to an online player who is available to play a game of connect four.
  • A game is created and initialised for both players.

Show player/opponent information within the game

Description:

As a player, I want to see the opponent’s user information to see who I am playing against.

Acceptance criteria:

  • Show the current player's information on the screen
  • Show the opponents information on the screen
  • Player information to show includes: username, image placeholder

Random player selected to start game

Description:

As a player, I want the system to choose the player who goes first at random.

Acceptance criteria:

  • Out of the two players, a random player is selected to make the first move.

Take turns in making board moves

Description:

As a player, I want to take turns in making moves.

Acceptance criteria:

  • The system should rotate turns between the players to make moves in the game.

Check for a win on the connect four board

Description:

As a player, I want to see when a row, column, or diagonal of four has been created by me to win the game.

Acceptance criteria:

  • After a move is made by a player, check for a win on the board's rows, columns and diagonals of four checker pieces

Send a request to replay a game against an opponent

Description:

As a player, I want to send a request against a random player to replay the random game.

Acceptance criteria:

  • On the modal dialog after a random game is concluded, give an option to replay the game
  • Provide the option to click the button to replay to give my replay confirmation
  • Display a prompt to ask for a replay

Send a message between both players

Description:

As a player, I want to send a message to the opponent to communicate.

Acceptance criteria:

  • Provide a chatbox and button to enter and send a message
  • Provide a message history to view all the messages that have been sent from both players.

Make a move on the connect four board

Description:

As a player, I want to make a move on the connect-four board to take my turn in the game.

Acceptance criteria:

  • The user can choose which slot to select to place a "coin" on the connect four board
  • The move should take into account other pieces already placed in the same column by the opponent or player

Toggle audio and video during a game

Description:

As a player, I want to click on a button within the game to enable/disable my audio/video during the game.

Acceptance criteria:

  • A button is provided to enable/disable audio and video for the player.

Add unit testing support for MongoDB models and controllers

Description:

Add the correct way of testing the MongoDB models and controllers (a YouTube approach to setting up mongoose before tests).

Acceptance criteria:

  • Added unit tests for controllers which access MongoDB models
  • Use sinon to stub/mock appropriately functions which use mongoose or other calls which do not need to be called
  • Use Mocha and Chai to expect/assert values

Show a shareable game link for game

Description:

As a player, I can create a sharable link to the custom game I want to play.

Acceptance criteria:

  • Create a link to the created custom game

Losing player of the round starts the next round

Description:

As a player, the player who lost the previous round should start the next game.

Acceptance criteria:

  • In a custom game, the player who loses a round, plays first on the next round.

Integration tests are failing

Description:

Integration tests are failing due to mongoose not being correctly disconnected. This seems to be causing timeout issues on TravisCI.

Integrations tests work locally with unit tests but not combined on TravisCI.

Acceptance criteria:

  • Integration tests work with unit tests.

Sign into an account

Description:

As a player, I want to login with my registered username and password to access my account.

Acceptance criteria:

  • Allow a registered user to log in with their username and password.

Register an account

Description:

As a player, I want to register on the system to play games, including username and password.

Acceptance criteria:

  • Provide a registration box on the website to sign up for the system

Show friend request notification

Description:

As a player, I want to see any friend request notifications to decide.

Acceptance criteria:

  • Show a notification of a friend request and the player who sent it.

Pause a custom game

Description:

As a player, I want to pause a custom created game against a friend so we can play later.

Acceptance criteria:

  • An option is provided in a custom game to pause it
  • Both players will be in a paused game state with the time paused
  • Display paused games on the home page

View player's game history

Description:

As a player, I want to view my game history in random/custom games against players, including scores/rounds played and player faced

Acceptance criteria:

  • On the home page see the history of games played against opponents
  • Show the opponents faced and the results of the game (win/loss/draw) with the overall score

Fix usability tests issues

Description:

Fix the issues that have been raised in usability testing.

Acceptance criteria:

  • Usability test issues resolved.

Choose random checker colours for players

Description:

As a player, I want the system to choose a random colour for each player to distinguish between the players’ coins.

Acceptance criteria:

  • Picks random checker colours for each player when creating the game.

Add opponent as a friend in a random game

Description:

As a player, I want to add the user who I competed against in a random game to my friend's list.

Acceptance criteria:

  • Provide an option to add a player, on the modal dialog after a concluded random game, to add the opponent as a friend.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.