Git Product home page Git Product logo

tsd-pokerplanning's People

Contributors

bardss avatar dmytrozinkevych avatar kristisik avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

tsd-pokerplanning's Issues

User checks if game is started

User have to check if game is already started

AC1: Everything have to happen only when user is ready
AC2: Everything have to happen automatically in app background

User send information that he is ready to finish a game

After choosing a card user needs to send an information to the server that he is ready to finish a game and see results.

AC1: User can send an information that he is ready by turning the switch to "ON" position

AC2: After sending "ready" information user can change his status to "not ready yet" by turning the switch back to "OFF" position.

AC3: After turning the switch back to "off" position user can select different card.

Add "Final table" Screen

Add last view needed for application
It is going to show all the cards chosen by participants

AC1: Showing all cards in grid
AC2: Not missing any data

Send "Ready" information to backend

User need to send information to server that he is ready for planning.

AC1: User have to have possibility o set his status to ready
AC2: User have to have possibility to uncheck that value so it will show information that he is not ready

User joins table using token

As a user, I want to join table, using table token.

Functional requirements:

  • user sends table token
  • user is added to participants of table

AC1: User receives an error message, if there is no table with cpecified token.

Close table

As a user, I want to finish game after all the tasks where reviewed.

Functional requirements:

  • there is "Close table" button on "Game results" screen
  • all information about play table is removed from database
  • only admin of table can close table
  • all participants of the table are kicked

Choosing card

As a user, I want to choose card from a list of cards after the game was started.

Functional requirements:

  • there is a list of numbers between 1 and 100
  • user can choose just one card

User can log in to account

As a user, I want to log in to my account, using credentials.

Functional requirements:

  • user sends email and password

AC1: User receives error message, if specified email and password are wrong.
AC2: User receives user token, if authorization was successful.

Custom decks

As a user, I want to specify my custom deck for game.

Functional requirements:

  • list of cards, separated by comma, is converted to deck, and new started game will use this deck

Show information about ready users on the participants list

Room creator have to know which player is ready so we have to show this in clear way.

AC1: Green color ready player so it will clearly show that that one is ready
AC2: Gray color not ready player so it will clearly show that that one is NOT ready

Setup frontend CircleCI CI

Connecting Android repository with free CI system - CircleCi.

AC1: CircleCI have to build project with every repo Push
AC2: CircleCI have to do project Unit Tests

Save email after successful login

After successful login application should save user email to fill it always on application start.
It is going to be intuitive and convenient for user.

AC1: It should always fill the email if there was successful login in previous session
AC2: Email should not be saved if user has not logged onto account

Init Android project

Init Android Kotlin project

AC1: Compiling on emulator
AC2: Have to work also on phones with Android 5.0 and newer

Connect "Get memebrs" endpoint

Get members thought GET request from backend server
Reading response with list of transport objects
Also working while refreshing list on view

AC1: Working with refresh functionality
AC2: Showing response data on view

Implement Registration Screen

Implementing Registration Screen that is going to work with backend registration

AC1: Text fields for all inputs
AC2: Error messages on validation

Choose Android project architecture

Android project have to have clean programming architecture

AC1: Clean split into view and controller parts
AC2: Cannot be too much things in view files

Bug on Cards Screen (selecting multiply cards)

There is a bug on carousel with cards. After choosing one card is spite of the fact that carousel is blocked and user cant swipe it, there is a possibility to click other cards on the background.

AC1: User can choose one card
AC2: There is no possibility to choose more than 1 card at once

Plan application workflow

Application have to have planned workflow.

AC1: Application have to have created prototype
AC2: Cannot stop working in time (like in trial versions)

Kick participant

As an admin of table, I want to have possibility to kick participant of table.

Functional requirements:

  • there is "X" button opposite each participant in the list of participants

Add "Create Table" Screen

Create view that can be prepared to provide "Create table" functionality

AC1: Name text field
AC2: Create button with clear information

Connect "Create table" endpoint

Connect create table functionality with backend server

AC1: Reading response with table Id
AC2: Opening and refreshing table on view

Connect "Login" endpoint

First endpoint to connect with backend project
Provides login functionality
Returns access token

AC1: Login working
AC2: Save token in local database

Init unit tests

Unit tests working with Android Application

AC1: Tests also checking the visible parts of application
AC2: Tests working on CircleCI

Add "Choose Card" Screen

Create view that provides functionality for choosing card
It going to be implemented like a carousel (with cards rolling around the cricle).
Numbers are going to be Fibonacci numbers

AC1: Working cards carousel
AC2: Fibonacci numbers used

Choose Android technologies

Decide if we want to use Kotlin langugage and some of libraries.
Check we need library for architecture

AC1: Working project with basic libraries
AC2: No more than 10 dependencies at start

User creates new table

As a user, I want to create new table.

Functional requirements:

  • user sends request, which includes user token
  • user receives table token
  • user becomes admin of table

AC1: If user already has table, it should be removed.

Create Maintenance section in readme

Create Maintenance section in project readme
Have to provide information about:

  • what are the tools needed to develop the application
  • how to configure the project on a developer's machine (database, webserver, etc.)
  • how to run tests
  • how to deploy the application to production

AC1: Showing as detail information as possible
AC2: Provide tutorial on initialising IDE

Connect get results endpoint when the game is over

If the game is over user can see a list of card from all participants

AC1: Every user see list of card from all users
AC2: Every card is displayed with the name of participant that chose it.
AC3: There is a mean value of all card values displayed on the screen.

Create Base View classess and interfaces

Programming task to create base classes that are going to be implemented or extended around whole application.

AC1: Helps with providing basic functions around every view and presenter
AC2: Not splitting into more than 5 files

User is ready to start game

As a user, I want to set my status as "Ready", so that game will not start without me.

AC1: User can change "I am ready" checkbox.
AC2: Admin of table can't start game, if any of participants are not ready.

Show game results

As a user, I want to see the results of game after all participants have chosen cards.

AC1: Cards are sorted.
AC2: There is "user name - card" information.

Functional requirements:

  • there is "Start new game" button for admin

create access activity layout

View that can be connected with Login functionality

AC1: View with two text fields for password and login
AC2: Check if data is not empty after clicking "Login"

Receiving infromation from the server if the game is over

User needs to receive information from the server wheather all game participants finished their evaluation.

AC1: If all users finished their evaluation screen with game result should be displayed

AC2: Information if the game is over should deal with the situation when the user change back his status from "ready" to "not ready yet"

"Start Planning" function for table creator

Table creator have to have possibility to start game so everyone can start plan task.

AC1: Show clickable button to start planning
AC2: Planning cannot be started when someone is not ready

Create graphical UI mocks

Connected with planning workflow

AC1: Create application prototype
AC2: Prototype cannot be on app trial version

User can create new account

As a user, I want to create an account.

Functional requirements:

  • user specifies first name, last name, email and password
  • password is encrypted in database

AC1: If email is already used, user gets information about it.

Init networking layer

Init networking layer with reactive programming
Using RxJava and Retrofit (best library for internet connection)

AC1: Reactive approach
AC2: Working connection with endpoints

Add "Splash" Screen

Create first view which is presenting application logo

AC1: Presenting application logo
AC2: After 2 second another view have to open

Options of decks

As a user, I want to have possibility to select deck of card for new game.

Functional requirements:

  • user can select just one of proposed decks
  • deck can be selected only before starting the game

Connect "Choose number" endpoint

User need to send information to server about choosen number

AC1: User have to have possibility to send information about choosen number

AC2: User have to have possibility to send this info multiply times (to override previous decision if he changed his mind)

Main page

There is a main page, which displays name of project and team members

Implement "Kick participant" in participants view

Swipe participant to kick him out of the room.
After swipe and click on "X" button, application is sending request to kick user

AC1: Swipe view is working and intuitive
AC2: After clicking "X" the player should be kicked

Connect "Register" endpoint

Connect Register endpoint with Reactive approach
Validate information like backend

AC1: Use backend transport objects
AC2: Working register functionality

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.