diff --git a/.firebaserc b/.firebaserc index af8f5ac..31dd1b6 100644 --- a/.firebaserc +++ b/.firebaserc @@ -1,5 +1,15 @@ { "projects": { - "default": "firetest-c524f" - } -} + "default": "rur-24" + }, + "targets": { + "rur-24": { + "hosting": { + "rur25-official-web": [ + "rur-24" + ] + } + } + }, + "etags": {} +} \ No newline at end of file diff --git a/.github/workflows/firebase-functions-merge.yml b/.github/workflows/firebase-functions-merge.yml new file mode 100644 index 0000000..b4614e9 --- /dev/null +++ b/.github/workflows/firebase-functions-merge.yml @@ -0,0 +1,34 @@ +name: Deploy Firebase Functions + +on: + push: + branches: + - main + pull_request: + types: + - opened + - synchronize + +jobs: + build_and_deploy: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Set up Node.js + uses: actions/setup-node@v3 + with: + node-version: 20 + + - name: Install dependencies + working-directory: functions + run: npm install + + - name: Deploy to Firebase Functions + env: + FIREBASE_TOKEN: ${{ secrets.FIREBASE_TOKEN }} + run: | + npm install -g firebase-tools + firebase deploy --only functions --project rur-24 diff --git a/.github/workflows/firebase-hosting-merge-production.yml b/.github/workflows/firebase-hosting-merge-production.yml deleted file mode 100644 index d33360e..0000000 --- a/.github/workflows/firebase-hosting-merge-production.yml +++ /dev/null @@ -1,53 +0,0 @@ -name: Deploy to Firebase Hosting on merge -on: - push: - branches: - - main -jobs: - build_and_deploy: - runs-on: ubuntu-latest - env: - NEXT_PUBLIC_API_KEY: ${{ secrets.NEXT_PUBLIC_API_KEY }} - NEXT_PUBLIC_AUTH_DOMAIN: ${{ secrets.NEXT_PUBLIC_AUTH_DOMAIN }} - NEXT_PUBLIC_PROJECT_ID: ${{ secrets.NEXT_PUBLIC_PROJECT_ID }} - NEXT_PUBLIC_STORAGE_BUCKET: ${{ secrets.NEXT_PUBLIC_STORAGE_BUCKET }} - NEXT_PUBLIC_MESSAGING_SENDER_ID: ${{ secrets.NEXT_PUBLIC_MESSAGING_SENDER_ID }} - NEXT_PUBLIC_APP_ID: ${{ secrets.NEXT_PUBLIC_APP_ID }} - NEXT_PUBLIC_STATUS: ${{ secrets.NEXT_PUBLIC_STATUS }} - - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Install dependencies and build - run: npm ci && npm run build - - - name: Deploy to Firebase Hosting - uses: FirebaseExtended/action-hosting-deploy@v0 - with: - repoToken: ${{ secrets.GITHUB_TOKEN }} - firebaseServiceAccount: ${{ secrets.FIREBASE_SERVICE_ACCOUNT_FIRETEST_C524F }} - channelId: live - projectId: firetest-c524f - - - name: Install Firebase CLI - run: npm install -g firebase-tools - - - name: Deploy Firebase Functions - env: - FIREBASE_TOKEN: ${{ secrets.FIREBASE_DEPLOY_TOKEN }} - run: | - cd functions - npm ci - firebase deploy --only functions --project firetest-c524f - - - name: Deploy through FTP - uses: SamKirkland/FTP-Deploy-Action@v4.3.5 - with: - server: ${{ secrets.FTP_SERVER }} - username: ${{ secrets.FTP_USERNAME }} - password: ${{ secrets.FTP_PASSWORD }} - local-dir: ./out/ - server-dir: /public_html/ - protocol: ftp - port: 21 diff --git a/.github/workflows/firebase-hosting-merge-dev.yml b/.github/workflows/firebase-hosting-merge.yml similarity index 70% rename from .github/workflows/firebase-hosting-merge-dev.yml rename to .github/workflows/firebase-hosting-merge.yml index 2f3f7ae..613f7a1 100644 --- a/.github/workflows/firebase-hosting-merge-dev.yml +++ b/.github/workflows/firebase-hosting-merge.yml @@ -1,8 +1,11 @@ +# This file was auto-generated by the Firebase CLI +# https://github.com/firebase/firebase-tools + name: Deploy to Firebase Hosting on merge on: push: branches: - - dev + - main jobs: build_and_deploy: runs-on: ubuntu-latest @@ -16,16 +19,11 @@ jobs: NEXT_PUBLIC_STATUS: ${{ secrets.NEXT_PUBLIC_STATUS }} steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Install dependencies and build - run: npm ci && npm run build - - - name: Deploy to Firebase Hosting - uses: FirebaseExtended/action-hosting-deploy@v0 + - uses: actions/checkout@v4 + - run: npm ci && npm run build + - uses: FirebaseExtended/action-hosting-deploy@v0 with: repoToken: ${{ secrets.GITHUB_TOKEN }} - firebaseServiceAccount: ${{ secrets.FIREBASE_SERVICE_ACCOUNT_FIRETEST_C524F }} - channelId: live - projectId: firetest-c524f + firebaseServiceAccount: ${{ secrets.FIREBASE_SERVICE_ACCOUNT_RUR_24 }} + projectId: rur-24 + target: rur25-official-web diff --git a/.github/workflows/firebase-hosting-pull-request.yml b/.github/workflows/firebase-hosting-pull-request.yml index bbf92b0..5dd1600 100644 --- a/.github/workflows/firebase-hosting-pull-request.yml +++ b/.github/workflows/firebase-hosting-pull-request.yml @@ -1,15 +1,17 @@ +# This file was auto-generated by the Firebase CLI +# https://github.com/firebase/firebase-tools + name: Deploy to Firebase Hosting on PR on: pull_request permissions: checks: write contents: read pull-requests: write - jobs: build_and_preview: if: ${{ github.event.pull_request.head.repo.full_name == github.repository }} runs-on: ubuntu-latest - env: + env: # Set environment variables at the job level NEXT_PUBLIC_API_KEY: ${{ secrets.NEXT_PUBLIC_API_KEY }} NEXT_PUBLIC_AUTH_DOMAIN: ${{ secrets.NEXT_PUBLIC_AUTH_DOMAIN }} NEXT_PUBLIC_PROJECT_ID: ${{ secrets.NEXT_PUBLIC_PROJECT_ID }} @@ -17,40 +19,12 @@ jobs: NEXT_PUBLIC_MESSAGING_SENDER_ID: ${{ secrets.NEXT_PUBLIC_MESSAGING_SENDER_ID }} NEXT_PUBLIC_APP_ID: ${{ secrets.NEXT_PUBLIC_APP_ID }} NEXT_PUBLIC_STATUS: ${{ secrets.NEXT_PUBLIC_STATUS }} - FIREBASE_DEPLOY_TOKEN: ${{ secrets.FIREBASE_DEPLOY_TOKEN }} - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Cache dependencies - uses: actions/cache@v4 - with: - path: | - ~/.npm # Cache global npm cache - ${{ github.workspace }}/.next/cache # Cache Next.js build cache - ${{ github.workspace }}/functions/node_modules # Cache Firebase Functions dependencies - key: ${{ runner.os }}-nextjs-${{ hashFiles('**/package-lock.json') }}-${{ hashFiles('**/*.js', '**/*.jsx', '**/*.ts', '**/*.tsx') }} - restore-keys: | - ${{ runner.os }}-nextjs-${{ hashFiles('**/package-lock.json') }}- - - - name: Install dependencies and build - run: npm ci && npm run build - - - name: Deploy to Firebase Hosting - uses: FirebaseExtended/action-hosting-deploy@v0 + - uses: actions/checkout@v4 + - run: npm ci && npm run build + - uses: FirebaseExtended/action-hosting-deploy@v0 with: repoToken: ${{ secrets.GITHUB_TOKEN }} - firebaseServiceAccount: ${{ secrets.FIREBASE_SERVICE_ACCOUNT_FIRETEST_C524F }} - projectId: firetest-c524f - - - name: Install Firebase CLI - run: npm install -g firebase-tools - - - name: Deploy Firebase Functions - env: - FIREBASE_TOKEN: ${{ secrets.FIREBASE_DEPLOY_TOKEN }} - run: | - cd functions - npm ci - firebase deploy --only functions --project firetest-c524f \ No newline at end of file + firebaseServiceAccount: ${{ secrets.FIREBASE_SERVICE_ACCOUNT_RUR_24 }} + projectId: rur-24 + target: rur25-official-web diff --git a/README.md b/README.md index 2b53147..96aaa8c 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,5 @@ +[Deployed with FTP Deploy Action](https://github.com/SamKirkland/FTP-Deploy-Action) + This is a [Next.js](https://nextjs.org) project bootstrapped with [`create-next-app`](https://nextjs.org/docs/app/api-reference/cli/create-next-app). ## Getting Started diff --git a/firebase.json b/firebase.json index a844f1e..e8d4717 100644 --- a/firebase.json +++ b/firebase.json @@ -1,23 +1,17 @@ { "hosting": { - "public": "out", + "public": "./out", + "target": "rur25-official-web", "ignore": [ "firebase.json", "**/.*", "**/node_modules/**" - ], - "rewrites": [ - { - "source": "**", - "destination": "/index.html" - } ] }, "functions": [ { "source": "functions", "codebase": "default", - "region": "asia-southeast1", "ignore": [ "node_modules", ".git", diff --git a/package-lock.json b/package-lock.json index 268ed13..5c205e8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,6 +16,7 @@ "clsx": "^2.1.1", "cobe": "^0.6.3", "dompurify": "^3.2.1", + "dotenv": "^16.4.7", "firebase": "^11.0.1", "firebase-admin": "^13.0.1", "firebase-functions": "^6.1.1", @@ -27,6 +28,7 @@ "react": "^18.3.1", "react-dom": "^18.3.1", "react-element-to-jsx-string": "^15.0.0", + "react-helmet-async": "^2.0.5", "react-icons": "^5.3.0", "react-lottie-player": "^2.1.0", "sweetalert2": "^11.14.5", @@ -4508,6 +4510,17 @@ "node": ">=8" } }, + "node_modules/dotenv": { + "version": "16.4.7", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.7.tgz", + "integrity": "sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, "node_modules/duplexify": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.3.tgz", @@ -6909,6 +6922,14 @@ "node": ">= 0.4" } }, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, "node_modules/ip-address": { "version": "9.0.5", "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", @@ -9954,6 +9975,24 @@ "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.1.0.tgz", "integrity": "sha512-Fl7FuabXsJnV5Q1qIOQwx/sagGF18kogb4gpfcG4gjLBWO0WDiiz1ko/ExayuxE7InyQkBLkxRFG5oxY6Uu3Kg==" }, + "node_modules/react-fast-compare": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.2.tgz", + "integrity": "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==" + }, + "node_modules/react-helmet-async": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/react-helmet-async/-/react-helmet-async-2.0.5.tgz", + "integrity": "sha512-rYUYHeus+i27MvFE+Jaa4WsyBKGkL6qVgbJvSBoX8mbsWoABJXdEO0bZyi0F6i+4f0NuIb8AvqPMj3iXFHkMwg==", + "dependencies": { + "invariant": "^2.2.4", + "react-fast-compare": "^3.2.2", + "shallowequal": "^1.1.0" + }, + "peerDependencies": { + "react": "^16.6.0 || ^17.0.0 || ^18.0.0" + } + }, "node_modules/react-icons": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-5.3.0.tgz", @@ -10552,6 +10591,11 @@ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" }, + "node_modules/shallowequal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", + "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==" + }, "node_modules/sharp": { "version": "0.33.5", "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.33.5.tgz", @@ -15656,6 +15700,11 @@ "is-obj": "^2.0.0" } }, + "dotenv": { + "version": "16.4.7", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.7.tgz", + "integrity": "sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==" + }, "duplexify": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.3.tgz", @@ -17475,6 +17524,14 @@ "side-channel": "^1.0.4" } }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "requires": { + "loose-envify": "^1.0.0" + } + }, "ip-address": { "version": "9.0.5", "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", @@ -19687,6 +19744,21 @@ } } }, + "react-fast-compare": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.2.tgz", + "integrity": "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==" + }, + "react-helmet-async": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/react-helmet-async/-/react-helmet-async-2.0.5.tgz", + "integrity": "sha512-rYUYHeus+i27MvFE+Jaa4WsyBKGkL6qVgbJvSBoX8mbsWoABJXdEO0bZyi0F6i+4f0NuIb8AvqPMj3iXFHkMwg==", + "requires": { + "invariant": "^2.2.4", + "react-fast-compare": "^3.2.2", + "shallowequal": "^1.1.0" + } + }, "react-icons": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-5.3.0.tgz", @@ -20134,6 +20206,11 @@ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" }, + "shallowequal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", + "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==" + }, "sharp": { "version": "0.33.5", "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.33.5.tgz", diff --git a/package.json b/package.json index df1982f..29c6118 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,8 @@ "dev": "next dev", "build": "next build", "start": "next start", - "lint": "next lint" + "lint": "next lint", + "build-prod": "dotenv -f .env.prod run next build" }, "dependencies": { "@heroicons/react": "^2.1.5", @@ -17,6 +18,7 @@ "clsx": "^2.1.1", "cobe": "^0.6.3", "dompurify": "^3.2.1", + "dotenv": "^16.4.7", "firebase": "^11.0.1", "firebase-admin": "^13.0.1", "firebase-functions": "^6.1.1", @@ -28,6 +30,7 @@ "react": "^18.3.1", "react-dom": "^18.3.1", "react-element-to-jsx-string": "^15.0.0", + "react-helmet-async": "^2.0.5", "react-icons": "^5.3.0", "react-lottie-player": "^2.1.0", "sweetalert2": "^11.14.5", diff --git a/public/Images/RUR (1).jpg b/public/Images/RUR (1).jpg index e6a4ec7..f753336 100644 Binary files a/public/Images/RUR (1).jpg and b/public/Images/RUR (1).jpg differ diff --git a/public/Images/RUR (10).jpg b/public/Images/RUR (10).jpg index e20147b..b58c186 100644 Binary files a/public/Images/RUR (10).jpg and b/public/Images/RUR (10).jpg differ diff --git a/public/Images/RUR (11).jpg b/public/Images/RUR (11).jpg index b42a335..b37d07c 100644 Binary files a/public/Images/RUR (11).jpg and b/public/Images/RUR (11).jpg differ diff --git a/public/Images/RUR (12).jpg b/public/Images/RUR (12).jpg index a88af98..4e02df7 100644 Binary files a/public/Images/RUR (12).jpg and b/public/Images/RUR (12).jpg differ diff --git a/public/Images/RUR (13).jpg b/public/Images/RUR (13).jpg index 63fab21..d2c5bd8 100644 Binary files a/public/Images/RUR (13).jpg and b/public/Images/RUR (13).jpg differ diff --git a/public/Images/RUR (14).jpg b/public/Images/RUR (14).jpg index 253aa61..84f2e7f 100644 Binary files a/public/Images/RUR (14).jpg and b/public/Images/RUR (14).jpg differ diff --git a/public/Images/RUR (15).jpg b/public/Images/RUR (15).jpg index 00c1788..e9983e8 100644 Binary files a/public/Images/RUR (15).jpg and b/public/Images/RUR (15).jpg differ diff --git a/public/Images/RUR (2).jpg b/public/Images/RUR (2).jpg index eb0cee6..c1acbfe 100644 Binary files a/public/Images/RUR (2).jpg and b/public/Images/RUR (2).jpg differ diff --git a/public/Images/RUR (3).jpg b/public/Images/RUR (3).jpg index 03dbdd9..6617d8e 100644 Binary files a/public/Images/RUR (3).jpg and b/public/Images/RUR (3).jpg differ diff --git a/public/Images/RUR (4).jpg b/public/Images/RUR (4).jpg index 73d130e..1be60f2 100644 Binary files a/public/Images/RUR (4).jpg and b/public/Images/RUR (4).jpg differ diff --git a/public/Images/RUR (5).jpg b/public/Images/RUR (5).jpg index b1f3f34..38cd6e0 100644 Binary files a/public/Images/RUR (5).jpg and b/public/Images/RUR (5).jpg differ diff --git a/public/Images/RUR (6).jpg b/public/Images/RUR (6).jpg index fe196d1..b9045ec 100644 Binary files a/public/Images/RUR (6).jpg and b/public/Images/RUR (6).jpg differ diff --git a/public/Images/RUR (7).jpg b/public/Images/RUR (7).jpg index be051ea..f42fb64 100644 Binary files a/public/Images/RUR (7).jpg and b/public/Images/RUR (7).jpg differ diff --git a/public/Images/logo/icon.ico b/public/Images/logo/icon.ico new file mode 100644 index 0000000..39169da Binary files /dev/null and b/public/Images/logo/icon.ico differ diff --git a/public/Images/partners/Dimo-logo-1.svg b/public/Images/partners/Dimo-logo-1.svg deleted file mode 100644 index 7afe74d..0000000 --- a/public/Images/partners/Dimo-logo-1.svg +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/public/Images/partners/JKH Logo.png b/public/Images/partners/JKH Logo.png deleted file mode 100644 index f76af9b..0000000 Binary files a/public/Images/partners/JKH Logo.png and /dev/null differ diff --git a/public/Images/partners/Logo_of_MAS_Holdings.png b/public/Images/partners/Logo_of_MAS_Holdings.png deleted file mode 100644 index d3a515d..0000000 Binary files a/public/Images/partners/Logo_of_MAS_Holdings.png and /dev/null differ diff --git a/public/Images/partners/lseg.png b/public/Images/partners/lseg.png deleted file mode 100644 index bd3e956..0000000 Binary files a/public/Images/partners/lseg.png and /dev/null differ diff --git a/public/Images/partners/the-ai-team.png b/public/Images/partners/the-ai-team.png deleted file mode 100644 index ad84d36..0000000 Binary files a/public/Images/partners/the-ai-team.png and /dev/null differ diff --git a/public/Images/sessions/career insights.png b/public/Images/sessions/career insights.png deleted file mode 100644 index ada52a8..0000000 Binary files a/public/Images/sessions/career insights.png and /dev/null differ diff --git a/public/Images/sessions/flagship.png b/public/Images/sessions/flagship.png deleted file mode 100644 index d6c4a43..0000000 Binary files a/public/Images/sessions/flagship.png and /dev/null differ diff --git a/public/Images/sessions/global.png b/public/Images/sessions/global.png deleted file mode 100644 index ab19c2b..0000000 Binary files a/public/Images/sessions/global.png and /dev/null differ diff --git a/public/Images/sessions/heads up.png b/public/Images/sessions/heads up.png deleted file mode 100644 index 96ff7dd..0000000 Binary files a/public/Images/sessions/heads up.png and /dev/null differ diff --git a/public/Images/sessions/image_1.png b/public/Images/sessions/image_1.png deleted file mode 100644 index 9f6e97c..0000000 Binary files a/public/Images/sessions/image_1.png and /dev/null differ diff --git a/public/Images/sessions/resume centre.png b/public/Images/sessions/resume centre.png deleted file mode 100644 index 5ec133b..0000000 Binary files a/public/Images/sessions/resume centre.png and /dev/null differ diff --git a/public/Images/sponsor.png b/public/Images/sponsor.png new file mode 100644 index 0000000..3f91fed Binary files /dev/null and b/public/Images/sponsor.png differ diff --git a/public/Images/th.jpg b/public/Images/th.jpg deleted file mode 100644 index c8826e2..0000000 Binary files a/public/Images/th.jpg and /dev/null differ diff --git a/robots.ts b/robots.ts new file mode 100644 index 0000000..da8cc51 --- /dev/null +++ b/robots.ts @@ -0,0 +1,12 @@ +import type { MetadataRoute } from 'next' + +export default function robots(): MetadataRoute.Robots { + return { + rules: { + userAgent: '*', + allow: '/', + disallow: '/admin/', + }, + sitemap: 'https://areyouready.uom.lk/sitemap.xml', + } +} \ No newline at end of file diff --git a/src/app/admin/admin-dashboard-layout.tsx b/src/app/admin/admin-dashboard-layout.tsx index 6b86d58..70189f4 100644 --- a/src/app/admin/admin-dashboard-layout.tsx +++ b/src/app/admin/admin-dashboard-layout.tsx @@ -11,7 +11,7 @@ import LOGO_SMALL from "../../../public/Images/logo/RUR20_small.png"; import { useAuth } from "@/context/auth-provider"; import { useRouter } from "next/navigation"; import { IThemeContextType } from "@/interfaces/IThemeContext"; -import Head from "next/head"; +import { Helmet } from "react-helmet-async"; interface AdminDashboardLayoutProps { children: ReactNode; @@ -26,11 +26,12 @@ export function AdminDashboardLayout({ children }: AdminDashboardLayoutProps) { return ( - - - - - + + + + + RUR Admin Panel +
diff --git a/src/app/admin/dashboard/page.tsx b/src/app/admin/dashboard/page.tsx index 5a18d92..7f128df 100644 --- a/src/app/admin/dashboard/page.tsx +++ b/src/app/admin/dashboard/page.tsx @@ -3,6 +3,7 @@ import React, { useEffect } from 'react'; import { AdminDashboardLayout } from '@/app/admin/admin-dashboard-layout'; import { sendGTMEvent } from '@next/third-parties/google'; +import Link from 'next/link'; const AdminDashboard: React.FC = () => { @@ -11,6 +12,24 @@ const AdminDashboard: React.FC = () => { } , []); + const oporations = [ + { + name: "Reach Us", + description: "Edit/update contact details and order on the website.", + link: "/admin/dashboard/reachus" + }, + { + name: "Sponsors", + description: "Edit/update sponsor details and order.", + link: "/admin/dashboard/sponsors" + }, + { + name: "Timeline", + description: "Edit/update timeline events and set event date.", + link: "/admin/dashboard/timeline" + } + ]; + return ( @@ -24,18 +43,21 @@ const AdminDashboard: React.FC = () => {
-
-

Operation 1

-

Description of operation 1.

-
-
-

Operation 2

-

Description of operation 2.

-
-
-

Operation 3

-

Description of operation 3.

-
+ + + { + oporations.map((oporation, index)=>( + + +
+

{oporation.name}

+

{oporation.description}

+
+ + + )) + } +
diff --git a/src/app/admin/dashboard/reachus/page.tsx b/src/app/admin/dashboard/reachus/page.tsx index ab95340..25194cc 100644 --- a/src/app/admin/dashboard/reachus/page.tsx +++ b/src/app/admin/dashboard/reachus/page.tsx @@ -70,6 +70,9 @@ export default function ManageReachUsContacts() { + @@ -99,6 +102,13 @@ export default function ManageReachUsContacts() { key={contact.id} className="odd:bg-white odd:dark:bg-gray-900 even:bg-gray-50 even:dark:bg-gray-800 border-b dark:border-gray-700" > + + + + @@ -104,6 +110,22 @@ export default function ManageSponsors() { > {sponsor.name} + + + + + +
+ Line + Contact name + {contact.line} + Sponsor name + Partnership + + Order + Image + {sponsor.partnership} + + {sponsor.order} +
+ - - - - - Are You Ready? 2025 - + + + + + - - - - - - - - {children} + + + + + + + + + + + + + + + {children} + ); diff --git a/src/app/page.tsx b/src/app/page.tsx index 4c599de..c440c9e 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -20,7 +20,7 @@ import RUR_IMG13 from "../../public/Images/RUR (13).jpg"; import RUR_IMG14 from "../../public/Images/RUR (14).jpg"; import RUR_IMG15 from "../../public/Images/RUR (15).jpg"; -import SPONSOR from "../../public/Images/partners/the-ai-team.png"; +import SPONSOR from "../../public/Images/sponsor.png"; // import LoadingAnimation from "../../public/animations/RUR.json" import LoadingAnimation from "../../public/animations/RUR_Loading.json"; @@ -52,6 +52,11 @@ import { HeroVideo } from "@/components/ui/hero-video"; import ExpandableCard from "@/components/blocks/expandable-card-standard"; import Head from "next/head"; import { sendGTMEvent } from "@next/third-parties/google"; +import ReactDOM from 'react-dom'; +import { Helmet } from 'react-helmet-async'; + + + export const products = [ { @@ -166,11 +171,13 @@ const Loading = () => { const Para = ({ level, + partnership, name, imgURL, loadCallback, }: { level: string; + partnership: string; name: string; imgURL: string | undefined; loadCallback?: (count: number) => void; @@ -186,14 +193,12 @@ const Para = ({
- {level} -
- Sponsor + {partnership}
{/* Image Section */} @@ -332,12 +337,22 @@ export default function Home() { '"Are You Ready?" stands as a monumental initiative led by the Rotaract Club of the University of Moratuwa in partnership with the Career Guidance Unit. Our primary focus is 4th year undergraduates from our university, aiming to guide them towards a secure entry into the professional world. The scope of this endeavor knows no bounds, with over 100 companies aligning to provide opportunities for budding professionals. This project promises to be a valuable asset for those aspiring to forge strong connections with companies and their managers, even if the finish line of their degree is still on the horizon. In the initial stages, participants will gain the essential knowledge and training to confidently engage with industry experts.'; return ( + <> - - - - - + + + + + + Are You Ready? 2025 + + + + + + + + @@ -348,7 +363,7 @@ export default function Home() { loop={true} animationData={LoadingAnimation} play - style={{ width: 300, height: 300 }} + style={{ width: 150, height: 150 }} onLoopComplete={loadingTimeout} />
@@ -378,8 +393,17 @@ export default function Home() { )}
-
- {/* */} +
+

+ Thank You for Your Support! +

+

+ We deeply appreciate your unwavering support in making this event a + success. Your contributions inspire us to innovate, collaborate, and + grow. Together, we’re achieving remarkable milestones. Stay tuned for + exciting updates as we continue this incredible journey. Thank you for + being a vital part of our mission! +

{error ? ( @@ -392,12 +416,7 @@ export default function Home() {
{sponsors .sort((a, b) => { - // Custom sorting: Gold first, then Silver, others later - if (a.level === "Gold") return -1; - if (b.level === "Gold") return 1; - if (a.level === "Silver") return -1; - if (b.level === "Silver") return 1; - return 0; // No change for other levels + return a.order - b.order; }) .map((sponsor, index) => ( ))} @@ -418,9 +438,7 @@ export default function Home() { )} - - {/* */} - +
+
+ +
+ +
{!isReachUsGridLoading && ( @@ -442,5 +465,6 @@ export default function Home() {