Skip to content

Commit

Permalink
Merge pull request #74 from hellomuthu23/add-about-section
Browse files Browse the repository at this point in the history
Add about section
  • Loading branch information
hellomuthu23 committed Jun 29, 2023
2 parents 9871cd9 + 8be3a91 commit 24273b9
Show file tree
Hide file tree
Showing 8 changed files with 227 additions and 25 deletions.
4 changes: 4 additions & 0 deletions src/App.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ import { GamePage } from './pages/GamePage/GamePage';
import HomePage from './pages/HomePage/HomePage';
import JoinPage from './pages/JoinPage/JoinPage';
import { theme } from './service/theme';
import { AboutPlanningPoker } from './pages/HomePage/AboutPlanningPoker';
import { Footer } from './components/Footer/Footer';

function App() {
return (
Expand All @@ -21,8 +23,10 @@ function App() {
<Route path='/game/:id' component={GamePage} />
<Route path='/delete-old-games' component={DeleteOldGames} />
<Route path='/join/:id' component={JoinPage} />
<Route path='/about-planning-poker' component={AboutPlanningPoker} />
<Route exact path='/*' component={HomePage} />
</Switch>
<Footer />
</Router>
</StylesProvider>
</ThemeProvider>
Expand Down
39 changes: 26 additions & 13 deletions src/components/Toolbar/Toolbar.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,43 +6,56 @@ import GamesIcon from '@material-ui/icons/Games';
import GithubIcon from '@material-ui/icons/GitHub';
import AddCircleOutlineIcon from '@material-ui/icons/AddCircleOutline';
import MergeTypeOutlinedIcon from '@material-ui/icons/MergeTypeOutlined';
import InfoOutlinedIcon from '@material-ui/icons/InfoOutlined';
import React from 'react';
import { useHistory } from 'react-router-dom';
import './Toolbar.css';
export const title = 'Planning Poker';

export const Toolbar = () => {
const history = useHistory();
const isSmallScreen = useMediaQuery((theme: any) => theme.breakpoints.down("xs"));
const isSmallScreen = useMediaQuery((theme: any) => theme.breakpoints.down('xs'));

return (
<Slide direction='down' in={true} timeout={800}>
<AppBar position='sticky' className='AppBar'>
<AppToolbar>
<div className='HeaderContainer'>
<div
className='HeaderLeftContainer'
onClick={() => history.push('/')}
>
<div className='HeaderLeftContainer' onClick={() => history.push('/')}>
<GamesIcon className='HeaderIcon' />
<Typography variant={isSmallScreen? 'subtitle1':'h5'} color='inherit' noWrap>
<Typography variant={isSmallScreen ? 'subtitle1' : 'h5'} color='inherit' noWrap>
{title}
</Typography>
</div>
<div>
<Button title="New Session" startIcon={<AddCircleOutlineIcon/>} color='inherit' onClick={() => history.push('/')}>
{!isSmallScreen ? 'New Session': null}
<Button
title='About section'
startIcon={<InfoOutlinedIcon />}
color='inherit'
onClick={() => history.push('/about-planning-poker')}
>
{!isSmallScreen ? 'What is planning poker?' : null}
</Button>
<Button
title='New Session'
startIcon={<AddCircleOutlineIcon />}
color='inherit'
onClick={() => history.push('/')}
>
{!isSmallScreen ? 'New Session' : null}
</Button>
<Button startIcon={<MergeTypeOutlinedIcon/>} size={ isSmallScreen ? "small" : "large"} color='inherit' onClick={() => history.push('/join')}>
<Button
startIcon={<MergeTypeOutlinedIcon />}
size={isSmallScreen ? 'small' : 'large'}
color='inherit'
onClick={() => history.push('/join')}
>
{!isSmallScreen ? 'Join Session' : null}
</Button>
<Button
id='github-button'
color='inherit'
onClick={() =>
(window.location.href =
'https://github.com/hellomuthu23/planning-poker')
}
onClick={() => (window.location.href = 'https://github.com/hellomuthu23/planning-poker')}
>
<GithubIcon></GithubIcon>
</Button>
Expand Down
Binary file added src/images/benefits.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/images/best-practices.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/images/how.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/images/what.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
193 changes: 193 additions & 0 deletions src/pages/HomePage/AboutPlanningPoker.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,193 @@
import { Box, Grid, Slide, Typography } from '@material-ui/core';
import React from 'react';
import How from './../../images/how.jpg';
import What from './../../images/what.jpg';
import BestPractices from './../../images/best-practices.jpg';

import Benefits from './../../images/benefits.jpg';

import './HomePage.css';

export const AboutPlanningPoker = () => {
return (
<>
<Grid container direction='column' justify='center' alignItems='center'>
<AboutPlanningPokerContent />
</Grid>
</>
);
};

export const AboutPlanningPokerContent = () => {
return (
<>
<Grid container item sm={12} lg={9} justify='center' alignItems='center'>
<Grid item sm={12} lg={6}>
<Slide in={true} direction='up' timeout={2000}>
<div className='HomePageContainer'>
<Typography variant='h5'>What is Agile Planning Poker?</Typography>
<br />
<Typography variant='body1'>
In Agile software development, accurate estimation of tasks is crucial for effective planning and
project success. Agile Planning Poker is a collaborative technique that leverages the wisdom of the team
to estimate effort, complexity, or relative size of user stories or tasks. In this article, we will
delve into the details of Agile Planning Poker, its benefits, and how it can revolutionize the
estimation process for Agile teams.
<br></br>
Agile Planning Poker, also known as Scrum Poker, is a consensus-based estimation technique used in Agile
projects. It involves a team of individuals with diverse expertise collectively assigning effort points
or story points to user stories, features, or tasks. This technique facilitates discussion, knowledge
sharing, and alignment among team members, ensuring a more accurate estimation process.
</Typography>
</div>
</Slide>
</Grid>
<Grid item sm={12} lg={6}>
<Slide in={true} direction='up' timeout={2000}>
<div className='HomePageContainer'>
<Box padding={2}>
<img alt='What' src={What}></img>
</Box>
</div>
</Slide>
</Grid>
</Grid>
<br></br>
<br></br>
<Grid container item sm={12} lg={9} justify='center' alignItems='center'>
<Grid item sm={12} lg={6}>
<Slide in={true} direction='up' timeout={2000}>
<div className='HomePageContainer'>
<Box padding={2}>
<img alt='How' src={How}></img>
</Box>
</div>
</Slide>
</Grid>
<Grid item sm={12} lg={6}>
<Slide in={true} direction='up' timeout={2000}>
<div className='HomePageContainer'>
<Typography variant='h5'>How Agile Planning Poker Works</Typography>
<br />
<Typography variant='body1'>
a. <b>Team Collaboration</b>: Agile Planning Poker brings together the entire Agile team, including
developers, testers, product owners, and scrum masters. Each team member receives a deck of cards with
values representing the effort or complexity of the work to be estimated.
<br />
b. <b>User Story Presentation</b>: The product owner presents a user story or task to the team,
explaining its purpose, requirements, and expected outcomes. This ensures a common understanding of the
work to be estimated.
<br />
c. <b>Individual Estimation</b>: Each team member privately selects a card representing their estimate
of effort or complexity. The cards are kept face down until everyone has made their estimation.
<br />
d. <b>Revealing Estimations</b>: On a predetermined signal, all team members simultaneously reveal their
selected cards. This reveals a range of estimates and encourages discussion and justification for the
differing estimations.
<br />
e. <b>Consensus Building</b>: Team members discuss their reasoning, clarifying any uncertainties and
sharing their perspectives. Through open dialogue, consensus is reached, and the team converges on a
shared estimation.
<br />
f. <b>Repeating the Process</b>: The Agile Planning Poker process is repeated for each user story or
task, allowing the team to estimate the entire backlog or sprint plan collaboratively.
</Typography>
</div>
</Slide>
</Grid>
</Grid>
<br />
<br />
<Grid container item sm={12} lg={9} justify='center' alignItems='center'>
<Grid item sm={12} lg={6}>
<Slide in={true} direction='up' timeout={2000}>
<div className='HomePageContainer'>
<Typography variant='h5'>Benefits of Agile Planning Poker</Typography>
<br />
<Typography variant='body1'>
a. <b>Improved Accuracy</b>: Agile Planning Poker leverages the collective knowledge and expertise of
the team, resulting in more accurate and reliable estimations. It considers different perspectives,
experiences, and skill sets, leading to a well-rounded estimation process.
<br />
b. <b>Enhanced Collaboration</b>: The technique encourages open communication, discussion, and knowledge
sharing among team members. It facilitates a shared understanding of the work, promotes a sense of
ownership, and fosters a collaborative team culture.
<br />
c. <b>Increased Transparency</b>: Agile Planning Poker makes the estimation process transparent and
visible to the entire team. This visibility helps identify discrepancies, resolve conflicts, and align
expectations, ensuring better planning and decision-making.
<br />
d. <b>Time Efficiency</b>: The structured nature of Agile Planning Poker streamlines the estimation
process. It prevents lengthy debates and reduces biases by anchoring individual estimations to a shared
understanding, leading to quicker consensus building.
</Typography>
</div>
</Slide>
</Grid>
<Grid item sm={12} lg={6}>
<Slide in={true} direction='up' timeout={2000}>
<div className='HomePageContainer'>
<Box padding={2}>
<img alt='Benefits' src={Benefits}></img>
</Box>
</div>
</Slide>
</Grid>
</Grid>
<br />
<br />
<Grid container item sm={12} lg={9} justify='center' alignItems='center'>
<Grid item sm={12} lg={6}>
<Slide in={true} direction='up' timeout={2000}>
<div className='HomePageContainer'>
<Box padding={2}>
<img alt='BestPractices' src={BestPractices}></img>
</Box>
</div>
</Slide>
</Grid>
<Grid item sm={12} lg={6}>
<Slide in={true} direction='up' timeout={2000}>
<div className='HomePageContainer'>
<Typography variant='h5'>Best Practices for Agile Planning Poker</Typography>
<br />
<Typography variant='body1'>
a. <b>Establish Consistent Estimation Units</b>: Ensure the team has a clear understanding and
consistency in the units used for estimation, such as story points, ideal days, or t-shirt sizes.
<br />
b. <b>Include the Whole Team</b>: Involve all team members in Agile Planning Poker, as diverse
perspectives lead to better estimations and improved buy-in.
<br />
c. <b>Use Fibonacci Sequence</b>: Consider utilizing the Fibonacci sequence (1, 2, 3, 5, 8, 13, 21,
etc.) for assigning values to estimation cards. This helps account for the inherent uncertainty and
diminishing accuracy of estimating larger tasks.
<br />
d. <b>Document and Track Estimations</b>: Maintain a record of estimated values to track progress,
monitor trends and identify areas where adjustments may be necessary. This documentation provides
valuable insights for future planning and retrospective analysis.
<br />
e. <b>Embrace Consensus</b>: Agile Planning Poker aims to achieve consensus within the team. Encourage
open discussions, actively listen to different viewpoints, and work towards finding common ground to
reach agreement on the estimation.
<br />
f. <b>Iterate and Refine</b>: Agile Planning Poker is not a one-time activity. Continuously refine and
improve the estimation process based on feedback and lessons learned from previous sprints. Adapt the
technique to suit the team's needs and evolving project requirements.
<br />
<br />
</Typography>
</div>
</Slide>
</Grid>
<Typography>
Agile Planning Poker is a powerful technique that enhances collaboration, transparency, and accuracy in the
estimation process for Agile teams. By harnessing the collective knowledge and expertise of team members, it
leads to more reliable estimations and better planning outcomes. Embracing Agile Planning Poker enables teams
to effectively manage project scope, prioritize work, and deliver value to stakeholders with increased
confidence. Incorporate this collaborative estimation technique into your Agile practices and experience the
benefits of empowered teamwork and improved project success.
</Typography>
</Grid>
</>
);
};
16 changes: 4 additions & 12 deletions src/pages/HomePage/HomePage.tsx
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
import { Divider, Grid, Slide, Typography, Box } from '@material-ui/core';
import React from 'react';
import { useRouteMatch } from 'react-router-dom';
import { Footer } from '../../components/Footer/Footer';
import { CreateGame } from '../../components/Poker/CreateGame/CreateGame';
import { JoinGame } from '../../components/Poker/JoinGame/JoinGame';
import { RecentGames } from '../../components/Poker/RecentGames/RecentGames';
import LandingImage from './../../images/background.jpg';
import SessionControllerImage from './../../images/Session.jpg';
import './HomePage.css';
import { AboutPlanningPokerContent } from './AboutPlanningPoker';

export const HomePage = () => {
const isJoin = useRouteMatch('/join');
Expand All @@ -21,11 +21,7 @@ export const HomePage = () => {
<div className='HomePageContainer'>
<Typography variant='h5'>Free Planning Poker App</Typography>
<Box padding={2}>
<img
alt='Free Planning Poker App'
className='HomePageImage'
src={LandingImage}
></img>
<img alt='Free Planning Poker App' className='HomePageImage' src={LandingImage}></img>
</Box>
<Typography variant='subtitle1'>
Free / Open source Planning Poker Web App to estimate user stories for your Agile/Scrum teams. Create
Expand Down Expand Up @@ -91,18 +87,14 @@ export const HomePage = () => {
<Slide in={true} direction='up' timeout={2000}>
<div className='HomePageContainer'>
<Box padding={2}>
<img
className='SessionImage'
alt='Session controller'
src={SessionControllerImage}
></img>
<img className='SessionImage' alt='Session controller' src={SessionControllerImage}></img>
</Box>
</div>
</Slide>
</Grid>
</Grid>
<AboutPlanningPokerContent />
</Grid>
<Footer />
</>
);
};
Expand Down

0 comments on commit 24273b9

Please sign in to comment.