add mobile app features
This commit is contained in:
32
src/data/app-feature.ts
Normal file
32
src/data/app-feature.ts
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
export const appFeatures = [
|
||||||
|
'Login / Sign Up',
|
||||||
|
'Search',
|
||||||
|
'Geolocation',
|
||||||
|
'Note Taking',
|
||||||
|
'Calendar Integration',
|
||||||
|
'Push Notifications',
|
||||||
|
'In-App Purchases',
|
||||||
|
'Social Media Integration',
|
||||||
|
'Location Services',
|
||||||
|
'Offline first Mode',
|
||||||
|
'User Profile',
|
||||||
|
'Analytics',
|
||||||
|
'Multi-language Support',
|
||||||
|
'Dark Mode',
|
||||||
|
'QR Code Scanner',
|
||||||
|
'Cloud Sync',
|
||||||
|
'Customizable Themes',
|
||||||
|
'File Uploads',
|
||||||
|
'Video Streaming',
|
||||||
|
'Voice Commands',
|
||||||
|
'Augmented Reality',
|
||||||
|
'Data Encryption',
|
||||||
|
'Biometric Authentication',
|
||||||
|
'Wearable Integration',
|
||||||
|
'Smart Home Integration',
|
||||||
|
'IoT Connectivity',
|
||||||
|
'Predictive Text',
|
||||||
|
'Speech Recognition',
|
||||||
|
'Image Recognition',
|
||||||
|
'Document Scanning'
|
||||||
|
]
|
||||||
@@ -10,7 +10,7 @@ defineProps<{ alias: string }>()
|
|||||||
|
|
||||||
const featureStore = useFeatureStore()
|
const featureStore = useFeatureStore()
|
||||||
|
|
||||||
onMounted(() => featureStore.initBoard(NUMBER_OF_FEATURES))
|
onMounted(() => featureStore.initBoard('mobile-app', NUMBER_OF_FEATURES))
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
|
|||||||
@@ -1,8 +1,14 @@
|
|||||||
import { Feature, FeatureStatus } from '@/modules/pull-system/feature/feature'
|
import type {
|
||||||
import { FeatureStep } from '@/modules/pull-system/feature/feature-steps'
|
Feature,
|
||||||
import { features as initialFeatures } from '@/modules/pull-system/feature/feature.fixture'
|
FeatureStatus
|
||||||
import { Strategy } from '@/modules/lean/strategy'
|
} from '@/modules/pull-system/feature/feature'
|
||||||
import { FeatureState } from '@/store-type'
|
import type { FeatureStep } from '@/modules/pull-system/feature/feature-steps'
|
||||||
|
import {
|
||||||
|
birdFeatures,
|
||||||
|
mobileAppFeatures
|
||||||
|
} from '@/modules/pull-system/feature/feature.fixture'
|
||||||
|
import type { Strategy } from '@/modules/pull-system/lean/strategy'
|
||||||
|
import type { FeatureState } from '@/store-type'
|
||||||
import {
|
import {
|
||||||
getMean,
|
getMean,
|
||||||
pickRandomElement,
|
pickRandomElement,
|
||||||
@@ -67,10 +73,12 @@ const mayBeInProgress = ({
|
|||||||
return feature.status
|
return feature.status
|
||||||
}
|
}
|
||||||
|
|
||||||
export const newBacklog = (limit?: number) =>
|
export const newBacklog = (type: 'bird' | 'mobile-app', limit?: number) => {
|
||||||
limit !== undefined
|
const initialFeatures = type === 'bird' ? birdFeatures : mobileAppFeatures
|
||||||
|
return limit !== undefined
|
||||||
? popNElement(shuffleArray(initialFeatures), limit)
|
? popNElement(shuffleArray(initialFeatures), limit)
|
||||||
: shuffleArray(initialFeatures)
|
: shuffleArray(initialFeatures)
|
||||||
|
}
|
||||||
|
|
||||||
export const initBoard = (
|
export const initBoard = (
|
||||||
steps: FeatureStep[],
|
steps: FeatureStep[],
|
||||||
@@ -210,7 +218,7 @@ const getQualityProbability = (
|
|||||||
switch (complexity) {
|
switch (complexity) {
|
||||||
case 1:
|
case 1:
|
||||||
probabilityOfGoodQuality = 0.95
|
probabilityOfGoodQuality = 0.95
|
||||||
|
break
|
||||||
case 2:
|
case 2:
|
||||||
probabilityOfGoodQuality = 0.88
|
probabilityOfGoodQuality = 0.88
|
||||||
break
|
break
|
||||||
|
|||||||
@@ -34,8 +34,8 @@ export const useFeatureStore = defineStore('feature', {
|
|||||||
meta: resetMeta()
|
meta: resetMeta()
|
||||||
}),
|
}),
|
||||||
actions: {
|
actions: {
|
||||||
async initBoard(limit?: number) {
|
async initBoard(type: 'bird' | 'mobile-app', limit?: number) {
|
||||||
this.backlog = newBacklog(limit)
|
this.backlog = newBacklog(type, limit)
|
||||||
this.steps = featureSteps
|
this.steps = featureSteps
|
||||||
this.features = initBoard(this.steps, this.backlog)
|
this.features = initBoard(this.steps, this.backlog)
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
import { appFeatures } from '@/data/app-feature'
|
||||||
import { birds } from '@/data/bird'
|
import { birds } from '@/data/bird'
|
||||||
import { Feature } from '@/modules/pull-system/feature/feature'
|
import { Feature } from '@/modules/pull-system/feature/feature'
|
||||||
import { randomInteger } from '@/utils'
|
import { randomInteger } from '@/utils'
|
||||||
@@ -10,3 +11,21 @@ export const features: Feature[] = birds.map((name) => ({
|
|||||||
step: Infinity,
|
step: Infinity,
|
||||||
qualityIssue: 0
|
qualityIssue: 0
|
||||||
}))
|
}))
|
||||||
|
|
||||||
|
export const birdFeatures: Feature[] = birds.map((name) => ({
|
||||||
|
name,
|
||||||
|
complexity: randomInteger(1, 5),
|
||||||
|
leadTime: 0,
|
||||||
|
status: 'doing',
|
||||||
|
step: Infinity,
|
||||||
|
qualityIssue: 0
|
||||||
|
}))
|
||||||
|
|
||||||
|
export const mobileAppFeatures: Feature[] = appFeatures.map((name) => ({
|
||||||
|
name,
|
||||||
|
complexity: randomInteger(1, 5),
|
||||||
|
leadTime: 0,
|
||||||
|
status: 'doing',
|
||||||
|
step: Infinity,
|
||||||
|
qualityIssue: 0
|
||||||
|
}))
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import { featureSteps } from '@/modules/pull-system/feature/feature-steps'
|
import { featureSteps } from '@/modules/pull-system/feature/feature-steps'
|
||||||
import { Strategy } from '@/modules/lean/strategy'
|
import type { Strategy } from '@/modules/pull-system/lean/strategy'
|
||||||
import { Dashboard, Meta } from '@/store-type'
|
import type { Dashboard, Meta } from '@/store-type'
|
||||||
import { getRound } from '@/utils'
|
import { getRound } from '@/utils'
|
||||||
import { defineStore } from 'pinia'
|
import { defineStore } from 'pinia'
|
||||||
|
|
||||||
@@ -64,7 +64,7 @@ export const useSimulationStore = defineStore('dashboard', {
|
|||||||
actions: {
|
actions: {
|
||||||
async simulate(strategy: Strategy) {
|
async simulate(strategy: Strategy) {
|
||||||
const steps = featureSteps
|
const steps = featureSteps
|
||||||
const backlog = await instance.newBacklog()
|
const backlog = await instance.newBacklog('bird')
|
||||||
const features = await instance.initBoard(steps, backlog)
|
const features = await instance.initBoard(steps, backlog)
|
||||||
|
|
||||||
const newState = await instance.simulate(
|
const newState = await instance.simulate(
|
||||||
|
|||||||
Reference in New Issue
Block a user