diff --git a/src/components/GeneratedChallengesModal.vue b/src/components/GeneratedChallengesModal.vue
index b8fc7885f79c104922d00f01dca1e3360e0d016c..2eaf12b226f8b548fd9a622821bf8d9497f04d62 100644
--- a/src/components/GeneratedChallengesModal.vue
+++ b/src/components/GeneratedChallengesModal.vue
@@ -76,30 +76,40 @@
     </div>
 </template>
 
-<script setup>
+<script setup lang="ts">
 import { ref, reactive, onMounted } from 'vue'
 import authInterceptor from '@/services/authInterceptor'
+import type { AxiosResponse } from 'axios'
+
+interface Challenge {
+    title: string
+    target: number
+    due: string
+    dueFull: string
+    isAccepted: boolean
+    perPurchase?: number
+    description?: string
+    type?: string
+}
 
 const showModal = ref(true)
-const generatedChallenges = reactive([])
+const generatedChallenges = reactive<Challenge[]>([])
 
 async function fetchGeneratedChallenges() {
     try {
-        const response = await authInterceptor.get('/challenges/generate')
+        const response: AxiosResponse = await authInterceptor.get('/challenges/generate')
         if (response.status === 200) {
             generatedChallenges.splice(
                 0,
                 generatedChallenges.length,
-                ...response.data.map((ch) => ({
+                ...response.data.map((ch: any) => ({
                     ...ch,
                     due: new Date(ch.due).toISOString().split('T')[0],
                     dueFull: ch.due,
-                    accepted: false
+                    isAccepted: false
                 }))
             )
-            console.log('Generated challenges:', generatedChallenges)
         } else {
-            console.log('No challenges found for the user.')
             generatedChallenges.splice(0, generatedChallenges.length)
         }
     } catch (error) {
@@ -112,7 +122,7 @@ onMounted(() => {
     localStorage.setItem('lastModalShow', Date.now().toString())
 })
 
-function acceptChallenge(challenge) {
+function acceptChallenge(challenge: Challenge) {
     if (!challenge) {
         console.error('No challenge data provided to acceptChallenge function.')
         return
@@ -128,8 +138,7 @@ function acceptChallenge(challenge) {
     }
     authInterceptor
         .post('/challenges', postData)
-        .then((response) => {
-            console.log('Challenge accepted and saved:', response.data)
+        .then((response: AxiosResponse) => {
             challenge.isAccepted = true
         })
         .catch((error) => {