Giter VIP home page Giter VIP logo

wombats-web-client's Introduction

Wombats Web Client

This repo is a part of the Wombats Suite, documented at Wombat Documentation.

Contributing? Issues? Features? Curiosity?

Learn how to contribute here.

Our Stack

Our web client is written with the following tools:

Development Mode

Run application:

lein run-dev

Figwheel will automatically push cljs changes to the browser.

Wait a bit, then browse to http://localhost:3449.

URLs

  • dev.api.wombats.io points to the Development database
  • qa.api.wombats.io points to the QA database - this is the base API URL for our qa branch
  • api.wombats.io points to the Production database - this is the base API URL for our master branch

Production Build

The following commands compile Wombats for the deployed environments:

lein deploy-dev
lein deploy-qa
lein deploy-prod

Spritesheet

If you want to recreate the spritesheet, you can do so using the free program TexturePacker. You can add images to /resources/spritesheet, and regenerate the spritesheet using /resources/spritesheet.tps.

wombats-web-client's People

Contributors

binliuwta avatar dehli avatar elibosley avatar jasonye85 avatar oconn avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

wombats-web-client's Issues

Game Complete - Declare Winner

As a user, I would like to view the winner of a game after it is played.

AC:

  • Display winner, Wombat image, Wombat name, github handle
  • Return to Games screen

Zeplin:
https://zpl.io/1hcgHT

Out of Scope:
Holding off on replay button for V2

Game Lobby - Search

BEFORE SUBMITTING AN ISSUE CHECK THE FOLLOWING:

  • I checked existing issues.
  • This is not a support question (which can be answered on Slack).
  • This issue is on the web client (not API, Lambda, or Bots)

FEATURE REQUEST

- Describe the feature you would like to see
As a user, I would like to search for a game.

- Why you need it
As our list of games grows, users will want to search for specific games to join, watch or replay.

- How it should work

  • Search field displays for both the open and finished sections
  • No results found matches design in Zeplin
  • Search by game name (anything else?)

- Zeplin
https://zpl.io/Z2sv0ei

- Open Questions

  • Can we do partial search queries, eg. "gam" instead of "game"?
  • Can we search by other game attributes, such as private or public?
  • Can we dynamically return search results?

Preview - Wombat Status

As a user, I would like to view the status of each Wombat joined in a game.

  • Health status begins at 100% and reduces throughout game play
  • Wombat image, name, score and Github handle are displayed on each line
  • Color of the health bar changes from green to yellow to red based on remaining health

My Wombats - Delete Wombat

As a user, I would like to delete a Wombat.

AC:

  • The Delete button is displayed upon hovering over a Wombat card
  • The Delete Wombat alert is presented to the user asking if they're sure they'd like to delete their Wombat
  • The Wombat is deleted and removed from the screen after the user has confirmed deletion

Zeplin:
No comp currently available

API Dependencies:
141: My Wombats - Delete Wombat

Client Dependencies:
#46 My Wombats - Cards

Preview - Join Game

As a user, I would like to join a selected game.

AC:

  • Modal displays with dropdown of Wombats in user account
  • User must select a color before clicking "Join"; Wombat thumbnail shows highlighted state when selected
  • Any colors that have already been selected by another user are greyed out and non-clickable
  • "Join" becomes available when all fields are selected
  • User is added to the game upon clicking "Join"

Zplin:
https://zpl.io/Z1qmeMx

Notes:
Note that the designs do not include a field for password
Max players is set at 8, and we may eventually need to find a way to scale that visually

Potential Error States:

  • No wombat selection
  • No color selected
  • Game is filled
  • Where should the error states show for each input? inline?
  • Adjust height of modal to accommodate error

Out of Scope:

  • If the game is private, the user must enter the password for the game; this will be implemented in a separate ticket.- User cannot join game if the game is already full; alert is presented to the user matching https://zpl.io/Z28MGXf

Games - Game State Toggle

As a user, I would like to filter between Available" and "My Games" by hovering over "Games" in the nav bar.

AC:

  • A dropdown menu with "Available" and "My Games" options is displayed when hovering over Games in the nav bar
  • The number of corresponding games is included in parenthesis next to each option
  • The games screen is displayed with all games in the chosen category upon clicking on an option

Zeplin:
https://zpl.io/21Hqcx

API Dependencies:
114: Games - Game Transitions

Game Replay

BEFORE SUBMITTING AN ISSUE CHECK THE FOLLOWING:

  • I checked existing issues.
  • This is not a support question (which can be answered on Slack).
  • This issue is on the web client (not API, Lambda, or Bots)

FEATURE REQUEST

- Describe the feature you would like to see
As a user, I would like to replay a game that has already ended.

- Why you need it
Game replay will allows users to review their Wombat's or a competing Wombat's performance during gameplay in order to learn from mistakes and improve their code. It may also be fun to replay particularly exciting games.

- How it should work

  • The game card for any game in a closed state displays a Replay button with a hover state
  • Clicking on the button takes the user to the game replay screen
  • The game replay screen matches the designs provided in Zeplin
  • Play button, scrub bar and frame skip buttons (forward and backward) are displayed at the bottom of the arena
  • Clicking Play plays the game as normal, skipping intermission times
  • Scrubbing brings the user through several frames (proportional to the length of the game)
  • Skipping forward or backward moves the game forward or backward one frame
  • Wombat status is reflected in the status bar with each frame progression

- Zeplin
https://zpl.io/ZnsbFl

Auth - Login Workflow

As a user, I would like to log in to Wombats using my Github account.

AC:

  • When the user attempts to preview a game, an alert is presented prompting the user to login to continue
  • When the user attempts to view "My Games", text on the screen displays "Please log in to view your games!"
  • Github auth workflow is initiated when the user clicks "Log In" in the navbar
  • If auth is successful, user is returned to the Available Games screen
  • If auth is unsuccessful, user is stranded on Github screen (outside of our control)
  • While user is logged in, "My Wombats" is displayed instead of "Log In" in navbar

API Dependencies:

136: Auth - Github Workflow
137: Auth - Create User
138: Auth - Get Current User"

My Wombats - Cards

As a user, I would like to view and hover over a Wombat card to see available actions for the Wombat.

AC:

  • The Wombat card displays an image and name of the Wombat
  • Hovering over displays available actions, including Edit and Delete

Zeplin:
https://zpl.io/1FhPhS

API Dependencies:
143: My Wombats - Get All Wombats for User

Game Log

  • Lower right box: what's going on over the entire game

Gameplay - Round Intermission

AC:

  • Intermission shows countdown timer and next round’s arena
  • For next round, generate new arena (same config), spawn in new random spot
  • For next round, Wombats are restored to full health
  • Scores accumulate and are shown in the status bar

User Management - Add Bot

As a user, I want to add a bot so that I can use it in a game.

Acceptance Criteria:

  • The “Add Bot” modal is presented to the user upon clicking the plus button on the “My Bots” screen
  • The bot name and connected repo designated by the user is added to the list of “My Bots” upon clicking “Add”
  • All bots added to “My Bots” are available for use in game play

Dev Notes (technical tasks):

  • Bot is created on back end with corresponding repo

My Wombats - Add Wombat Button & Modal

As a user, I would like to add a bot so that I can use it in a game.

AC:

  • The “Add Wombat” modal is presented to the user upon clicking the plus button on the “My Wombats” screen
  • The Wombat name and connected repo designated by the user is added to the list of “My Wombats” upon clicking “Add”
  • All Wombats added to “My Wombats” are available for use in game play

Zeplin:
https://zpl.io/Zo4qGY

API Dependencies:
139: My Wombats - Create Wombat

Client Dependencies:
#46 My Wombats - Cards

Preview - Game Layout

As a user, I would like to view the game preview screen upon selecting a game.

AC:

  • Hardcoded countdown timer
  • Join button
  • Type of game
  • Number of bots currently in game / capacity
  • List of Wombats joined in game
  • Static preview of the arena (initial state)

Zeplin: https://zpl.io/Z1jJoq6

Out of Scope:

  • Dynamic countdown timer will be handled in a separate ticket

Arena - Show Shoot

We need to discuss with Bekah to confirm how she'd like this to display. We'd also like to customize color based on the player.

Gameplay - Dynamic Ranking

BEFORE SUBMITTING AN ISSUE CHECK THE FOLLOWING:

  • I checked existing issues.
  • This is not a support question (which can be answered on Slack).
  • This issue is on the web client (not API, Lambda, or Bots)

FEATURE REQUEST

- Describe the feature you would like to see
As a user, I would like to see the highest scoring Wombat ranked at the top of the status bar.

- Why you need it
Dynamic ranking makes it easy for users to see which Wombats are winning the game at a point in gameplay.

- How it should work

  • Players are ordered dynamically by overall score

Games - Cards - Hover States

As a user, I would like to view and hover over a game card to see available actions for the game.

AC:

  • For pending-open games, Join button displays on hover
  • For private and pending-open games, Join button displays with lock icon
  • All games display border on hover
  • Clicking on a game card (outside of a Join button) navigates the user to the game screen

Zeplin:
https://zpl.io/21Hqcx

API Dependencies:
155: Games - Get Open Private Games
156: Games - Get Ongoing Games
157: Games - Get Closed Games
154: Games - Get Open Public Games

Client Dependencies:
#16 Games - Cards

Out of Scope:
All other buttons, such as "Replay" are slated for a later version. Tool tips are also slated for a later version

My Wombats - Screen

As a user, I would like to view my Wombats upon clicking "My Wombats" in the navbar if I am logged in.

AC:

  • The Wombats screen displays upon clicking My Wombats in the nav bar
  • All of the Wombats that have been added by the user are dispalyed in a grid view

Zeplin: https://zpl.io/1FhPhS

Framework - User Navbar

AC:

  • For V1 only Games, Config and My Wombats are displayed and active
  • My Wombats toggles to "Log In" when a user is not logged in
  • Config is available only to admin and event coordinators
  • Users is available only to admin

Zeplin: https://zpl.io/17G3Lb

Arena - Show Smoke

Show smoke in the arena, for the duration specified by the arena config.

Gameplay - Round Transition Animation

BEFORE SUBMITTING AN ISSUE CHECK THE FOLLOWING:

  • I checked existing issues.
  • This is not a support question (which can be answered on Slack).
  • This issue is on the web client (not API, Lambda, or Bots)

FEATURE REQUEST

- Describe the feature you would like to see
Animate transition at the end of each round.

- Why you need it
Currently, there is no transition between the end of a round and intermission, which can be jarring to the user. We should animate the transition to make the change more graceful.

- How it should work
We need guidance from Jesse on what this should look like.

Include any relevant documentation that will help prompt a discussion!

Arena - Wall Deterioration

We need to show deterioration as walls receive damage based on damage reported by API for both wood and steel walls. (Steel walls can be destroyed, but they have very high HP)

My Wombats - Edit Wombat

As a user, I woud like to edit a Wombat's name or correspondiong repo.

AC:

  • The Edit button is displayed upon hovering over a Wombat card
  • The Edit Wombat modal is presented to the user upon clicking Edit
  • The name of the selected Wombat is updated upon clicking Save
  • The Edit modal is dismissed and no changes are saved upon clicking "Cancel"

Zeplin:
https://zpl.io/XQl3o

API Dependencies:
140: My Wombats - Edit Wombat

Client Dependencies:
#46 My Wombats - Cards

NOTE: in order to update the repo, the user will have to add a new Wombat

Games - Screen

As a user, I would like to view all open games and games that I have joined.

AC:

  • The Game Lobby displays upon clicking Games in the nav bar
  • The user can toggle between "Open" and "Joined" (see designs)
  • Games displayed in the Open tab have a status of open and have not been joined by the user
  • Games displayed in the Joined tab have been joined by the current user, regardless of status
  • Games are sorted by creation date - most to least recent
  • Empty states match designs

Zeplin:
https://zpl.io/Z4F9Fg

Out of Scope:
Search and pagination is slated for v2 (or v3)

Framework - Routing

This includes login/logout, clicking triggers redirects to available games, My Games and account page.

Games - Cards

AC:

  • Game Card displays arena image, game type, number of rounds, grid size and arena icons (Wombat, Zakano, Food, Poison)
  • The frequency of the arena element is displayed below the icon (number of elements)
  • For games that the user has joined, show the Wombat player icon in the corner of the card
  • For games in pending-open, show default card
  • For games in pending-closed, show "FULL" over arena image
  • For games in active or active-itermission, show "ACTIVE" over arena image
  • For games in closed AND in still in the open section, show "FINISHED" over arena image (NOTE: this may not be necessary/possible)
  • For games in Finished section, show default card

Zeplin:
Open: https://zpl.io/21Hqcx
Finished: https://zpl.io/DmyEr
No Open Games: https://zpl.io/Z4F9Fg
No Joined Games: https://zpl.io/Kh8pd

Out of Scope:
Card hover states are broken out in separate ticket.

Countdown timer (or any scheduled time) is slated for a future version.

Dialogue Box

  • Show actions and events occuring on your bot during the game

Config - Screen

BEFORE SUBMITTING AN ISSUE CHECK THE FOLLOWING:

  • I checked existing issues.
  • This is not a support question (which can be answered on Slack).
  • This issue is on the web client (not API, Lambda, or Bots)

FEATURE REQUEST

- Describe the feature you would like to see
As an admin or event coordinator, I would like to see arenas and active games on the Config screen.

- Why you need it
We need an interface for admins to manage games and arenas.

- How it should work

  • If the user is an admin or an event coordinator, clicking on Config in the navbar presents the Config screen
  • In the Arenas section, a table is displayed with arena configuration information, including:
    -- Arena Name
    -- Grid
    -- Perimeter
    -- Shot Damage
    -- Smoke Duration
    -- Food
    -- Poison
    -- Steel Wall
    -- Wood Wall
    -- Zakanos
    -- Password
  • An add button is displayed in the Arenas section
  • In the Active Games section, all games with a status of Pending-Open, Pending-Closed and Active are displayed
  • The game cards and hover states match those used in the Game Lobby

- Zeplin
https://zpl.io/17G3Lb
Note that the design is missing the perimeter and password attribute
We also do not have a way to trigger game deletion

Arena - Zoom

BEFORE SUBMITTING AN ISSUE CHECK THE FOLLOWING:

  • I checked existing issues.
  • This is not a support question (which can be answered on Slack).
  • This issue is on the web client (not API, Lambda, or Bots)

FEATURE REQUEST

- Describe the feature you would like to see
As a user, I would like to zoom the arena view around a specific Wombat.

- Why you need it
As we support more complex arena configurations (and potentially larger arenas), users will want to zoom in to focus only on their Wombat's actions in the arena.

- How it should work

  • Clicking on Wombat name on right will zoom game view to that Wombat
  • Clicking on the zoomed in area will zoom the arena back out to full size

- Open Questions

  • What grid size do we zoom in to? 4x4?

- Zeplin
https://zpl.io/cS2Ef

Game Lobby - Pagination

BEFORE SUBMITTING AN ISSUE CHECK THE FOLLOWING:

  • I checked existing issues.
  • This is not a support question (which can be answered on Slack).
  • This issue is on the web client (not API, Lambda, or Bots)

FEATURE REQUEST

- Describe the feature you would like to see
Infinite scroll refresh on the games lobby for both the open and finished sections

- Why you need it
Allow a user to view all games

- How it should work
Infinite scroll refresh

Include any relevant documentation that will help prompt a discussion!

Games - Countdown Timer

  • If preview, countdown time until game starts
  • If ongoing game, show Round # and countdown timer during intermission

Preview - Arena Integration

As a user, I would like to preview the arena before the game starts.

AC:

  • The appropriate arena is displayed to the user on the game preview screen

My Wombats - Logout

As a user, I would like to log out of my account.

AC:

  • A "Log Out" button is displayed on the My Wombats screen
  • Clicking on the button logs the user out of the account
  • "My Wombats" is replaced by "Log In" in the navbar

Zeplin:
https://zpl.io/1FhPhS

Client Dependencies:
#11 Auth - Login Workflow

Wombats-HQ Slack Signup form on website.

I created a slack dedicated to wombats. I figured if we want to get both offices in on the effort, it would not be fair to ask everyone in Durham to join the Cville slack channel. Signing up requires only the email address of interested users. A simple page / form should do the trick. What do you think @emilyseibert?

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.