Adatvédelmi irányelveink

Üdvözöljük az ICheck weboldalán! Az alábbiakban részletesen bemutatjuk adatvédelmi gyakorlatunkat, hogy biztonságban érezhesse magát webhelyünkön.

  1. Gyűjtött információk: Gyűjthetünk névtelen adatokat, például IP-címeket, böngésző típusát, hivatkozó URL-eket és egyéb technikai információkat a webhely látogatásáról. Regisztráció vagy bejelentkezés esetén személyes adatokat is gyűjthetünk, például nevet, e-mail címet és egyéb kapcsolattartási adatokat.
  2. Felhasználás célja: A gyűjtött információkat a következő célokra használjuk fel:
    • A szolgáltatás nyújtása és működtetése
    • A felhasználói élmény javítása és testreszabása
    • Marketing- és reklámtevékenységek támogatása
  3. Adatmegosztás harmadik felekkel: Néha megoszthatjuk a gyűjtött információkat megbízható harmadik felekkel, például reklámhálózatokkal vagy üzleti partnerekkel.
  4. Sütik és nyomkövetési technológiák: Webhelyünk sütiket és más nyomkövetési technológiákat használhat a felhasználói élmény javítására és a webhely teljesítményének elemzésére.
  5. Adatvédelmi jogok: A felhasználók jogosultak adataik hozzáférésére, módosítására vagy törlésére. Kérjük, vegye fel velünk a kapcsolatot az alábbi elérhetőségeken. icheck@digitalgroup.hu
  6. Biztonsági intézkedések: Különféle biztonsági intézkedéseket alkalmazunk az adatok védelme érdekében, beleértve a titkosítást és a hozzáférési kontrollt.
    A webhelyünk egyéb részei kizárólag szerződéses, regisztrált partnereik számára elérhetőek.
  7. Életkor Korlátozások: Webhelyünk nem tartalmaz életkorhoz köthető korlátozásokat.
  8. Kapcsolatfelvétel: Ha bármilyen kérdése van az adatvédelmi gyakorlatunkkal kapcsolatban, kérjük, vegye fel velünk a kapcsolatot az icheck@digitalgroup.hu e-mail címen vagy a kapcsolati űrlapunkon keresztül.

Vissza a főoldalra

python django alapok: ---------------------- #virtuális környezet : python -m venv . #django telepítés: pip install django # django projekt létrehozása: django-admin startproject Projectnév #fejlesztői szerver elindítása: python manage.py runserver #lokális adatbázis létrehozása: python manage.py makemigrations python manage.py migrate # superuser létrehozása: python manage.py createsuperuser #applikáció létrehozása: python manage.py startapp TesztApp - képkezelő+ restframework: pip install pillow pip install djangorestframework settings.py ba be kell tenni az installed apps ba a rest_framewor-ot - létre kell hozni az appot: python manage.py startapp fantasy hozzá kell adni a settins.py installed appshoz - adatbázis létrehozása ha még nem történt meg: python manage.py migrate - admin felhasználó létrehozása: python manage.py createsuperuser - a fantasy/models.py ban létre kell hozni a modeleket: class ItemType(models.Model): name = models.CharField(max_length=255) def __str__(self): return self.name class Item(models.Model): name = models.CharField(max_length=255) item_type = models.ForeignKey(ItemType, on_delete=models.CASCADE) description = models.TextField(null=True,blank=True) image = models.ImageField(upload_to="static/images/") date = models.DateField(auto_now_add=True) def __str__(self): return self.name - le kell frissíteni az adatbázist: python manage.py makemigrations python manage.py migrate - az admin.py-ba importálni kell a modeleket from .models import Item,ItemType admin.site.register(ItemType) admin.site.register(Item) - settings.py ban be kell állítani a static mappa útvonalát: STATICFILES_DIRS = [ BASE_DIR /'static/', ] - API elkészítése: - fantasy mappán belül új file serializers.py: from rest_framework.serializers import ModelSerializer from .models import Item class ItemSerializer(ModelSerializer): class Meta: model = Item fields = '__all__' - a views.py ban elkészítjük a végpontot: from rest_framework.decorators import api_view from .serializers import ItemSerializer from .models import Item from rest_framework.response import Response def GetAllItems(request): items = Item.objects.all() ser = ItemSerializer(items,many=True) return Response(ser.data) - config/urls.py ban határozzuk meg a végpontot: from django.contrib import admin from django.urls import path from fantasy import views urlpatterns = [ path('admin/', admin.site.urls), path('api/items', views.GetAllItems), ] - az itemserializes ben módosítsuk a mélységet 1 re: depth=1 Innentől jön a frontend(REACT): - ha telepítettük a reactot (npx create-react-app appneve)akkor ha lefuttatjuk az npm run build parancsot akkor utána meg kell adni a djangonak hogy ezt a build mappát szolgáltassa a 8000-es porton ehhez a settings.py ban a templates 'DIRS':[BASE_DIR /'frontend/build/'] sort kell hozzáadni és a staticfiles_dirs hez ugyanennek a static mappáját - kell még egy view ami ezt visszaadja nekünk: urls.py ba : from django.shortcuts import render def indexPage(request): return render(request,'index.html') majd hozzáadjuk: path('', indexPage,name='index'), - react App.js ben rafce létrehoz mindent - létrehozunk egy új mappát components néven - létrehozunk benne egy file-t ItemSection.js néven - az App.js be importáljuk be : import ItemSection from './components/ItemSection' - az ItemSection ban hozzunk létre section elemet item-section osztállyal - a kártya elemnek hozzuk létre a ItemCard komponenst - fetcheljük meg a végpontot: - az item sectionba importáljuk az useState, useEffect et import React, {useState,useEffect} from 'react' useEffect(()=>{ fetch('http://127.0.0.1:8080/api/items/') .then(res=>res.json()) .then(data=>setItems(data)) }) - map-eljük a kapott adatokat: return ( ) - kártya formázása: .item-section{ /* border:1px solid black; */ padding: 10px; display:grid; grid-template-columns: repeat(1,1fr); gap:20px; max-width:1000px; margin:auto; } .item-section div{ border:1px solid black; padding:10px; border-radius:5px; display:flex; flex-direction: column; justify-content: center; align-items: center; gap:20px; } .item-section img{ width:100%; max-width: 50vw; } ------------------------------------- c# konzolos alkalmazás: - új projekt, Console App .net framework - Hajok - osztály létrehozása Hajo.cs - propertyk létrehozása prop tab - konstruktor létrehozása(egy sort adunk meg neki) string sor ctor string[] resz = sor.Split(';'); Nev = resz[0] .... Ev = int.Parse(resz[2]) .... - file beolvasása:vagy a bin--debug ba másoljuk vagy add -- existing item--- jobb gomb tul --copy always - létrehozunk egy listát: List adatok = new List (); - beolvassuk a filet: foreach (string i in File.ReadAllLines("hajolista.csv").skip(0)){ Hajo x = new Hajo(i); adatok.Add(x); } Console.WriteLine(adatok.Count()); ---------------------------------------------- c# asztali alkalmazás: - adatbázis létrehozása: CREATE DATABASE madarak SET DEFAULT CHARACTER SET utf8 COLLATE utf8_hungarian_ci - importáljuk az adatokat Ez a Class: ----------- internal class Hajo { public string Nev { get; set; } public string Tipus { get; set; } public int Ev { get; set; } public Hajo(MySqlDataReader reader) { Nev = reader.GetString(0); Tipus = reader.GetString(1); Ev = reader.GetInt32(2); } } - ... Ez kell kívülre: ------------------ private readonly string connectionString = "datasource=127.0.0.1;port=3306;username=root;password=;database=hajok;"; private readonly MySqlConnection connection; Ez kell belülre: ---------------- public MainWindow() { InitializeComponent(); connection = new MySqlConnection(connectionString); List adatok = new List (); connection.Open(); string lekerdezes = "SELECT nev, tipus, ev FROM hajo"; MySqlCommand cmd = new MySqlCommand(lekerdezes, connection); MySqlDataReader reader = cmd.ExecuteReader(); while (reader.Read()) { Hajo x = new Hajo(reader); adatok.Add(x); } reader.Close(); dtgH.ItemsSource = adatok; //connection.Close(); } private void btnH_Click(object sender, RoutedEventArgs e) { string sel_index = (dtgH.SelectedIndex + 1).ToString(); txtB.Text = sel_index; string lekerdezes = $"SELECT tnev FROM tulajdonos inner join hajo on hajo.tid = tulajdonos.id where hajo.id = {sel_index}"; MySqlCommand cmd = new MySqlCommand(lekerdezes,connection); MySqlDataReader reader = cmd.ExecuteReader(); reader.Read(); string kikoto = reader.GetString(0); txtB.Text = kikoto; reader.Close(); } A SOLID alapelvek öt fontos tervezési elvet foglalnak össze, amelyek célja, hogy a szoftvertervezés során jobban karbantartható, bővíthető és rugalmas rendszereket hozzunk létre. Ezek az elvek Robert C. Martin (Uncle Bob) nevéhez fűződnek. Az alábbiakban röviden bemutatom az egyes alapelveket: 1. **Single Responsibility Principle (SRP) – Egyszeri felelősség elve**: Minden osztálynak csak egyetlen jól definiált feladata legyen. Ez azt jelenti, hogy egy osztály csak egyfajta változást kezeljen. Ez az elv segít abban, hogy az osztályok egyszerűek és jól karbantarthatóak maradjanak. 2. **Open/Closed Principle (OCP) – Nyitott/zárt elv**: A szoftver entitások (osztályok, modulok, függvények stb.) legyenek nyitottak a bővítésre, de zártak a módosításra. Ez azt jelenti, hogy új funkciók hozzáadásakor ne kelljen meglévő kódot módosítani, hanem inkább új kódot írjunk hozzá. Ezzel minimalizálható a már meglévő, jól működő kód megváltoztatása és az ebből fakadó hibák esélye. 3. **Liskov Substitution Principle (LSP) – Liskov-féle helyettesítési elv**: Bármilyen származtatott osztály helyettesíthető legyen az alap osztállyal anélkül, hogy a program működése megváltozna. Ez az elv biztosítja a polimorfizmus helyes alkalmazását, és azt, hogy a származtatott osztályok megfeleljenek az alap osztály szerződésének. 4. **Interface Segregation Principle (ISP) – Interfész szegregációs elv**: Az ügyfelek ne legyenek arra kényszerítve, hogy olyan interfészeket implementáljanak, amelyeket nem használnak. Ez az elv arra ösztönöz, hogy kisebb, specifikus interfészeket hozzunk létre ahelyett, hogy nagy, általános célú interfészeket használnánk. 5. **Dependency Inversion Principle (DIP) – Függőség megfordításának elve**: Magas szintű modulok ne függjenek alacsony szintű moduloktól. Mindkettőnek az absztrakcióktól kell függnie. Az absztrakciók ne függjenek a konkrétumoktól, a konkrétumok függjenek az absztrakcióktól. Ez az elv segít a kódbázis lazább kapcsolódásában és nagyobb rugalmasságában. Ezek az alapelvek együtt segítenek abban, hogy a szoftverek könnyebben karbantarthatóak, tesztelhetőek és bővíthetőek legyenek, minimalizálva a változtatásokból fakadó hibákat és maximalizálva a kód újrafelhasználhatóságát. */