📝 Added documentation about development-setup
This commit is contained in:
@@ -0,0 +1,95 @@
|
||||
<svelte:head>
|
||||
<title>ClassQuiz/docs - Development-setup</title>
|
||||
<meta
|
||||
name="description"
|
||||
content="How to import quizzes from KAHOOT! into ClassQuiz, the open-source quiz-application, easily"
|
||||
/>
|
||||
</svelte:head>
|
||||
<article
|
||||
class="prose prose-sm sm:prose lg:prose-lg xl:prose-xl mx-auto mt-10 prose-pink text-yellow-50 px-4"
|
||||
>
|
||||
<h1>Development-setup</h1>
|
||||
|
||||
<h2>Requirements</h2>
|
||||
<h4>Backend</h4>
|
||||
<ul>
|
||||
<li><a href="https://caddyserver.com/">Caddy</a></li>
|
||||
<li><a href="https://pipenv.pypa.io/en/latest/">Pipenv</a></li>
|
||||
<li><a href="https://redis.io/">Redis</a></li>
|
||||
</ul>
|
||||
|
||||
<h4>Frontend</h4>
|
||||
<ul>
|
||||
<li><a href="https://pnpm.io/">pNpM</a></li>
|
||||
</ul>
|
||||
|
||||
<h2>Setup</h2>
|
||||
<ul>
|
||||
<li>
|
||||
Clone the repo:
|
||||
<pre><code>git clone https://github.com/mawoka-myblock/classquiz</code></pre>
|
||||
</li>
|
||||
<li>
|
||||
Install the dependencies
|
||||
<ul>
|
||||
<li>
|
||||
Python:
|
||||
<pre><code>pipenv install</code></pre>
|
||||
</li>
|
||||
<li>
|
||||
JS:
|
||||
<pre><code>cd frontend && pnpm i</code></pre>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
Start the other services
|
||||
<ul>
|
||||
<li>
|
||||
Caddy:
|
||||
<pre><code>caddy run</code></pre>
|
||||
</li>
|
||||
<li>
|
||||
Redis:
|
||||
<pre><code>redis-server</code></pre>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
hcaptcha_key: str mail_address: str mail_password: str mail_username: str mail_server: str mail_port:
|
||||
int secret_key: str
|
||||
<li>
|
||||
Set your config up in your .env-file. What you have to set up can you see in the
|
||||
<code>classquiz/config.py</code>-file. The things you have to set are the following:
|
||||
<ul>
|
||||
<li><code>hcaptcha_key</code></li>
|
||||
<li><code>mail_address</code></li>
|
||||
<li><code>mail_password</code></li>
|
||||
<li><code>mail_username</code></li>
|
||||
<li><code>mail_server</code></li>
|
||||
<li><code>mail_port</code></li>
|
||||
<li><code>secret_key</code></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
Start the server
|
||||
<ul>
|
||||
<li>
|
||||
Backend:
|
||||
<pre><code>pipenv run uvicorn classquiz:app --reload</code></pre>
|
||||
</li>
|
||||
<li>
|
||||
Frontend:
|
||||
<pre><code>cd frontend && pnpm dev</code></pre>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h2>BEFORE you submit a Pull-Request</h2>
|
||||
<h4>Frontend</h4>
|
||||
<p>Please format and lint your code with</p>
|
||||
<pre><code>pnpm run format && pnpm run lint</code></pre>
|
||||
|
||||
<h4>Backend</h4>
|
||||
<p>IDK, just check that it works!</p>
|
||||
</article>
|
||||
@@ -1,17 +1,25 @@
|
||||
<svelte:head>
|
||||
<title>ClassQuiz/docs - Import from Kahoot</title>
|
||||
<meta name=description content='How to import quizzes from KAHOOT! into ClassQuiz, the open-source quiz-application, easily'>
|
||||
<meta
|
||||
name="description"
|
||||
content="How to import quizzes from KAHOOT! into ClassQuiz, the open-source quiz-application, easily"
|
||||
/>
|
||||
</svelte:head>
|
||||
<article
|
||||
class='prose prose-sm sm:prose lg:prose-lg xl:prose-xl mx-auto mt-10 prose-pink text-yellow-50 px-4'
|
||||
class="prose prose-sm sm:prose lg:prose-lg xl:prose-xl mx-auto mt-10 prose-pink text-yellow-50 px-4"
|
||||
>
|
||||
<h1>Import Quizzes from Kahoot into ClassQuiz</h1>
|
||||
|
||||
<p>All in all, this procedure is pretty simple, so just go to <a href='https://create.kahoot.it/discover'
|
||||
rel='nofollow' target='_blank'>create.kahoot.it/discover</a>,
|
||||
find the quiz you want to import, so click on it and copy the URL into your clipboard. Then go to <a
|
||||
href='https://classquiz.mawoka.eu/import' rel='nofollow' target='_blank'>classquiz.mawoka.eu/import</a> and paste
|
||||
the url into the text field.
|
||||
<p>
|
||||
All in all, this procedure is pretty simple, so just go to <a
|
||||
href="https://create.kahoot.it/discover"
|
||||
rel="nofollow"
|
||||
target="_blank">create.kahoot.it/discover</a
|
||||
>, find the quiz you want to import, so click on it and copy the URL into your clipboard.
|
||||
Then go to
|
||||
<a href="https://classquiz.mawoka.eu/import" rel="nofollow" target="_blank"
|
||||
>classquiz.mawoka.eu/import</a
|
||||
> and paste the url into the text field.
|
||||
</p>
|
||||
|
||||
<h2>Limitations</h2>
|
||||
@@ -21,4 +29,4 @@
|
||||
<li>Metadata doesn't get imported</li>
|
||||
<li>Point-multipliers don't get imported</li>
|
||||
</ul>
|
||||
</article>
|
||||
</article>
|
||||
|
||||
@@ -1,22 +1,27 @@
|
||||
<svelte:head>
|
||||
<title>ClassQuiz/docs - Index</title>
|
||||
<meta name=description content='The overview about the docs for ClassQuiz, the open-source quiz-application'>
|
||||
<meta
|
||||
name="description"
|
||||
content="The overview about the docs for ClassQuiz, the open-source quiz-application"
|
||||
/>
|
||||
</svelte:head>
|
||||
<article
|
||||
class='prose prose-sm sm:prose lg:prose-lg xl:prose-xl mx-auto mt-10 prose-pink text-yellow-50 px-4'
|
||||
class="prose prose-sm sm:prose lg:prose-lg xl:prose-xl mx-auto mt-10 prose-pink text-yellow-50 px-4"
|
||||
>
|
||||
<h1>Welcome to the ClassQuiz docs!</h1>
|
||||
<h2>Index</h2>
|
||||
<ul>
|
||||
<li>
|
||||
<a href='/docs/roadmap'>Roadmap</a>
|
||||
<a href="/docs/roadmap">Roadmap</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href='/docs/import-from-kahoot'>Import from Kahoot</a>
|
||||
<a href="/docs/import-from-kahoot">Import from Kahoot</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href='/docs/self-host'>Self-hosting</a>
|
||||
<a href="/docs/self-host">Self-hosting</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/docs/develop">Development-Setup</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</article>
|
||||
</article>
|
||||
|
||||
@@ -1,34 +1,26 @@
|
||||
<svelte:head>
|
||||
<title>ClassQuiz/docs - Roadmap</title>
|
||||
<meta name=description content='The roadmap for ClassQuiz, the open-source quiz-application'>
|
||||
<meta
|
||||
name="description"
|
||||
content="The roadmap for ClassQuiz, the open-source quiz-application"
|
||||
/>
|
||||
</svelte:head>
|
||||
<article
|
||||
class='prose prose-sm sm:prose lg:prose-lg xl:prose-xl mx-auto mt-10 prose-pink text-yellow-50 px-4'
|
||||
class="prose prose-sm sm:prose lg:prose-lg xl:prose-xl mx-auto mt-10 prose-pink text-yellow-50 px-4"
|
||||
>
|
||||
<h1>Roadmap</h1>
|
||||
|
||||
<ul>
|
||||
<li>User-management
|
||||
<li>
|
||||
User-management
|
||||
<ul>
|
||||
<li>
|
||||
Password-reset
|
||||
</li>
|
||||
<li>
|
||||
Session-management
|
||||
</li>
|
||||
<li>Password-reset</li>
|
||||
<li>Session-management</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
Images
|
||||
</li>
|
||||
<li>
|
||||
(Better) Admin-screen styling
|
||||
</li>
|
||||
<li>
|
||||
(Better) Edit/Create-screen styling
|
||||
</li>
|
||||
<li>
|
||||
Public quiz-discovery
|
||||
</li>
|
||||
<li>Images</li>
|
||||
<li>(Better) Admin-screen styling</li>
|
||||
<li>(Better) Edit/Create-screen styling</li>
|
||||
<li>Public quiz-discovery</li>
|
||||
</ul>
|
||||
</article>
|
||||
</article>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<script lang='ts'>
|
||||
<script lang="ts">
|
||||
import { onMount } from 'svelte';
|
||||
import '$lib/hljs.css';
|
||||
|
||||
@@ -10,30 +10,36 @@
|
||||
|
||||
<svelte:head>
|
||||
<title>ClassQuiz/docs - Self-Host</title>
|
||||
<meta name=description content='How to self-host ClassQuiz, the open-source quiz-application'>
|
||||
<meta
|
||||
name="description"
|
||||
content="How to self-host ClassQuiz, the open-source quiz-application"
|
||||
/>
|
||||
</svelte:head>
|
||||
<article
|
||||
class='prose prose-sm sm:prose lg:prose-lg xl:prose-xl mx-auto mt-10 prose-pink text-yellow-50 px-4'
|
||||
class="prose prose-sm sm:prose lg:prose-lg xl:prose-xl mx-auto mt-10 prose-pink text-yellow-50 px-4"
|
||||
>
|
||||
<h1>Self-Hosting</h1>
|
||||
<p>Since ClassQuiz is open-source, it can also be self-hosted.</p>
|
||||
|
||||
<h2>Requirements</h2>
|
||||
<ul>
|
||||
<li><a href='https://docker.com'>Docker</a></li>
|
||||
<li><a href='https://git-scm.com/'>Git</a></li>
|
||||
<li>A <a href='https://redis.com'>Redis</a>-Server (I recommend <a href='https://upstash.com'>Upstash</a>)</li>
|
||||
<li><a href="https://docker.com">Docker</a></li>
|
||||
<li><a href="https://git-scm.com/">Git</a></li>
|
||||
<li>
|
||||
A <a href="https://redis.com">Redis</a>-Server (I recommend
|
||||
<a href="https://upstash.com">Upstash</a>)
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h2>Installation</h2>
|
||||
<p>
|
||||
At first, clone the repo:
|
||||
</p>
|
||||
<p>At first, clone the repo:</p>
|
||||
|
||||
<pre><code class='language-bash'>git clone https://github.com/mawoka-myblock/classquiz && cd ClassQuiz</code></pre>
|
||||
<pre><code class="language-bash"
|
||||
>git clone https://github.com/mawoka-myblock/classquiz && cd ClassQuiz</code
|
||||
></pre>
|
||||
<p>
|
||||
Now, set a <b>VALID</b> Redis-URI in <code>frontend/Dockerfile</code> and, if you Sentry want, a valid
|
||||
Sentry-DSN.
|
||||
Now, set a <b>VALID</b> Redis-URI in <code>frontend/Dockerfile</code> and, if you Sentry want,
|
||||
a valid Sentry-DSN.
|
||||
</p>
|
||||
<p>
|
||||
You must set a valid hCaptcha-Sitekey in the <code>frontend/Dockerfile</code>.
|
||||
@@ -44,7 +50,8 @@
|
||||
Before you can start your stack, you have to set some environment-variables in your
|
||||
<code>docker-compose.yml</code>.
|
||||
</p>
|
||||
<pre><code class='language-yaml'>version: "3"
|
||||
<pre><code class="language-yaml"
|
||||
>version: "3"
|
||||
|
||||
services:
|
||||
frontend:
|
||||
@@ -112,6 +119,5 @@ volumes:
|
||||
data:
|
||||
</code></pre>
|
||||
<p>Now build and deploy:</p>
|
||||
<pre><code class='language-bash'>docker compose build && docker compose up -d</code></pre>
|
||||
|
||||
</article>
|
||||
<pre><code class="language-bash">docker compose build && docker compose up -d</code></pre>
|
||||
</article>
|
||||
|
||||
Reference in New Issue
Block a user