diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 17cf28fc..292cf8f5 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -19,7 +19,7 @@ jobs: script: | cd programming/VPlan_FR/ - kill -INT (lsof -t nohup.out) || true + # kill -INT (lsof -t nohup.out) || true git checkout production git pull @@ -34,8 +34,8 @@ jobs: sudo service apache2 restart cd .. - rm nohup.out || true - nohup venv/bin/python3 -m backend.load_plans --ignore-exceptions --never-raise-out-of-proxies -l DEBUG - i 300 > nohup.out 2> nohup.err < /dev/null & + # rm nohup.out || true + # nohup venv/bin/python3 -m backend.load_plans --ignore-exceptions --never-raise-out-of-proxies -l DEBUG - i 300 > nohup.out 2> nohup.err < /dev/null & - disown (lsof -t nohup.out) || true + # disown (lsof -t nohup.out) || true diff --git a/.gitignore b/.gitignore index 4665fcb2..9ea9b39c 100644 --- a/.gitignore +++ b/.gitignore @@ -163,6 +163,7 @@ cython_debug/ client/node_modules backend/schools/private_data +client/public/base_static/teachers creds.json proxies.json diff --git a/README.md b/README.md index a55c04a7..a11e5768 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ # vplan.fr -This repository contains the code of the website [vplan.fr](https://vplan.fr/), which is free to use and already supports many schools in (eastern) Germany! If you want to contribute to the project, [contact us](https://vplan.fr/#contact), [submit an issue](https://github.com/ArtrenH/VPlan_FR/issues/new) or [fork this repo](https://github.com/ArtrenH/VPlan_FR/fork) and create a pull request for changes. +This repository contains the code of the website [vplan.fr](https://vplan.fr/), which is free to use and already supports many schools in (eastern) Germany! If you want to contribute to the project, [contact us](https://vplan.fr/#contact), [submit an issue](https://github.com/vplan-fr/VPlan_FR/issues/new) or [fork this repo](https://github.com/vplan-fr/VPlan_FR/fork) and create a pull request for changes. ![Preview Image of example school](readme_preview.png) @@ -66,4 +66,4 @@ and in another terminal, the npm dev server using: - `cd client` - `npm run dev` -If you have any more questions or need help with the setup, don't hesitate to [contact us](https://vplan.fr/#contact). :) \ No newline at end of file +If you have any more questions or need help with the setup, don't hesitate to [contact us](https://vplan.fr/#contact). :) diff --git a/client/public/base_static/images/landing_page/start_bg.webp b/client/public/base_static/images/landing_page/start_bg.webp new file mode 100644 index 00000000..4e8566cd Binary files /dev/null and b/client/public/base_static/images/landing_page/start_bg.webp differ diff --git a/client/public/base_static/images/landing_page/vplanfr_form_view.png b/client/public/base_static/images/landing_page/vplanfr_form_view.png new file mode 100644 index 00000000..a18b77f8 Binary files /dev/null and b/client/public/base_static/images/landing_page/vplanfr_form_view.png differ diff --git a/client/public/base_static/images/landing_page/vplanfr_room_overview.png b/client/public/base_static/images/landing_page/vplanfr_room_overview.png new file mode 100644 index 00000000..71fe1bc5 Binary files /dev/null and b/client/public/base_static/images/landing_page/vplanfr_room_overview.png differ diff --git a/client/public/base_static/images/landing_page/vplanfr_room_view.png b/client/public/base_static/images/landing_page/vplanfr_room_view.png new file mode 100644 index 00000000..c89c48ac Binary files /dev/null and b/client/public/base_static/images/landing_page/vplanfr_room_view.png differ diff --git a/client/public/base_static/images/landing_page/vplanfr_teacher_view.png b/client/public/base_static/images/landing_page/vplanfr_teacher_view.png new file mode 100644 index 00000000..c2704743 Binary files /dev/null and b/client/public/base_static/images/landing_page/vplanfr_teacher_view.png differ diff --git a/client/public/base_static/images/landing_page/vpmobil24_form_view.png b/client/public/base_static/images/landing_page/vpmobil24_form_view.png new file mode 100644 index 00000000..37971cdb Binary files /dev/null and b/client/public/base_static/images/landing_page/vpmobil24_form_view.png differ diff --git a/client/public/base_static/images/vplan_fr_werbeplakat.png b/client/public/base_static/images/vplan_fr_werbeplakat.png new file mode 100644 index 00000000..73f1eb4e Binary files /dev/null and b/client/public/base_static/images/vplan_fr_werbeplakat.png differ diff --git a/client/public/index.html b/client/public/index.html index d39eaea2..b1774091 100644 --- a/client/public/index.html +++ b/client/public/index.html @@ -6,7 +6,7 @@ - + diff --git a/client/src/App.svelte b/client/src/App.svelte index 2275511a..973abf3a 100644 --- a/client/src/App.svelte +++ b/client/src/App.svelte @@ -2,6 +2,8 @@ import Plan from "./components/Plan.svelte"; import Weekplan from "./components/Weekplan.svelte"; import Authentication from "./components/Authentication.svelte"; + import LandingPage from "./components/LandingPage.svelte"; + import LandingPageNavbar from "./components/LandingPageNavbar.svelte"; import Toast from './base_components/Toast.svelte'; import Navbar from "./components/Navbar.svelte"; import Settings from "./components/Settings.svelte"; @@ -24,6 +26,8 @@ import {animateScroll} from 'svelte-scrollto-element'; import Button from "./base_components/Button.svelte"; import { fade } from "svelte/transition"; + import FancyBackground from "./components/FancyBackground.svelte"; + import NotFound from "./components/NotFound.svelte"; const pad = (n, s = 2) => (`${new Array(s).fill(0)}${n}`).slice(-s); let school_num; @@ -356,7 +360,6 @@ history.go(1); return; } - if(new_location === "") {new_location = "plan";} navigate_page(new_location); if (new_location.startsWith("plan")) { refresh_plan_vars(); @@ -365,7 +368,6 @@ let new_location = location.hash.slice(1); if(!((new_location === "login" || new_location === "register") && $logged_in)) { - if(new_location === "") {new_location = "plan";} if(new_location === "favorite") { load_favorite = true; new_location = "plan"; @@ -380,6 +382,12 @@ {#if $logged_in} +{:else if $current_page !== "login" && $current_page !== "register"} + +{/if} + +{#if $current_page === ""} + {/if} @@ -393,6 +401,8 @@ {:else if $current_page === "impressum"} + {:else if $current_page === ""} + {:else if $logged_in} {#if $current_page.substring(0, 4) === "plan" || $current_page.substring(0, 8) === "weekplan"}

{emoji} {greeting}

@@ -455,7 +465,10 @@ {:else if $current_page === "school_manager"} {:else if $current_page === "favorite"} - Lade deine Favoriten... +
+
sync
+ Lade deine Favoriten... +
{:else if $current_page === "favorites"} {:else if $current_page === "pwa_install"} @@ -463,10 +476,12 @@ {:else if $current_page === "stats"} {:else} - Seite nicht gefunden! + {/if} - {:else} + {:else if $current_page === "login" || $current_page === "register"} + {:else} + {/if} @@ -474,8 +489,9 @@
- + {#if !$logged_in}{/if} + @@ -484,6 +500,44 @@
+ + +
+ +
+
+
+ + \ No newline at end of file diff --git a/client/src/components/LandingPage.svelte b/client/src/components/LandingPage.svelte new file mode 100644 index 00000000..ee2396bf --- /dev/null +++ b/client/src/components/LandingPage.svelte @@ -0,0 +1,491 @@ + + + + {update3DRotationScroll(); addToSlider()}}> + +
+
+
+
+
+
+
+

+ Better VPlan +

+ {#key currentMottoIndex} +

+ {mottos[currentMottoIndex]} +

+ {/key} +
$register_button_visible = true} + on:exitViewport={() => $register_button_visible = false}> + +
+
+
+
+

Pläne unlocked

+
+ setTimeout(() => lockVisible = true, 800)} + on:exitViewport={() => lockVisible = false} + class:unlocked={lockVisible} class="lock" style="--locked-color: #ff8888; --unlocked-color: #ffffff"> +
+
+
+

Klassenplan
Wahrer Lehrerplan
Raumplan

+
+
+
+ realSliderValue = parseFloat(evt.target.value)} class="slider" name='slider' id="slider"> + +
+
+
+

Freie Räume

+ Raum-Übersicht in Better VPlan +
+
+
+

+ Mobile Daten übrig für +
+ Wichtigeres +
setTimeout(() => {rotating_text.style.setProperty('--transform-val', '-300%')}, 1500)} + on:exitViewport={() => {}}> + WhatsApp + Discord + Spotify + Wichtigeres +
+
+

+
+
+ 🚀 4x weniger API-Requests als die VpMobil24 App + ⚡ Near-instant Ladezeiten + 🚵‍♂️ Funktioniert genauso offline (mit Planstatusindikatoren) +
+
+
+
+

Quality of Life

+ +
    +
  • Cleanes Customizable Design
  • +
  • Beliebig viele Favoriten
  • +
  • Alle Vorkommen von Klassen, Räumen, Lehrern etc. führen bei klicken zu ihrem jeweiligen Plan
  • +
  • Überblick über alte Pläne
  • +
  • GAMES :DDD
  • +
+
+
+
+
+
+

Geplante Features 🚧

+
    +
  • Push Notifications
  • +
  • Kalendersynchronisation
  • +
  • Wochenplan
  • +
+
+
+ + \ No newline at end of file diff --git a/client/src/components/LandingPageNavbar.svelte b/client/src/components/LandingPageNavbar.svelte new file mode 100644 index 00000000..7adcc45a --- /dev/null +++ b/client/src/components/LandingPageNavbar.svelte @@ -0,0 +1,141 @@ + + + + + \ No newline at end of file diff --git a/client/src/components/NotFound.svelte b/client/src/components/NotFound.svelte new file mode 100644 index 00000000..8d1f1c34 --- /dev/null +++ b/client/src/components/NotFound.svelte @@ -0,0 +1,43 @@ + + +
+ travel_explore + Wir haben weit und breit gesucht aber nichts gefunden. ☹️ +
+ + \ No newline at end of file diff --git a/client/src/components/SchoolManager.svelte b/client/src/components/SchoolManager.svelte index ae516657..93b058a4 100644 --- a/client/src/components/SchoolManager.svelte +++ b/client/src/components/SchoolManager.svelte @@ -123,7 +123,6 @@ return {}; } for (let school of schools) { - console.log(school); if (school.id === school_id.toString()) { return school } @@ -150,7 +149,6 @@ $: authorize_school_data = get_school_by_id(authorize_school_id); function add_school() { - console.log(add_school_name, add_school_num, add_school_username, add_school_password); let formData = new FormData(); formData.append('display_name', add_school_name); diff --git a/client/src/stores.js b/client/src/stores.js index ef1b9a19..4d323dc5 100644 --- a/client/src/stores.js +++ b/client/src/stores.js @@ -11,3 +11,5 @@ export const pwa_prompt = writable(); export const new_changelogs_available = writable(false); export const favorites = writable([]); export const selected_favorite = writable(0); + +export const register_button_visible = writable(false); \ No newline at end of file diff --git a/client/src/utils.js b/client/src/utils.js index 29beff64..21a40c5d 100644 --- a/client/src/utils.js +++ b/client/src/utils.js @@ -1,4 +1,4 @@ -import {current_page, indexed_db, settings} from "./stores.js"; +import {current_page, indexed_db, register_button_visible, settings} from "./stores.js"; import {notifications} from "./notifications.js"; import { get } from "svelte/store"; import { favorites } from "./stores.js"; @@ -118,6 +118,7 @@ export function navigate_page(page_id) { if(page_id === "plan" && get(current_page).startsWith("plan")) {return;} current_page.set(page_id); location.hash = `#${page_id}`; + register_button_visible.set(false); // console.log(`Changed Location to: "${page_id}"`); } @@ -340,11 +341,22 @@ export function format_date(date) { "August", "September", "Oktober", "November", "Dezember" ]; + const days = [ + "So", + "Mo", + "Di", + "Mi", + "Do", + "Fr", + "Sa" + ]; + + const weekday = days[date.getDay()]; const day = date.getDate(); const monthIndex = date.getMonth(); const year = date.getFullYear(); - return `${day}. ${months[monthIndex]} ${year}`; + return `${weekday}., ${day}. ${months[monthIndex]} ${year}`; } diff --git a/docs/changelog/2.0.0.md b/docs/changelog/2.0.0.md index 2ce2f97e..6f5e8bad 100644 --- a/docs/changelog/2.0.0.md +++ b/docs/changelog/2.0.0.md @@ -30,7 +30,7 @@ Die alte Version unseres Plans war zwar toll und auf jeden Fall besser als die O # Ihr wollt für uns werben oder uns finanziell unterstützen? -- [Hier]() könnt Ihr unser Werbeplakat herunterladen und an Eurer Schule aufhängen oder im Schülerrat bewerben. +- [Hier](/public/base_static/images/vplan_fr_werbeplakat.png) könnt Ihr unser Werbeplakat herunterladen und an Eurer Schule aufhängen oder im Schülerrat bewerben. - [Hier 💸](https://www.paypal.com/paypalme/qrtrenh) ist unser PayPal - Schreibt uns auch gerne auf Discord und falls Ihr uns 5 € oder mehr (Server-Kosten für einen Monat) gebt, bedanken wir uns auf unserer Seite bei Euch. @@ -47,11 +47,11 @@ Die alte Version unseres Plans war zwar toll und auf jeden Fall besser als die O # Infos für unsere Developer-Freunde 🧑‍💻 -- Der gesamte Code bleibt natürlich open-source auf [Github](https://github.com/ArtrenH/VPlan_FR) verfügbar. +- Der gesamte Code bleibt natürlich open-source auf [Github](https://github.com/vplan-fr/VPlan_FR) verfügbar. - Ihr wollt mitmachen: - - Kontaktiert uns auf [Github](https://github.com/ArtrenH/VPlan_FR) oder Discord + - Kontaktiert uns auf [Github](https://github.com/vplan-fr/VPlan_FR) oder Discord - Ihr habt feature-requests: - - Macht ein Issue auf [Github](https://github.com/ArtrenH/VPlan_FR/issues) auf. + - Macht ein Issue auf [Github](https://github.com/vplan-fr/VPlan_FR/issues) auf. # Data Science 📊