diff --git a/app/android/.idea/.gitignore b/app/android/.idea/.gitignore deleted file mode 100644 index 13566b8..0000000 --- a/app/android/.idea/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -# Default ignored files -/shelf/ -/workspace.xml -# Editor-based HTTP Client requests -/httpRequests/ -# Datasource local storage ignored files -/dataSources/ -/dataSources.local.xml diff --git a/app/android/.idea/compiler.xml b/app/android/.idea/compiler.xml deleted file mode 100644 index b86273d..0000000 --- a/app/android/.idea/compiler.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/app/android/.idea/deploymentTargetSelector.xml b/app/android/.idea/deploymentTargetSelector.xml deleted file mode 100644 index b268ef3..0000000 --- a/app/android/.idea/deploymentTargetSelector.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/app/android/.idea/misc.xml b/app/android/.idea/misc.xml deleted file mode 100644 index 0023c81..0000000 --- a/app/android/.idea/misc.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/android/.idea/runConfigurations.xml b/app/android/.idea/runConfigurations.xml deleted file mode 100644 index 931b96c..0000000 --- a/app/android/.idea/runConfigurations.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/app/android/app/src/main/AndroidManifest.xml b/app/android/app/src/main/AndroidManifest.xml index 4e56837..4d7ca38 100644 --- a/app/android/app/src/main/AndroidManifest.xml +++ b/app/android/app/src/main/AndroidManifest.xml @@ -38,6 +38,4 @@ - - diff --git a/app/android/build.gradle b/app/android/build.gradle index f1b3b0e..85a5dda 100644 --- a/app/android/build.gradle +++ b/app/android/build.gradle @@ -7,8 +7,8 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:8.7.2' - classpath 'com.google.gms:google-services:4.4.2' + classpath 'com.android.tools.build:gradle:8.2.1' + classpath 'com.google.gms:google-services:4.4.0' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files diff --git a/app/android/daemon/8.9/registry.bin.lock b/app/android/daemon/8.9/registry.bin.lock new file mode 100644 index 0000000..e69de29 diff --git a/app/android/gradle/wrapper/gradle-wrapper.properties b/app/android/gradle/wrapper/gradle-wrapper.properties index dedd5d1..c747538 100644 --- a/app/android/gradle/wrapper/gradle-wrapper.properties +++ b/app/android/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.2.1-all.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/app/package-lock.json b/app/package-lock.json index 36fd9c7..3e3acdc 100644 --- a/app/package-lock.json +++ b/app/package-lock.json @@ -16,6 +16,7 @@ "@capacitor/status-bar": "6.0.1", "@ionic/vue": "^8.0.0", "@ionic/vue-router": "^8.0.0", + "axios": "^1.8.1", "ionicons": "^7.0.0", "vue": "^3.3.0", "vue-router": "^4.2.0" @@ -4109,7 +4110,6 @@ "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "dev": true, "license": "MIT" }, "node_modules/at-least-node": { @@ -4139,6 +4139,23 @@ "dev": true, "license": "MIT" }, + "node_modules/axios": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.8.1.tgz", + "integrity": "sha512-NN+fvwH/kV01dYUQ3PTOZns4LWtWhOFCAhQ/pHb88WQ1hNe5V/dvFwc4VJcDL11LT9xSX0QtsR8sWUuyOuOq7g==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/axios/node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "license": "MIT" + }, "node_modules/babel-plugin-polyfill-corejs2": { "version": "0.4.11", "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz", @@ -4643,7 +4660,6 @@ "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, "license": "MIT", "dependencies": { "delayed-stream": "~1.0.0" @@ -4982,7 +4998,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "dev": true, "license": "MIT", "engines": { "node": ">=0.4.0" @@ -5791,6 +5806,26 @@ "dev": true, "license": "ISC" }, + "node_modules/follow-redirects": { + "version": "1.15.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, "node_modules/foreground-child": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", @@ -5835,7 +5870,6 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==", - "dev": true, "license": "MIT", "dependencies": { "asynckit": "^0.4.0", @@ -7094,7 +7128,6 @@ "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.6" @@ -7104,7 +7137,6 @@ "version": "2.1.35", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, "license": "MIT", "dependencies": { "mime-db": "1.52.0" diff --git a/app/package.json b/app/package.json index 3809f15..05eb686 100644 --- a/app/package.json +++ b/app/package.json @@ -20,6 +20,7 @@ "@capacitor/status-bar": "6.0.1", "@ionic/vue": "^8.0.0", "@ionic/vue-router": "^8.0.0", + "axios": "^1.8.1", "ionicons": "^7.0.0", "vue": "^3.3.0", "vue-router": "^4.2.0" diff --git a/app/readme.md b/app/readme.md new file mode 100644 index 0000000..e69de29 diff --git a/app/src/services/PitcherService.ts b/app/src/services/PitcherService.ts index 36a609c..e9eface 100644 --- a/app/src/services/PitcherService.ts +++ b/app/src/services/PitcherService.ts @@ -1,6 +1,13 @@ import Pitcher from "@/types/Pitcher"; import {pitchers} from "@/data/pitchers"; +import axios, { AxiosInstance } from "axios"; +const apiClient: AxiosInstance = axios.create({ + baseURL: "http://localhost:8080/api", + headers: { + "Content-type": "application/json", + }, +}); class PitcherService { private static instance: PitcherService; @@ -15,16 +22,18 @@ class PitcherService { } async getAllPitchers(): Promise { - return pitchers.values().toArray(); + return apiClient.get('/pitchers') + // return pitchers.values().toArray(); } async getPitcher(id: number): Promise { - const pitcher = pitchers.get(id); - if (pitcher !== undefined) { - return pitcher; - } else { - return Promise.reject(); - } + return apiClient.get(`/pitchers/${id}`) + // const pitcher = pitchers.get(id); + // if (pitcher !== undefined) { + // return pitcher; + // } else { + // return Promise.reject(); + // } } } diff --git a/backend/database/example-db.sqlite b/backend/database/example-db.sqlite new file mode 100644 index 0000000..2f45204 Binary files /dev/null and b/backend/database/example-db.sqlite differ diff --git a/backend/database/setup.js b/backend/database/setup.js index 953c2dc..5cc8f57 100644 --- a/backend/database/setup.js +++ b/backend/database/setup.js @@ -7,10 +7,10 @@ async function reset() { await sequelize.sync({ force: true }); await sequelize.models.user.bulkCreate([ - { firstName: 'Nolan', lastName: 'Ryan', email: 'ryan.nolan@bullpen.com', password: 'nolan' }, - { firstName: 'Sandy', lastName: 'Koufax', email: 'sandy.koufax@bullpen.com', password: 'sandy' }, - { firstName: 'Pedro', lastName: 'Martinez', email: 'pedro.martinez@bullpen.com', password: 'pedro' }, - { firstName: 'randy', lastName: 'johnson', email: 'randy.johnson@bullpen.com', password: 'randy' }, + { firstName: 'Nolan', lastName: 'Ryan', dateOfBirth: new Date(1947, 1, 31), email: 'ryan.nolan@bullpen.com', password: 'nolan' }, + { firstName: 'Sandy', lastName: 'Koufax', dateOfBirth: new Date(1935, 12, 30), email: 'sandy.koufax@bullpen.com', password: 'sandy' }, + { firstName: 'Pedro', lastName: 'Martinez', dateOfBirth: new Date(1971, 10, 25), email: 'pedro.martinez@bullpen.com', password: 'pedro' }, + { firstName: 'randy', lastName: 'johnson', dateOfBirth: new Date(1963, 9, 10), email: 'randy.johnson@bullpen.com', password: 'randy' }, ]); await sequelize.models.pitchType.bulkCreate([ diff --git a/backend/migrations/20250213191228-create-user.js b/backend/migrations/20250213191228-create-user.js deleted file mode 100644 index ea74cd8..0000000 --- a/backend/migrations/20250213191228-create-user.js +++ /dev/null @@ -1,37 +0,0 @@ -'use strict'; -/** @type {import('sequelize-cli').Migration} */ -module.exports = { - async up(queryInterface, Sequelize) { - await queryInterface.createTable('Users', { - id: { - allowNull: false, - autoIncrement: true, - primaryKey: true, - type: Sequelize.INTEGER - }, - firstName: { - type: Sequelize.STRING - }, - lastName: { - type: Sequelize.STRING - }, - email: { - type: Sequelize.STRING - }, - password: { - type: Sequelize.STRING - }, - createdAt: { - allowNull: false, - type: Sequelize.DATE - }, - updatedAt: { - allowNull: false, - type: Sequelize.DATE - } - }); - }, - async down(queryInterface, Sequelize) { - await queryInterface.dropTable('Users'); - } -}; \ No newline at end of file diff --git a/backend/sequelize/models/user.model.js b/backend/sequelize/models/user.model.js index 46d0807..c281f4d 100644 --- a/backend/sequelize/models/user.model.js +++ b/backend/sequelize/models/user.model.js @@ -20,6 +20,10 @@ module.exports = (sequelize) => { type: DataTypes.STRING, allowNull: false }, + dateOfBirth: { + type: DataTypes.DATE, + allowNull: false + }, email: { type: DataTypes.STRING, allowNull: false,