From 4757c3e0a9e02bec2c9f1e5a31de50a6f40d4dcb Mon Sep 17 00:00:00 2001 From: Antonio De Lucreziis Date: Sat, 8 Feb 2025 01:39:47 +0100 Subject: [PATCH] prototype mostly finished --- astro.config.mjs | 7 +- bun.lockb | Bin 337358 -> 338816 bytes package.json | 1 + src/client/DomandeEsamiCourse.tsx | 116 ++++++++++++++++ src/data/domande-esami.yaml | 87 ++++++++---- src/files.d.ts | 17 ++- src/layouts/BaseLayout.astro | 9 +- src/pages/domande-esami/[course].astro | 28 +--- src/pages/domande-esami/api.json.ts | 11 ++ src/pages/domande-esami/api/[course].json.ts | 24 ++++ src/pages/domande-esami/index.astro | 46 +++---- src/styles/components.scss | 131 ++++++++++++++----- src/styles/controls.scss | 43 ++++++ src/styles/main.scss | 4 + src/styles/typography.scss | 12 ++ 15 files changed, 418 insertions(+), 118 deletions(-) create mode 100644 src/client/DomandeEsamiCourse.tsx create mode 100644 src/pages/domande-esami/api.json.ts create mode 100644 src/pages/domande-esami/api/[course].json.ts diff --git a/astro.config.mjs b/astro.config.mjs index e9a6363..1831c87 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -18,6 +18,11 @@ export default defineConfig({ theme: 'github-light', }, }, - integrations: [preact(), mdx()], + integrations: [ + preact({ + compat: true, + }), + mdx(), + ], output: 'static', }) diff --git a/bun.lockb b/bun.lockb index fe08456d92cb617bf66c2018e98ca65ea2d924fc..d1ef97b443a8196bb5f33c383b8d0e4f71783575 100755 GIT binary patch delta 56547 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 BcbWhI delta 56348 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 AssI20 diff --git a/package.json b/package.json index 4d7fdde..9eefc62 100644 --- a/package.json +++ b/package.json @@ -21,6 +21,7 @@ "@fontsource/source-sans-pro": "^5.0.8", "@fontsource/space-mono": "^5.0.20", "@phosphor-icons/core": "^2.1.1", + "@phosphor-icons/react": "^2.1.7", "@preact/signals": "^1.3.0", "@types/jsdom": "^21.1.7", "astro": "5.1.0", diff --git a/src/client/DomandeEsamiCourse.tsx b/src/client/DomandeEsamiCourse.tsx new file mode 100644 index 0000000..259177b --- /dev/null +++ b/src/client/DomandeEsamiCourse.tsx @@ -0,0 +1,116 @@ +import { useEffect, useState } from 'preact/hooks' +import { Funnel } from '@phosphor-icons/react' +import { marked } from 'marked' + +import type { Database } from '@/data/domande-esami.yaml' + +const useRemoteValue = (url: string): T | null => { + const [value, setValue] = useState(null) + + useEffect(() => { + fetch(url) + .then(response => response.json()) + .then(value => setValue(value)) + }, [url]) + + return value +} + +type Props = { + course: string +} + +export const DomandeEsamiCourse = ({ course }: Props) => { + const database = useRemoteValue(`/domande-esami/api/${course}.json`) + if (!database) { + return <>Loading... + } + + // @ts-ignore + requestIdleCallback(() => window.renderMath()) + + console.log(database) + + const courseTags = [ + ...new Set( + database.questions + .filter(question => question.course === course) + .flatMap(question => question.tags) + ), + ] + + const [selectedTags, setSelectedTags] = useState([]) + + const filteredQuestions = database.questions + .filter(question => question.course === course) + .filter( + question => selectedTags.length === 0 || selectedTags.every(tag => question.tags.includes(tag)) + ) + + return ( + <> +
+

+ Domande Esami +

+

{database.names[course]}

+
+ +
+
+ + Filtra Tag +
+
+ {selectedTags.length === 0 + ? courseTags.map(tag => ( +
setSelectedTags([tag])}> + {tag} +
+ )) + : courseTags.map(tag => ( +
+ setSelectedTags( + selectedTags.includes(tag) + ? selectedTags.filter(t => t !== tag) + : [...selectedTags, tag] + ) + } + > + {tag} +
+ ))} +
+
+
+ {filteredQuestions.length === 0 ? ( +
+ No questions found +
+ ) : ( + filteredQuestions.map(question => ( +
+
+ +
+ )) + )} +
+ + ) +} diff --git a/src/data/domande-esami.yaml b/src/data/domande-esami.yaml index 3549afe..2ed339d 100644 --- a/src/data/domande-esami.yaml +++ b/src/data/domande-esami.yaml @@ -21,7 +21,7 @@ names: groups: - id: triennale-anno-1 - name: Triennale - Anno I + name: I Anno Triennale items: - aritmetica - geometria-1 @@ -29,14 +29,14 @@ groups: - algebra-1 - id: triennale-anno-2 - name: Triennale - Anno II + name: II Anno Triennale items: - geometria-2 - analisi-2 - algebra-1 - id: triennale-anno-3 - name: Triennale - Anno III + name: III Anno Triennale items: - ricerca-operativa - fisica-3 @@ -60,101 +60,142 @@ groups: questions: - course: geometria-1 - year: 2024 content: | Dimostrare il teorema spettrale reale + tags: + - 2024 - course: gtd - year: 2024 content: | Calcolare la curvatura gaussiana di una sfera di raggio $r$ + tags: + - 2024 - course: geometria-1 - year: 2023 content: | Dimostrare che _l'area_ di un cerchio è $A = \pi r^2$ + tags: + - 2023 - course: algebra-1 - year: 2024 content: | Dimostrare il teorema di Sylow + tags: + - 2024 - course: algebra-1 - year: 2023 content: | Dimostrare che ogni sottogruppo di un gruppo ciclico è ciclico + tags: + - 2023 - course: analisi-1 - year: 2024 content: | Dimostrare il teorema di Weierstrass + tags: + - 2024 - course: analisi-1 - year: 2023 content: | Dimostrare che se $f$ è continua su $[a,b]$, allora $f$ è limitata + tags: + - 2023 - course: analisi-2 - year: 2024 content: | Dimostrare il teorema di Stokes + tags: + - 2024 - course: analisi-2 - year: 2023 content: | Dimostrare il teorema di Green + tags: + - 2023 - course: analisi-3 - year: 2024 content: | Dimostrare il teorema di Cauchy + tags: + - 2024 - course: analisi-3 - year: 2023 content: | Dimostrare il teorema di Liouville + tags: + - 2023 - course: algebra-2 - year: 2024 content: | Dimostrare il teorema di struttura per i gruppi abeliani finiti + tags: + - 2024 - course: algebra-2 - year: 2023 content: | Dimostrare il teorema di struttura per i gruppi finiti + tags: + - 2023 - course: ricerca-operativa - year: 2024 content: | Dimostrare il teorema di dualità per i problemi di programmazione lineare + tags: + - 2024 - course: geometria-topologia-differenziale - year: 2024 content: | Dimostrare il teorema di Poincaré-Hopf + tags: + - 2024 - course: analisi-armonica - year: 2024 content: | Dimostrare il teorema di Hahn-Banach + tags: + - 2024 - course: analisi-complessa - year: 2024 content: | Dimostrare il teorema di Morera + tags: + - 2024 - course: analisi-complessa - year: 2023 content: | Dimostrare il teorema degli zeri di Weierstrass + tags: + - 2023 - course: analisi-complessa - year: 2022 content: | Dimostrare il teorema della mappa aperta + tags: + - 2022 - course: analisi-complessa - year: 2021 content: | Dimostrare il teorema della mappa aperta + tags: + - 2021 + + - course: geometria-2 + content: | + Dimostrare il teorema di Van Kampen + tags: + - 2024 + - Frigerio + + - course: geometria-2 + content: | + Definizione di gruppo fondamentale + tags: + - 2023 + - Frigerio + + - course: geometria-2 + content: | + Dimostrare il teorema Cauchy + tags: + - 2022 + - Abate diff --git a/src/files.d.ts b/src/files.d.ts index 975bb65..fb0b88c 100644 --- a/src/files.d.ts +++ b/src/files.d.ts @@ -17,21 +17,24 @@ declare module '@/data/macchinisti.yaml' { } declare module '@/data/domande-esami.yaml' { - type Question = { + export type Question = { course: string - year: number content: string + tags: string[] } - type Group = { + export type Group = { id: string name: string items: Array } - const names: Record - const groups: Group[] - const questions: Question[] + export type Database = { + names: Record + groups: Group[] + questions: Question[] + } - export { names, groups, questions } + const value: Database + export default value } diff --git a/src/layouts/BaseLayout.astro b/src/layouts/BaseLayout.astro index 57c35b7..0929185 100644 --- a/src/layouts/BaseLayout.astro +++ b/src/layouts/BaseLayout.astro @@ -44,7 +44,7 @@ const { title, description, thumbnail, pageTags } = Astro.props