feat: change direction for 5S! It's time to make this article!
This commit is contained in:
@@ -1,6 +1,4 @@
|
||||
<script setup lang="ts">
|
||||
import CoffeeDay from '@/modules/5s/game/CoffeeDay.vue'
|
||||
|
||||
const createdAt = new Date('2025-01-08').toLocaleDateString(undefined, {
|
||||
year: 'numeric',
|
||||
month: 'long',
|
||||
@@ -37,7 +35,6 @@ const createdAt = new Date('2025-01-08').toLocaleDateString(undefined, {
|
||||
As you look down at the paper, you see a bunch of lists, todos, and
|
||||
notes in a brown used paper. It looks like it has lived more than you.
|
||||
</p>
|
||||
<CoffeeDay />
|
||||
</div>
|
||||
</article>
|
||||
</template>
|
||||
|
||||
@@ -1,174 +0,0 @@
|
||||
export type OpeningCoffeeShop = 'opening-coffee-shop'
|
||||
export type ClosingCoffeeShop = 'closing-coffee-shop'
|
||||
|
||||
type Coffee =
|
||||
| 'latte'
|
||||
| 'flat white'
|
||||
| 'cold brew'
|
||||
| 'cappuccino'
|
||||
| 'espresso'
|
||||
| 'macchiato'
|
||||
| 'mocha'
|
||||
| 'americano'
|
||||
| 'iced latte'
|
||||
| 'chai latte'
|
||||
|
||||
type Brunch = 'eggs benedict' | 'avocado toast' | 'pancakes' | 'waffles'
|
||||
|
||||
type Deliverable = Coffee | OpeningCoffeeShop | ClosingCoffeeShop | Brunch
|
||||
type Step =
|
||||
| 'steam milk'
|
||||
| 'extract espresso'
|
||||
| 'pour milk'
|
||||
| 'pour espresso'
|
||||
| 'add ice'
|
||||
| 'add water'
|
||||
| 'add chai'
|
||||
| 'add chocolate'
|
||||
| 'turn on lights'
|
||||
| 'turn on equipment'
|
||||
| 'prepare ingredients'
|
||||
| 'clean equipment'
|
||||
| 'store ingredients'
|
||||
| 'turn off equipment'
|
||||
| 'turn off lights'
|
||||
| 'poach eggs'
|
||||
| 'toast muffin'
|
||||
| 'cook bacon'
|
||||
| 'make hollandaise sauce'
|
||||
| 'toast bread'
|
||||
| 'slice avocado'
|
||||
| 'mix batter'
|
||||
| 'cook pancakes'
|
||||
| 'cook waffles'
|
||||
|
||||
export const aliases: Record<string, Step> = {
|
||||
sm: 'steam milk',
|
||||
ee: 'extract espresso',
|
||||
pm: 'pour milk',
|
||||
pe: 'pour espresso',
|
||||
ai: 'add ice',
|
||||
aw: 'add water',
|
||||
ac: 'add chai',
|
||||
ach: 'add chocolate',
|
||||
tol: 'turn on lights',
|
||||
toe: 'turn on equipment',
|
||||
pi: 'prepare ingredients',
|
||||
ce: 'clean equipment',
|
||||
si: 'store ingredients',
|
||||
tfe: 'turn off equipment',
|
||||
tfl: 'turn off lights',
|
||||
poe: 'poach eggs',
|
||||
tm: 'toast muffin',
|
||||
cb: 'cook bacon',
|
||||
mhs: 'make hollandaise sauce',
|
||||
tb: 'toast bread',
|
||||
sa: 'slice avocado',
|
||||
mb: 'mix batter',
|
||||
cp: 'cook pancakes',
|
||||
cw: 'cook waffles'
|
||||
}
|
||||
|
||||
type Preparation = Record<Deliverable, Step[]>
|
||||
|
||||
export const deliverables: Preparation = {
|
||||
'opening-coffee-shop': [
|
||||
'turn on lights',
|
||||
'turn on equipment',
|
||||
'prepare ingredients'
|
||||
],
|
||||
latte: ['steam milk', 'extract espresso', 'pour milk', 'pour espresso'],
|
||||
'iced latte': [
|
||||
'steam milk',
|
||||
'extract espresso',
|
||||
'pour milk',
|
||||
'pour espresso',
|
||||
'add ice'
|
||||
],
|
||||
'cold brew': ['extract espresso', 'add water', 'add ice'],
|
||||
'chai latte': [
|
||||
'steam milk',
|
||||
'extract espresso',
|
||||
'pour milk',
|
||||
'pour espresso',
|
||||
'add chai'
|
||||
],
|
||||
'flat white': [
|
||||
'steam milk',
|
||||
'extract espresso',
|
||||
'pour milk',
|
||||
'pour espresso'
|
||||
],
|
||||
cappuccino: ['steam milk', 'extract espresso', 'pour milk', 'pour espresso'],
|
||||
espresso: ['extract espresso'],
|
||||
macchiato: ['extract espresso', 'pour milk'],
|
||||
mocha: [
|
||||
'steam milk',
|
||||
'extract espresso',
|
||||
'pour milk',
|
||||
'pour espresso',
|
||||
'add chocolate'
|
||||
],
|
||||
americano: ['extract espresso', 'add water'],
|
||||
'eggs benedict': [
|
||||
'poach eggs',
|
||||
'toast muffin',
|
||||
'cook bacon',
|
||||
'make hollandaise sauce'
|
||||
],
|
||||
'avocado toast': ['toast bread', 'slice avocado', 'poach eggs'],
|
||||
pancakes: ['mix batter', 'cook pancakes'],
|
||||
waffles: ['mix batter', 'cook waffles'],
|
||||
'closing-coffee-shop': [
|
||||
'clean equipment',
|
||||
'store ingredients',
|
||||
'turn off equipment',
|
||||
'turn off lights'
|
||||
]
|
||||
}
|
||||
|
||||
export const getDeliverable = (deliverable: Deliverable): Step[] => {
|
||||
switch (deliverable) {
|
||||
case 'opening-coffee-shop':
|
||||
return deliverables[deliverable]
|
||||
case 'latte':
|
||||
return deliverables[deliverable]
|
||||
case 'iced latte':
|
||||
return deliverables[deliverable]
|
||||
case 'cold brew':
|
||||
return deliverables[deliverable]
|
||||
case 'chai latte':
|
||||
return deliverables[deliverable]
|
||||
case 'flat white':
|
||||
return deliverables[deliverable]
|
||||
case 'cappuccino':
|
||||
return deliverables[deliverable]
|
||||
case 'espresso':
|
||||
return deliverables[deliverable]
|
||||
case 'macchiato':
|
||||
return deliverables[deliverable]
|
||||
case 'mocha':
|
||||
return deliverables[deliverable]
|
||||
case 'americano':
|
||||
return deliverables[deliverable]
|
||||
case 'eggs benedict':
|
||||
return deliverables[deliverable]
|
||||
case 'avocado toast':
|
||||
return deliverables[deliverable]
|
||||
case 'pancakes':
|
||||
return deliverables[deliverable]
|
||||
case 'waffles':
|
||||
return deliverables[deliverable]
|
||||
case 'closing-coffee-shop':
|
||||
return deliverables[deliverable]
|
||||
}
|
||||
}
|
||||
|
||||
export const getAllSteps = (): Set<string> => {
|
||||
const allSteps = Object.values(deliverables).reduce(
|
||||
(acc, steps) => acc.concat(steps),
|
||||
[]
|
||||
)
|
||||
|
||||
return new Set(allSteps)
|
||||
}
|
||||
@@ -1,15 +0,0 @@
|
||||
<script setup lang="ts"></script>
|
||||
|
||||
<template>
|
||||
<div class="coffee-day">
|
||||
<button>Start the day</button>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.coffee-day {
|
||||
button {
|
||||
color: white;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
27
src/modules/5s/types/activity.ts
Normal file
27
src/modules/5s/types/activity.ts
Normal file
@@ -0,0 +1,27 @@
|
||||
type NonEmptyArray<T> = [T, ...T[]]
|
||||
|
||||
export type Tool = {
|
||||
name: string
|
||||
alias: string
|
||||
cooldown: number
|
||||
}
|
||||
|
||||
export type Task = {
|
||||
name: string
|
||||
tools: NonEmptyArray<Tool>
|
||||
}
|
||||
|
||||
export type Activity = {
|
||||
name: string
|
||||
tasks: NonEmptyArray<Task>
|
||||
}
|
||||
|
||||
export type Deliverable = {
|
||||
name: string
|
||||
activities: NonEmptyArray<Activity>
|
||||
}
|
||||
|
||||
export type Domain = {
|
||||
name: string
|
||||
deliverables: NonEmptyArray<Deliverable>
|
||||
}
|
||||
423
src/modules/5s/types/domain.ts
Normal file
423
src/modules/5s/types/domain.ts
Normal file
@@ -0,0 +1,423 @@
|
||||
// ----------------------
|
||||
// Outils globaux (16)
|
||||
// ----------------------
|
||||
|
||||
import { Deliverable, Tool } from '@/modules/5s/types/activity'
|
||||
|
||||
export const tools: Tool[] = [
|
||||
{ name: 'Drill', alias: 'power drill', cooldown: 2 },
|
||||
{ name: 'Screwdriver', alias: 'driver', cooldown: 1 },
|
||||
{ name: 'Measuring Tape', alias: 'tape', cooldown: 1 },
|
||||
{ name: 'Pencil', alias: 'marker', cooldown: 1 },
|
||||
{ name: 'Glue Gun', alias: 'hot glue', cooldown: 1 },
|
||||
{ name: 'Clamps', alias: 'fasteners', cooldown: 1 },
|
||||
{ name: 'Scissors', alias: 'cutter', cooldown: 1 },
|
||||
{ name: 'Ruler', alias: 'straight edge', cooldown: 1 },
|
||||
{ name: 'Pruning Shears', alias: 'secateurs', cooldown: 1 },
|
||||
{ name: 'Watering Can', alias: 'can', cooldown: 1 },
|
||||
{ name: 'Trowel', alias: 'hand shovel', cooldown: 1 },
|
||||
{ name: 'Hammer', alias: 'mallet', cooldown: 1 },
|
||||
{ name: 'Saw', alias: 'handsaw', cooldown: 2 },
|
||||
{ name: 'Hole Punch', alias: 'punch', cooldown: 1 },
|
||||
{ name: 'Laminator', alias: 'cover sealer', cooldown: 2 },
|
||||
{ name: 'Stapler', alias: 'binder', cooldown: 1 }
|
||||
]
|
||||
|
||||
// ----------------------
|
||||
// GARDENING (7 outils max)
|
||||
// Outils utilisés : 0, 2, 3, 4, 5, 8, 10
|
||||
// ----------------------
|
||||
|
||||
export const gardening: Deliverable[] = [
|
||||
{
|
||||
name: 'Vegetable Patch',
|
||||
activities: [
|
||||
{
|
||||
name: 'Soil Preparation',
|
||||
tasks: [
|
||||
{
|
||||
name: 'Loosen soil and compost',
|
||||
tools: [tools[10], tools[4]]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
name: 'Plot Planning',
|
||||
tasks: [
|
||||
{
|
||||
name: 'Mark row layout',
|
||||
tools: [tools[2], tools[3]]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
name: 'Compost Bin Assembly',
|
||||
activities: [
|
||||
{
|
||||
name: 'Cut Panels',
|
||||
tasks: [
|
||||
{
|
||||
name: 'Drill and shape wood panels',
|
||||
tools: [tools[0], tools[5]]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
name: 'Shrub Pruning',
|
||||
activities: [
|
||||
{
|
||||
name: 'Dead Branch Removal',
|
||||
tasks: [
|
||||
{
|
||||
name: 'Cut branches cleanly',
|
||||
tools: [tools[8]]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
name: 'Raised Garden Bed',
|
||||
activities: [
|
||||
{
|
||||
name: 'Frame Layout',
|
||||
tasks: [
|
||||
{
|
||||
name: 'Measure garden bed size',
|
||||
tools: [tools[2], tools[3]]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
name: 'Frame Assembly',
|
||||
tasks: [
|
||||
{
|
||||
name: 'Join corners with clamps',
|
||||
tools: [tools[0], tools[5]]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
name: 'Soil Filling',
|
||||
tasks: [
|
||||
{
|
||||
name: 'Add compost and soil',
|
||||
tools: [tools[10]]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
name: 'Herb Garden Planters',
|
||||
activities: [
|
||||
{
|
||||
name: 'Trough Installation',
|
||||
tasks: [
|
||||
{
|
||||
name: 'Fix containers to wall',
|
||||
tools: [tools[0], tools[4]]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
name: 'Watering Routine',
|
||||
activities: [
|
||||
{
|
||||
name: 'Daily Watering',
|
||||
tasks: [
|
||||
{
|
||||
name: 'Irrigate each section',
|
||||
tools: [tools[9]]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
name: 'Garden Signposts',
|
||||
activities: [
|
||||
{
|
||||
name: 'Label Creation',
|
||||
tasks: [
|
||||
{
|
||||
name: 'Write and install plant tags',
|
||||
tools: [tools[3], tools[0]]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
|
||||
// ----------------------
|
||||
// CABINETMAKING (7 outils max)
|
||||
// Outils utilisés : 0, 1, 2, 3, 4, 5, 12
|
||||
// ----------------------
|
||||
|
||||
export const cabinetmaking: Deliverable[] = [
|
||||
{
|
||||
name: 'Bookshelf',
|
||||
activities: [
|
||||
{
|
||||
name: 'Cut & Layout',
|
||||
tasks: [
|
||||
{
|
||||
name: 'Measure and saw planks',
|
||||
tools: [tools[2], tools[12]]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
name: 'Assemble Frame',
|
||||
tasks: [
|
||||
{
|
||||
name: 'Join pieces with clamps',
|
||||
tools: [tools[0], tools[5]]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
name: 'Wall Cabinet',
|
||||
activities: [
|
||||
{
|
||||
name: 'Support Fixing',
|
||||
tasks: [
|
||||
{
|
||||
name: 'Drill mount points',
|
||||
tools: [tools[0], tools[1]]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
name: 'Structure Framing',
|
||||
tasks: [
|
||||
{
|
||||
name: 'Align and glue panels',
|
||||
tools: [tools[3], tools[4]]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
name: 'Work Bench',
|
||||
activities: [
|
||||
{
|
||||
name: 'Surface Prep',
|
||||
tasks: [
|
||||
{
|
||||
name: 'Saw and place top',
|
||||
tools: [tools[12], tools[2]]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
name: 'Legs Mounting',
|
||||
tasks: [
|
||||
{
|
||||
name: 'Drill and screw base',
|
||||
tools: [tools[0], tools[1]]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
name: 'Clamping Rails',
|
||||
tasks: [
|
||||
{
|
||||
name: 'Fix side clamps',
|
||||
tools: [tools[5]]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
name: 'Drawer Unit',
|
||||
activities: [
|
||||
{
|
||||
name: 'Slide Installation',
|
||||
tasks: [
|
||||
{
|
||||
name: 'Screw rails to sides',
|
||||
tools: [tools[0], tools[1]]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
name: 'Wooden Crate',
|
||||
activities: [
|
||||
{
|
||||
name: 'Handle Mounting',
|
||||
tasks: [
|
||||
{
|
||||
name: 'Mark and screw side handles',
|
||||
tools: [tools[2], tools[1]]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
name: 'Desk Frame',
|
||||
activities: [
|
||||
{
|
||||
name: 'Joint Assembly',
|
||||
tasks: [
|
||||
{
|
||||
name: 'Glue and press legs',
|
||||
tools: [tools[4], tools[5]]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
name: 'Tool Wall Board',
|
||||
activities: [
|
||||
{
|
||||
name: 'Peg Layout',
|
||||
tasks: [
|
||||
{
|
||||
name: 'Drill holes for pegs',
|
||||
tools: [tools[0], tools[3]]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
|
||||
// ----------------------
|
||||
// STATIONERY (7 outils max)
|
||||
// Outils utilisés : 3, 4, 6, 7, 13, 14, 15
|
||||
// ----------------------
|
||||
|
||||
export const stationery: Deliverable[] = [
|
||||
{
|
||||
name: 'Notebook',
|
||||
activities: [
|
||||
{
|
||||
name: 'Cover Cutting',
|
||||
tasks: [
|
||||
{
|
||||
name: 'Trim cover edges',
|
||||
tools: [tools[6], tools[7]]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
name: 'Punch & Staple',
|
||||
tasks: [
|
||||
{
|
||||
name: 'Assemble pages',
|
||||
tools: [tools[13], tools[15]]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
name: 'Greeting Card Pack',
|
||||
activities: [
|
||||
{
|
||||
name: 'Card Folding',
|
||||
tasks: [
|
||||
{
|
||||
name: 'Score and fold paper',
|
||||
tools: [tools[3], tools[7]]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
name: 'Planner',
|
||||
activities: [
|
||||
{
|
||||
name: 'Cover Lamination',
|
||||
tasks: [
|
||||
{
|
||||
name: 'Laminate front and back',
|
||||
tools: [tools[14]]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
name: 'Hole Punching',
|
||||
tasks: [
|
||||
{
|
||||
name: 'Align and punch sheets',
|
||||
tools: [tools[13]]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
name: 'Scrapbook Kit',
|
||||
activities: [
|
||||
{
|
||||
name: 'Element Gluing',
|
||||
tasks: [
|
||||
{
|
||||
name: 'Place and fix items',
|
||||
tools: [tools[4]]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
name: 'Bookmark Set',
|
||||
activities: [
|
||||
{
|
||||
name: 'Cutting & Decorating',
|
||||
tasks: [
|
||||
{
|
||||
name: 'Shape and draw marks',
|
||||
tools: [tools[6], tools[3]]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
name: 'Envelope Set',
|
||||
activities: [
|
||||
{
|
||||
name: 'Flap Assembly',
|
||||
tasks: [
|
||||
{
|
||||
name: 'Trim, glue, and fold',
|
||||
tools: [tools[6], tools[4]]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
name: 'Filing Labels',
|
||||
activities: [
|
||||
{
|
||||
name: 'Layout & Cutting',
|
||||
tasks: [
|
||||
{
|
||||
name: 'Mark and cut tabs',
|
||||
tools: [tools[3], tools[6]]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
Reference in New Issue
Block a user