Tento projekt je user-friendly pokladní software zaměřený na pokladní prodej. Usnadňuje práci pokladním a poskytuje vedoucím lepší dohled nad jejich činností.
Tento projekt byl vytvořen jako bakalářská práce na Matematicko-fyzikální fakultě Univerzity Karlovy.
- Odkaz na bakalářskou práci
- Odkaz na text práce
- Projekt byl přesunut z univerzitního GitLabu do tohoto GitHub repozitáře - Proto zde chybí git historie
-
Python 3.8+
-
Node.js 14+
-
npm 6+ nebo yarn 1.22+
-
PostgreSQL 12+
-
Naklonujte repozitář:
git clone https://gitlab.mff.cuni.cz/teaching/nprg045/kopecky/Nguyen_Hai_Hung_2022.git cd Nguyen_Hai_Hung_2022/backend
-
Vytvořte virtuální prostředí a aktivujte ho:
python -m venv venv source venv/bin/activate
-
Nainstalujte potřebné balíčky:
pip install -r requirements.txt
-
Vytvořte soubor
.env
v adresářibackend/
a nastavte následující proměnné:
SECRET_KEY=tajny-klic
DB_NAME=postgres
DB_USER=postgres
DB_PASSWORD=postgres
DB_HOST=localhost
DB_PORT=5432
PUBLIC_BASE_URL=http://localhost:8000
DEBUG=1
DJANGO_ALLOWED_HOSTS=
DJANGO_CSRF_TRUSTED_ORIGINS=
DJANGO_CORS_ALLOWED_ORIGINS=
Vysvětlení proměnných:
SECRET_KEY
: Unikátní tajný klíč pro Django aplikaci. Změňte na vlastní bezpečný řetězec.DB_*
: Nastavení databáze. Upravte podle vaší PostgreSQL konfigurace.PUBLIC_BASE_URL
: URL adresa backendu.DEBUG
: Nastavte na 0 pro produkční prostředí.DJANGO_ALLOWED_HOSTS
: Seznam povolených hostitelů, oddělených čárkami (např.localhost,example.com
).DJANGO_CSRF_TRUSTED_ORIGINS
: Seznam důvěryhodných origins pro CSRF ochranu.DJANGO_CORS_ALLOWED_ORIGINS
: Seznam povolených origins pro CORS.
- Proveďte migrace databáze:
python manage.py makemigrations python manage.py migrate
-
Přejděte do adresáře frontendu:
cd ../next-ui
-
Nainstalujte závislosti:
npm install # nebo yarn install
-
Vytvořte soubor
.env.local
v adresářifrontend/
a nastavte následující proměnné:NEXT_PUBLIC_PUBLIC_BASE_AUTH_URL=http://localhost:8000 NEXT_PUBLIC_PUBLIC_BASE_URL=http://localhost:8000 NEXTAUTH_URL=http://localhost:8000 NEXTAUTH_INTERNAL_URL=http://localhost:3000 NEXTAUTH_SECRET=tajny-klic
Vysvětlení proměnných:
NEXT_PUBLIC_PUBLIC_BASE_AUTH_URL
: URL adresa pro autentizaci.NEXT_PUBLIC_PUBLIC_BASE_URL
: Základní URL adresa backendu.NEXTAUTH_URL
: URL adresa pro NextAuth.NEXTAUTH_INTERNAL_URL
: Interní URL adresa pro NextAuth.NEXTAUTH_SECRET
: Tajný klíč pro NextAuth. Změňte na vlastní bezpečný řetězec.
Poznámka: Ujistěte se, že hodnoty NEXT_PUBLIC_PUBLIC_BASE_AUTH_URL
a NEXT_PUBLIC_PUBLIC_BASE_URL
odpovídají vaší backend konfiguraci.
Pro SECRET_KEY
(Django) a NEXTAUTH_SECRET
(Next.js) je důležité použít bezpečné, náhodně generované klíče. Zde jsou způsoby, jak je vygenerovat:
V Pythonu můžete vygenerovat bezpečný klíč pomocí následujícího kódu:
import secrets
print(secrets.token_urlsafe(50))
Spusťte tento kód v Python konzoli a použijte vygenerovaný řetězec jako hodnotu SECRET_KEY
v souboru .env
backendu.
Pro NEXTAUTH_SECRET
můžete použít stejný postup jako pro Django SECRET_KEY
, nebo můžete použít nástroj příkazové řádky openssl
:
openssl rand -base64 32
Spusťte tento příkaz v terminálu a použijte vygenerovaný řetězec jako hodnotu NEXTAUTH_SECRET
v souboru .env
frontendu.
Poznámka: Ujistěte se, že tyto klíče uchováváte v bezpečí a nesdílíte je. V produkčním prostředí by měly být uchovávány bezpečně a nikdy by neměly být zahrnuty v repozitáři kódu.
-
Spusťte backend server:
cd backend python manage.py runserver
-
V novém terminálu spusťte frontend development server:
cd frontend npm run dev # nebo yarn dev
-
Otevřete prohlížeč a přejděte na
http://localhost:3000
Nasazená verze aplikace je dostupná na adrese:
http://tirpitz.ms.mff.cuni.cz:3003
Tuto verzi můžete použít pro testování nebo demo účely bez nutnosti lokální instalace.
- Pro spuštění backend testů:
cd backend python manage.py test