diff --git a/components/EnergyOptionCard.js b/components/EnergyOptionCard.js index b1cf03be8b827090cdbbe3c4f204bdd43254bff0..7943d1fb5dc7c2c053a4341ebb0a1b6cf96ea2ac 100644 --- a/components/EnergyOptionCard.js +++ b/components/EnergyOptionCard.js @@ -1,13 +1,13 @@ import Link from 'next/link'; -function EnergyOptionCard({ energyType, provider, location, id }) { +function EnergyOptionCard({ energyType, provider, location, urls }) { // Check if the id is a valid URL or fallback if needed - if (!id) { + if (!urls) { return <div className="energy-option-card">Error: Invalid URL</div>; // Fallback message } return ( - <Link href={id} passHref className="energy-option-card"> + <Link href={urls} passHref className="energy-option-card"> <h3>{energyType}</h3> <p><strong>Provider:</strong> {provider}</p> <p><strong>Location:</strong> {location}</p> diff --git a/components/Secondimg.png b/components/Secondimg.png new file mode 100644 index 0000000000000000000000000000000000000000..0550b437fd6f8d645d01d5498cf1cafeb0195051 Binary files /dev/null and b/components/Secondimg.png differ diff --git a/components/StartPageimg.png b/components/StartPageimg.png new file mode 100644 index 0000000000000000000000000000000000000000..0bae2fddb17c085f2a524ddabae6bf9e27a7a340 Binary files /dev/null and b/components/StartPageimg.png differ diff --git a/package-lock.json b/package-lock.json index 6ba6767405ea011bc5ebd1bbee71ac696346a23c..902ce42dacf0db828b19403890a91c9b89e5e292 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,11 +1,11 @@ { - "name": "aufgabe1", + "name": "DMWT_24WS_Gruppe02", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "aufgabe1", "dependencies": { + "@neondatabase/serverless": "^0.10.4", "next": "^15.1.3", "pg": "^8.13.1", "react": "18.2.0", @@ -387,6 +387,15 @@ "url": "https://opencollective.com/libvips" } }, + "node_modules/@neondatabase/serverless": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/@neondatabase/serverless/-/serverless-0.10.4.tgz", + "integrity": "sha512-2nZuh3VUO9voBauuh+IGYRhGU/MskWHt1IuZvHcJw6GLjDgtqj/KViKo7SIrLdGLdot7vFbiRRw+BgEy3wT9HA==", + "license": "MIT", + "dependencies": { + "@types/pg": "8.11.6" + } + }, "node_modules/@next/env": { "version": "15.1.3", "resolved": "https://registry.npmjs.org/@next/env/-/env-15.1.3.tgz", @@ -545,6 +554,83 @@ "tslib": "^2.8.0" } }, + "node_modules/@types/node": { + "version": "22.10.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.5.tgz", + "integrity": "sha512-F8Q+SeGimwOo86fiovQh8qiXfFEh2/ocYv7tU5pJ3EXMSSxk1Joj5wefpFK2fHTf/N6HKGSxIDBT9f3gCxXPkQ==", + "license": "MIT", + "dependencies": { + "undici-types": "~6.20.0" + } + }, + "node_modules/@types/pg": { + "version": "8.11.6", + "resolved": "https://registry.npmjs.org/@types/pg/-/pg-8.11.6.tgz", + "integrity": "sha512-/2WmmBXHLsfRqzfHW7BNZ8SbYzE8OSk7i3WjFYvfgRHj7S1xj+16Je5fUKv3lVdVzk/zn9TXOqf+avFCFIE0yQ==", + "license": "MIT", + "dependencies": { + "@types/node": "*", + "pg-protocol": "*", + "pg-types": "^4.0.1" + } + }, + "node_modules/@types/pg/node_modules/pg-types": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-4.0.2.tgz", + "integrity": "sha512-cRL3JpS3lKMGsKaWndugWQoLOCoP+Cic8oseVcbr0qhPzYD5DWXK+RZ9LY9wxRf7RQia4SCwQlXk0q6FCPrVng==", + "license": "MIT", + "dependencies": { + "pg-int8": "1.0.1", + "pg-numeric": "1.0.2", + "postgres-array": "~3.0.1", + "postgres-bytea": "~3.0.0", + "postgres-date": "~2.1.0", + "postgres-interval": "^3.0.0", + "postgres-range": "^1.1.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@types/pg/node_modules/postgres-array": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-3.0.2.tgz", + "integrity": "sha512-6faShkdFugNQCLwucjPcY5ARoW1SlbnrZjmGl0IrrqewpvxvhSLHimCVzqeuULCbG0fQv7Dtk1yDbG3xv7Veog==", + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "node_modules/@types/pg/node_modules/postgres-bytea": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-3.0.0.tgz", + "integrity": "sha512-CNd4jim9RFPkObHSjVHlVrxoVQXz7quwNFpz7RY1okNNme49+sVyiTvTRobiLV548Hx/hb1BG+iE7h9493WzFw==", + "license": "MIT", + "dependencies": { + "obuf": "~1.1.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@types/pg/node_modules/postgres-date": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-2.1.0.tgz", + "integrity": "sha512-K7Juri8gtgXVcDfZttFKVmhglp7epKb1K4pgrkLxehjqkrgPhfG6OO8LHLkfaqkbpjNRnra018XwAr1yQFWGcA==", + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "node_modules/@types/pg/node_modules/postgres-interval": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-3.0.0.tgz", + "integrity": "sha512-BSNDnbyZCXSxgA+1f5UU2GmwhoI0aU5yMxRGO8CdFEcY2BQF9xm/7MqKnYoM1nJDk8nONNWDk9WeSmePFhQdlw==", + "license": "MIT", + "engines": { + "node": ">=12" + } + }, "node_modules/busboy": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", @@ -734,6 +820,12 @@ } } }, + "node_modules/obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "license": "MIT" + }, "node_modules/pg": { "version": "8.13.1", "resolved": "https://registry.npmjs.org/pg/-/pg-8.13.1.tgz", @@ -783,6 +875,15 @@ "node": ">=4.0.0" } }, + "node_modules/pg-numeric": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pg-numeric/-/pg-numeric-1.0.2.tgz", + "integrity": "sha512-BM/Thnrw5jm2kKLE5uJkXqqExRUY/toLHda65XgFTBTFYZyopbKjBe29Ii3RbkvlsMoFwD+tHeGaCjjv0gHlyw==", + "license": "ISC", + "engines": { + "node": ">=4" + } + }, "node_modules/pg-pool": { "version": "3.7.0", "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.7.0.tgz", @@ -896,6 +997,12 @@ "node": ">=0.10.0" } }, + "node_modules/postgres-range": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/postgres-range/-/postgres-range-1.1.4.tgz", + "integrity": "sha512-i/hbxIE9803Alj/6ytL7UHQxRvZkI9O4Sy+J3HGc4F4oo/2eQAjTSNJ0bfxyse3bH0nuVesCk+3IRLaMtG3H6w==", + "license": "MIT" + }, "node_modules/react": { "version": "18.2.0", "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", @@ -1080,6 +1187,12 @@ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "license": "0BSD" }, + "node_modules/undici-types": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", + "license": "MIT" + }, "node_modules/xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", diff --git a/package.json b/package.json index de86a9fcf2b58ed3b1d37df95eaa8f7b97736696..7aadd26285167e748d5b2386662edc5af54cef51 100644 --- a/package.json +++ b/package.json @@ -6,6 +6,7 @@ "start": "next start" }, "dependencies": { + "@neondatabase/serverless": "^0.10.4", "next": "^15.1.3", "pg": "^8.13.1", "react": "18.2.0", diff --git a/pages/2ndPage.js b/pages/2ndPage.js index 7c1028c1039d97bda93bece9b2ae372351637f7e..92bc0e11599f92423074b062205236f26c93fe65 100644 --- a/pages/2ndPage.js +++ b/pages/2ndPage.js @@ -17,7 +17,7 @@ function ApiPage() { }; return ( - <div> + <div className='Second-Page'> <h1>API Seite</h1> {data && data.length > 0 ? ( // Prüft ob data frei ist und ob es sachen hat <div> diff --git a/pages/api/energy-options.js b/pages/api/energy-options.js index 749213456f85010b924844956ef7e453e6dbfe36..9fe736dbf7715c7108f55a8fa59307e4aee39474 100644 --- a/pages/api/energy-options.js +++ b/pages/api/energy-options.js @@ -26,7 +26,7 @@ export default async function handler(req, res) { const { rows } = await pool.query('SELECT * FROM "Energy"'); // Clean up the data to make it more readable const formattedData = rows.map(option => ({ - id: option.id, + urls: option.URLs, energyType: option.EnergyType, provider: option.Provider, location: option.Location, diff --git a/pages/index.js b/pages/index.js index fa70939c3e0df4016206792d600c0eaa51f0bbbd..bd378a9617773ed5f1a36d6fe5a15f7a9f3aa1a6 100644 --- a/pages/index.js +++ b/pages/index.js @@ -36,7 +36,7 @@ function StartPage() { }, []); return ( - <div className="home-container"> + <div className="start-page"> <h1>Green Energy Options</h1> <div className="energy-options-container"> {energyOptions.map((option, index) => ( diff --git a/styles/global.css b/styles/global.css index 7ca434a16761a6ac10ddb2235c197ede1edf3066..624242bbdad87ed29ba4ef345f381a15b12af114 100644 --- a/styles/global.css +++ b/styles/global.css @@ -17,6 +17,28 @@ body { sans-serif; } +.start-page +{ + overflow: hidden; + margin: 0; + height: 100vh; + background-image: url(../components/StartPageimg.png); + background-size: cover; + background-position: center; + background-repeat: no-repeat; +} + +.Second-Page +{ + overflow: hidden; + margin: 0; + height: 100vh; + background-image: url(../components/Secondimg.png); + background-size: cover; + background-position: center; + background-repeat: no-repeat; +} + a { color: inherit; text-decoration: none;