diff --git a/src/components/Season/SeasonCard.tsx b/src/components/Season/SeasonCard.tsx
index a989d17118a6d7694b0005e6da0fba9a887f225b..a7b33712aae78c02d343f47015f57eb568ec7fdc 100644
--- a/src/components/Season/SeasonCard.tsx
+++ b/src/components/Season/SeasonCard.tsx
@@ -6,7 +6,7 @@ import SeasonCardDone from './SeasonCardDone'
 import SeasonCardLocked from './SeasonCardLocked'
 import SeasonCardOnGoing from './SeasonCardOnGoing'
 import SeasonCardUnlocked from './SeasonCardUnlocked'
-import './season.scss'
+import './seasonCard.scss'
 
 interface SeasonCardProps {
   userSeason: UserSeason
diff --git a/src/components/Season/SeasonCardBoss.tsx b/src/components/Season/SeasonCardBoss.tsx
index 1be2373ba2e7b4fe1a9b6a5233053884b60af1fb..0ea3cc766c43870813bc0279fcb4ab9f1e12ce3a 100644
--- a/src/components/Season/SeasonCardBoss.tsx
+++ b/src/components/Season/SeasonCardBoss.tsx
@@ -1,5 +1,5 @@
 import React from 'react'
-import './season.scss'
+import './seasonCardBoss.scss'
 import { UserSeason } from 'models'
 
 interface SeasonCardBossProps {
diff --git a/src/components/Season/SeasonCardDone.tsx b/src/components/Season/SeasonCardDone.tsx
index 008311b7d0fb3b3f30b421bcd5f69236cc742b1c..2786a5c3eede1de3f5ac53217fb04ec0f38a9c6e 100644
--- a/src/components/Season/SeasonCardDone.tsx
+++ b/src/components/Season/SeasonCardDone.tsx
@@ -1,5 +1,5 @@
 import React from 'react'
-import './season.scss'
+import './seasonCardDone.scss'
 import { UserSeason } from 'models'
 
 interface SeasonCardDoneProps {
diff --git a/src/components/Season/SeasonCardLocked.tsx b/src/components/Season/SeasonCardLocked.tsx
index d79453ceb777b33113d72b37a0776b72961140e8..1755497496f4a7e8749bd89545bc6673a1572d3f 100644
--- a/src/components/Season/SeasonCardLocked.tsx
+++ b/src/components/Season/SeasonCardLocked.tsx
@@ -1,5 +1,5 @@
 import React from 'react'
-import './season.scss'
+import './seasonCardLocked.scss'
 import { UserSeason } from 'models'
 
 interface SeasonCardLockedProps {
diff --git a/src/components/Season/SeasonCardOnGoing.tsx b/src/components/Season/SeasonCardOnGoing.tsx
index dd6d345f8b83b627f769f184c17461f0e025f67b..eecd75939dade5ff5de59780f6f2dc7676cb8c46 100644
--- a/src/components/Season/SeasonCardOnGoing.tsx
+++ b/src/components/Season/SeasonCardOnGoing.tsx
@@ -1,6 +1,11 @@
-import React from 'react'
-import './season.scss'
+import React, { useCallback } from 'react'
+import { Client, useClient } from 'cozy-client'
+import { useDispatch } from 'react-redux'
+import { updateUserSeasonList } from 'store/season/season.actions'
+import './seasonCardOnGoing.scss'
+import SeasonService from 'services/season.service'
 import { UserSeason } from 'models'
+import { UpdateUserSeason } from 'enum/updateUserSeason.enum'
 
 interface SeasonCardOnGoingProps {
   userSeason: UserSeason
@@ -8,10 +13,39 @@ interface SeasonCardOnGoingProps {
 const SeasonCardOnGoing: React.FC<SeasonCardOnGoingProps> = ({
   userSeason,
 }: SeasonCardOnGoingProps) => {
+  const client: Client = useClient()
+  const dispatch = useDispatch()
+
+  const winStarts = useCallback(async () => {
+    const seasonService = new SeasonService(client)
+    userSeason.progress + 5 >= userSeason.target
+      ? (userSeason.progress = userSeason.target)
+      : (userSeason.progress += 5)
+    const updatedSeason = await seasonService.updateUserSeason(
+      userSeason,
+      UpdateUserSeason.SEASON
+    )
+    dispatch(updateUserSeasonList(updatedSeason))
+  }, [client, dispatch, userSeason])
+
+  const launchBoss = useCallback(async () => {
+    const seasonService = new SeasonService(client)
+    const updatedSeason = await seasonService.updateUserSeason(
+      userSeason,
+      UpdateUserSeason.BOSS_START
+    )
+    dispatch(updateUserSeasonList(updatedSeason))
+  }, [client, dispatch, userSeason])
+
   return (
     <div className="cardContent">
       <p className="title">Saison</p>
       <span className="seasonTitle">{userSeason.title}</span>
+      <button onClick={winStarts}>Gagner 5 étoiles</button>
+      <div>{`${userSeason.progress} / ${userSeason.target} Etoiles`}</div>
+      {userSeason.progress >= userSeason.target ? (
+        <button onClick={launchBoss}>Lancer le boss</button>
+      ) : null}
     </div>
   )
 }
diff --git a/src/components/Season/SeasonCardUnlocked.tsx b/src/components/Season/SeasonCardUnlocked.tsx
index 50642f81229cd4f381650184312c083f40edefc5..9545d8757b00b0a55d45c9a6462ad746ed900d74 100644
--- a/src/components/Season/SeasonCardUnlocked.tsx
+++ b/src/components/Season/SeasonCardUnlocked.tsx
@@ -1,11 +1,11 @@
 import React, { useCallback } from 'react'
 import { Client, useClient } from 'cozy-client'
 import { useDispatch } from 'react-redux'
-import './season.scss'
+import { updateUserSeasonList } from 'store/season/season.actions'
+import './seasonCardUnlocked.scss'
 import { UserSeason } from 'models'
 import SeasonService from 'services/season.service'
 import StyledButtonValid from 'components/CommonKit/Button/StyledButtonValid'
-import { updateUserSeasonList } from 'store/season/season.actions'
 
 interface SeasonCardUnlockedProps {
   userSeason: UserSeason
diff --git a/src/components/Season/SeasonView.tsx b/src/components/Season/SeasonView.tsx
index 085f29f55434e9cd46e077a2affd14f401621b74..8ce712d303391c6c4d3b213970823303ddfa683f 100644
--- a/src/components/Season/SeasonView.tsx
+++ b/src/components/Season/SeasonView.tsx
@@ -1,5 +1,5 @@
 import React, { useState } from 'react'
-import './season.scss'
+import './seasonView.scss'
 import { useSelector } from 'react-redux'
 import { EcolyoState } from 'store'
 import CozyBar from 'components/Header/CozyBar'
diff --git a/src/components/Season/season.scss b/src/components/Season/season.scss
deleted file mode 100644
index 3a81d3f0d7488b7e21e525317281d7e88065c12a..0000000000000000000000000000000000000000
--- a/src/components/Season/season.scss
+++ /dev/null
@@ -1,69 +0,0 @@
-@import '../../styles/base/typography';
-
-.seasonSlider {
-  min-height: inherit;
-  margin-top: -2rem;
-  overflow-x: hidden;
-  padding: 2rem;
-  position: relative;
-  max-width: 850px;
-  user-select: none;
-  @media all and (min-width: $width-tablet) {
-    margin: auto;
-    margin-top: 2rem;
-    min-height: 0;
-  }
-
-  .container {
-    min-height: inherit;
-    width: 100%;
-    display: flex;
-    transition: all 300ms ease;
-    .slide {
-      margin: auto;
-      height: 465px;
-      // max-width: 285px;
-      // min-width: 285px;
-      background: linear-gradient(180deg, #323339 0%, #25262b 100%);
-      box-shadow: 0px 4px 16px rgba(0, 0, 0, 0.55);
-      border-radius: 4px;
-      margin-right: 1rem;
-      transition: all 300ms ease;
-      color: white;
-      display: flex;
-      flex-direction: column;
-      transform: scale(0.9);
-
-      &.active {
-        transform: scale(1.08);
-      }
-      .cardContent {
-        margin: auto;
-        .title {
-          font-weight: 400;
-          text-align: center;
-          text-transform: uppercase;
-          font-family: $text-font;
-          font-size: 1rem;
-          margin-bottom: 0;
-        }
-        .seasonTitle {
-          display: block;
-          font-weight: 700;
-          text-align: center;
-          font-family: $text-font;
-          color: $grey-bright;
-          font-size: 1.2rem;
-        }
-      }
-    }
-  }
-}
-.sliderButtons {
-  text-align: center;
-  margin: auto;
-  margin-top: 1.5rem;
-  @media all and (max-width: $width-tablet) {
-    display: none;
-  }
-}
diff --git a/src/components/Season/seasonCard.scss b/src/components/Season/seasonCard.scss
new file mode 100644
index 0000000000000000000000000000000000000000..a3ccd4e0d646398d0ef635431ccd48996ab81c2c
--- /dev/null
+++ b/src/components/Season/seasonCard.scss
@@ -0,0 +1,23 @@
+@import '../../styles/base/typography';
+
+.slide {
+  margin: auto;
+  height: 465px;
+  // max-width: 285px;
+  // min-width: 285px;
+  background: linear-gradient(180deg, #323339 0%, #25262b 100%);
+  box-shadow: 0px 4px 16px rgba(0, 0, 0, 0.55);
+  border-radius: 4px;
+  margin-right: 1rem;
+  transition: all 300ms ease;
+  color: white;
+  display: flex;
+  flex-direction: column;
+  transform: scale(0.9);
+
+  &.active {
+    transform: scale(1.08);
+  }
+  
+}
+
diff --git a/src/components/Season/seasonCardBoss.scss b/src/components/Season/seasonCardBoss.scss
new file mode 100644
index 0000000000000000000000000000000000000000..e4300007a6ea8c2a1a5e7df46294d2ee3c552521
--- /dev/null
+++ b/src/components/Season/seasonCardBoss.scss
@@ -0,0 +1,2 @@
+@import '../../styles/base/typography';
+
diff --git a/src/components/Season/seasonCardDone.scss b/src/components/Season/seasonCardDone.scss
new file mode 100644
index 0000000000000000000000000000000000000000..e4300007a6ea8c2a1a5e7df46294d2ee3c552521
--- /dev/null
+++ b/src/components/Season/seasonCardDone.scss
@@ -0,0 +1,2 @@
+@import '../../styles/base/typography';
+
diff --git a/src/components/Season/seasonCardLocked.scss b/src/components/Season/seasonCardLocked.scss
new file mode 100644
index 0000000000000000000000000000000000000000..e4300007a6ea8c2a1a5e7df46294d2ee3c552521
--- /dev/null
+++ b/src/components/Season/seasonCardLocked.scss
@@ -0,0 +1,2 @@
+@import '../../styles/base/typography';
+
diff --git a/src/components/Season/seasonCardOnGoing.scss b/src/components/Season/seasonCardOnGoing.scss
new file mode 100644
index 0000000000000000000000000000000000000000..e4300007a6ea8c2a1a5e7df46294d2ee3c552521
--- /dev/null
+++ b/src/components/Season/seasonCardOnGoing.scss
@@ -0,0 +1,2 @@
+@import '../../styles/base/typography';
+
diff --git a/src/components/Season/seasonCardUnlocked.scss b/src/components/Season/seasonCardUnlocked.scss
new file mode 100644
index 0000000000000000000000000000000000000000..e4300007a6ea8c2a1a5e7df46294d2ee3c552521
--- /dev/null
+++ b/src/components/Season/seasonCardUnlocked.scss
@@ -0,0 +1,2 @@
+@import '../../styles/base/typography';
+
diff --git a/src/components/Season/seasonView.scss b/src/components/Season/seasonView.scss
new file mode 100644
index 0000000000000000000000000000000000000000..44e1cc41f2128a90233b1dd9aa20d64d9a6677b9
--- /dev/null
+++ b/src/components/Season/seasonView.scss
@@ -0,0 +1,49 @@
+@import '../../styles/base/typography';
+
+.seasonSlider {
+  min-height: inherit;
+  margin-top: -2rem;
+  overflow-x: hidden;
+  padding: 2rem;
+  position: relative;
+  max-width: 850px;
+  user-select: none;
+  @media all and (min-width: $width-tablet) {
+    margin: auto;
+    margin-top: 2rem;
+    min-height: 0;
+  }
+}
+.container {
+  min-height: inherit;
+  width: 100%;
+  display: flex;
+  transition: all 300ms ease;
+}
+.cardContent {
+  margin: auto;
+  .title {
+    font-weight: 400;
+    text-align: center;
+    text-transform: uppercase;
+    font-family: $text-font;
+    font-size: 1rem;
+    margin-bottom: 0;
+  }
+  .seasonTitle {
+    display: block;
+    font-weight: 700;
+    text-align: center;
+    font-family: $text-font;
+    color: $grey-bright;
+    font-size: 1.2rem;
+  }
+}
+.sliderButtons {
+  text-align: center;
+  margin: auto;
+  margin-top: 1.5rem;
+  @media all and (max-width: $width-tablet) {
+    display: none;
+  }
+}
\ No newline at end of file
diff --git a/src/db/seasonEntity.json b/src/db/seasonEntity.json
index 18ab7aff9699922d306886ff7281d0a69d31bc4b..2f755459a7fbd6b6c722bb73790eedb9faf069c3 100644
--- a/src/db/seasonEntity.json
+++ b/src/db/seasonEntity.json
@@ -3,7 +3,7 @@
     "_id": "SEASON0001",
     "title": "Nicolas Hublot",
     "description": "foobar",
-    "target": 40,
+    "target": 15,
     "relationships": {
       "boss": {
         "data": { "_id": "BO001", "_type": "com.grandlyon.ecolyo.boss" }
@@ -15,7 +15,7 @@
     "_id": "SEASON0002",
     "title": "Tata",
     "description": "foobar",
-    "target": 40,
+    "target": 15,
     "relationships": {
       "boss": {
         "data": { "_id": "BO002", "_type": "com.grandlyon.ecolyo.boss" }
@@ -27,7 +27,7 @@
     "_id": "SEASON0003",
     "title": "Titi",
     "description": "foobar",
-    "target": 40,
+    "target": 15,
     "relationships": {
       "boss": {
         "data": { "_id": "BO003", "_type": "com.grandlyon.ecolyo.boss" }
diff --git a/src/enum/updateUserSeason.enum.ts b/src/enum/updateUserSeason.enum.ts
index c1b342adefab27d3578ead680c2b2bbddae908ba..85d0c8dcff05425e4f1040b9aa780432bb3695e3 100644
--- a/src/enum/updateUserSeason.enum.ts
+++ b/src/enum/updateUserSeason.enum.ts
@@ -1,6 +1,6 @@
 export enum UpdateUserSeason {
-  QUIZ = 0,
-  MISSION = 1,
-  BOSS = 2,
-  END = 3,
+  SEASON = 0,
+  BOSS_START = 10,
+  QUIZ = 20,
+  MISSION = 30,
 }
diff --git a/src/services/boss.service.ts b/src/services/boss.service.ts
index 1f84976f3d6ec6cbc07a97d52911220567ebe83e..96cac3ba506b40efc8c0c1412d29b154d5aa6678 100644
--- a/src/services/boss.service.ts
+++ b/src/services/boss.service.ts
@@ -2,7 +2,7 @@ import { Client, QueryDefinition, QueryResult, Q } from 'cozy-client'
 import { BOSS_DOCTYPE } from 'doctypes/com-grandlyon-ecolyo-boss'
 import { Boss, BossEntity } from 'models/boss.model'
 import { UserBossState } from 'enum/userBoss.enum'
-import { Duration } from 'luxon'
+import { DateTime, Duration } from 'luxon'
 
 export default class BossService {
   private readonly _client: Client
@@ -39,11 +39,14 @@ export default class BossService {
   }
 
   public async startUserBoss(userBoss: Boss): Promise<Boss> {
-    /* 
-
-    */
-
-    return userBoss
+    const updatedUserBoss: Boss = {
+      ...userBoss,
+      state: UserBossState.ONGOING,
+      startDate: DateTime.local(),
+      // TODO add calculation of threshold
+      treshold: 50,
+    }
+    return updatedUserBoss
   }
 
   public formatToUserBoss(boss: BossEntity): Boss {
diff --git a/src/services/season.service.ts b/src/services/season.service.ts
index d11f554d19ba42ee224179d9b00f70c2b4a6c21f..56a503da0c9f5c977f84c25208d3db43ab5b6a59 100644
--- a/src/services/season.service.ts
+++ b/src/services/season.service.ts
@@ -69,7 +69,6 @@ export default class SeasonService {
     let buildList: UserSeason[] = []
     if (seasonEntityList.length > 0 && userSeasonList.length === 0) {
       seasonEntityList.forEach(async season => {
-        console.log(season)
         const bossEntityRelation: Relation = getRelationship(season, 'boss')
         const boss: Boss = bossService.getBossfromBossEntities(
           bossEntityList || [],
@@ -145,7 +144,9 @@ export default class SeasonService {
     userSeason.startDate = DateTime.local()
     userSeason.success = UserSeasonSuccess.ONGOING
     try {
-      const { data: updatedUserSeason } = await this._client.create(
+      const {
+        data: updatedUserSeason,
+      }: QueryResult<UserSeason> = await this._client.create(
         USERSEASON_DOCTYPE,
         userSeason
       )
@@ -160,14 +161,28 @@ export default class SeasonService {
     userSeason: UserSeason,
     flag: UpdateUserSeason
   ): Promise<UserSeason> {
-    /* 
-    Update Quiz
-    Update Mission
-    Update Boss
-    Update Season (END of season)
-   */
-
-    return userSeason
+    let updatedUserSeason
+    switch (flag) {
+      case UpdateUserSeason.SEASON:
+        updatedUserSeason = userSeason
+        break
+      case UpdateUserSeason.BOSS_START:
+        const bossService = new BossService(this._client)
+        const updatedBoss = await bossService.startUserBoss(userSeason.boss)
+        updatedUserSeason = {
+          ...userSeason,
+          state: UserSeasonState.BOSS,
+          boss: updatedBoss,
+        }
+        break
+      default:
+        updatedUserSeason = userSeason
+        break
+    }
+    const { data }: QueryResult<UserSeason> = await this._client.save(
+      updatedUserSeason
+    )
+    return data
   }
 
   public async isUserSeasonOver(userSeason: UserSeason): Promise<UserSeason> {