Pontozólap minta
Név:
Neptun:
Projekt rövid leírása:
Egy egyszerű webapplikáció sakkfeladványok megjelenítésére. Egy felhasználó van, az index.html betöltésénél a backend lekér az Azure-ban lévő adatbázisból tíz olyan sakkfeladványt, ami a felhasználó szintjének megfelel.
A feladványokat úgy lehet megoldani, hogy ráklikkelünk arra a figurára, amivel lépni szeretnénk, majd arra a mezőre, ahova szeretnénk vele lépni.
Két oldalra lehet navigálni a fejlécben, az egyik megjeleníti az éppen streamelő sakkozókat javascript által generált div-ekben, a másik pedig átirányít a Chess.com nap feladványára.
Hozott anyagok:
Saját Adatbázis

3x1pAz alkalmazásban használt táblánként pont (Puzzles, Users, OpeningFamilies)1pAz adatbázis tartalmaz Constraint-eket (min 2)2pAz adatbázis saját Azure SQL szerveren van1pAz adatbázis adatainak forrásmegjelölése értsd: miből készült és hogyan:
Az adatbázishoz az SQL-t egy C# scripttel generáltam a Lichess rejtvényei-ből, majd a scripteket lefuttattam Azure Data studio-ban. Az adatbázisnak öt táblája van, a Puzzles tartalmazza a feladványokat, az OpeningFamilies a nyitásokat, az OpeningVariations a nyitások variációit, a Themes kiszervezi a feladványok témáinak a listáját (pl: matt 4 lépépésből, végjáték) és a Users tábla tartalmazza a felhasználó(ka)t.
Részösszeg: 7p
Weboldal

1pA weboldalnak van egy értelmezhető struktúrája1pA weboldal dinamikus tartalommal tölthető fel adatbázison keresztül1pA weboldal használ legalább 20 sor értelmes css-t1pA weboldal javascriptje más funkciót is ellát, mint az adatok betöltése
Részösszeg: 4p
Eddig: 11p
Egyéb, extra
2pRegex alkalmazása validáláson túl (PuzzleController.cs 70.sor)1pScaffold-DbContexthasználata
Részösszeg: 3p
Eddig: 14p
Bonyolultabb algoritmus használata értelmes feladatra
1pAz algoritmus egy önállóan értelmezhető egységet képez, az alkalmazástól függetlenül1pAz algoritmus értelmes szerepet kap az alkalmazásban és nem lehet beépített megoldásokra kicserélni, nincs túlbonyolítva1pAz algoritmus az adatbázis adataira épít1pAz algoritmus (8. osztályig nem tanított) matematikai képletet is alkalmaz Élő pont számítás: https://en.wikipedia.org/wiki/Elo_rating_system
public abstract class EloCalculator
{
public static int CalculateElo(int currentElo,int puzzleRating,bool isSolved)
{
double K = 16;
double E = 1 / (1 + Math.Pow(10, (puzzleRating - currentElo) / 400));
return Convert.ToInt32(Math.Round(isSolved?currentElo+K*(1-E):currentElo-K*(E)));
}
}
Részösszeg: 4p
Eddig: 18p
ASP .NET
2pprogram.csbeállításawwwrootmappában tárolt statikus tartalmak megosztására
Részösszeg: 2p
Eddig: 20p
API végpontok

3pTeljes SQL tábla adatainak szolgáltatása API végponton keresztül (openings)2x2pSQL tábla egy választható rekordjának szolgáltatása API végponton keresztül (getElo,getOpeningVariation)3pSQL tábla egy választható rekordjának törlése (deleteUser)5pÚj rekord felvételeHttpPostmetóduson keresztül SQL táblába (createUser)2x3pRekord módosításaHttpPostmetóduson keresztül SQL táblában (updateElo,changeUsername)2x5pKülső API végpont használata JS kódban, itt: Chess.com nap feladványa,Chess.com streamerek listája
Részösszeg: 31p
Eddig: 51p
Javascript
2x5pDOM feltöltése javascripttel (streamerek neve és ikonja, twitch url) Részösszeg:10p