diff --git a/Backend/elso gyakorlat/FELADAT_LEIRAS_USER_MANAGEMENT.md b/Backend/elso gyakorlat/FELADAT_LEIRAS_USER_MANAGEMENT.md
index b4a9297..48c2975 100644
--- a/Backend/elso gyakorlat/FELADAT_LEIRAS_USER_MANAGEMENT.md
+++ b/Backend/elso gyakorlat/FELADAT_LEIRAS_USER_MANAGEMENT.md
@@ -37,26 +37,26 @@ src/
### Rétegek Részletes Leírása
-#### 1. **Domain Layer** (Domain réteg)
+#### 1. **Domain Réteg** (Domain Layer)
- **Felelősség**: Az alkalmazás magját képező interfészek és domain modellek
- **Tartalma**: Repository interfészek (IUserRepository)
- **Függőség**: Nincs más rétegre való függősége
-#### 2. **Infrastructure Layer** (Infrastruktúra réteg)
+#### 2. **Infrastructure Réteg** (Infrastructure Layer)
- **Felelősség**: Technikai implementációk (adatbázis, fájlkezelés, külső API-k)
- **Tartalma**: Repository implementációk, adattárolás
-- **Függőség**: Domain layer-től függ (implementálja az interfészeket)
+- **Függőség**: Domain rétegtől függ (implementálja az interfészeket)
-#### 3. **Application Layer** (Alkalmazás réteg)
+#### 3. **Application Réteg** (Application Layer)
- **Felelősség**: Üzleti logika, use case-ek implementálása
- **Tartalma**: Commands, CommandHandlers, Queries, QueryHandlers
-- **Függőség**: Domain layer-től függ
+- **Függőség**: Domain rétegtől függ
- **CQRS Pattern**: Írás (Command) és olvasás (Query) műveletek szétválasztása
-#### 4. **API Layer** (API réteg)
+#### 4. **API Réteg** (API Layer)
- **Felelősség**: HTTP kérések kezelése, routing, válaszok küldése
- **Tartalma**: Controllers, Routers, Server konfiguráció
-- **Függőség**: Application és Infrastructure layer-től függ
+- **Függőség**: Application és Infrastructure rétegtől függ
---
@@ -155,7 +155,7 @@ A `package.json` az **npm projekt szíve** - tartalmazza a metaadatokat, függő
- `express`: ^5.2.1 - Web framework
- `^` (caret): Automatikus minor/patch update-ek engedélyezése
- 5.x.x verzió tartományon belül
-- `nodemon`: ^3.1.11 - Fejlesztői szerverAutomatikus újraindítás
+- `nodemon`: ^3.1.11 - Fejlesztői szerver automatikus újraindítása
- Érdemes `devDependencies`-be tenni (csak fejlesztéshez kell)
**Létrehozási módok:**
@@ -215,7 +215,7 @@ npm install
---
-### 2. Domain Layer Implementálás
+### 2. Domain Réteg Implementálás
#### 2.1 IUserRepository.js - Repository Interface
@@ -225,7 +225,7 @@ npm install
**Részletes leírás:**
-A Domain Layer középpontjában az interfészek állnak. JavaScript-ben nincs natív interfész támogatás (mint pl. TypeScript-ben vagy Java-ban), de osztályokkal szimulálhatjuk ezt a viselkedést.
+A Domain réteg középpontjában az interfészek állnak. JavaScript-ben nincs natív interfész támogatás (mint pl. TypeScript-ben vagy Java-ban), de osztályokkal szimulálhatjuk ezt a viselkedést.
**Mit kell létrehozni:**
@@ -277,7 +277,7 @@ export class IUserRepository {
---
-### 3. Infrastructure Layer Implementálás
+### 3. Infrastructure Réteg Implementálás
#### 3.1 user.json - Adat fájl
@@ -448,7 +448,7 @@ export class UserRepository extends IUserRepository {
---
-### 4. Application Layer - Query Implementálás
+### 4. Application Réteg - Query Implementálás
#### 4.1 GetAllUsersQuery
@@ -597,7 +597,7 @@ export class GetUserByIdQuery {
**Error Handling:**
- A dobott hiba később a Controller-ben lesz elkapva
- A Controller alakítja át HTTP 404 válasszá
-- Ez szépen szétválasztja a rétegeket: Application Layer nem tud HTTP-ről, csak üzleti hibákat dob
+- Ez szépen szétválasztja a rétegeket: Application réteg nem tud HTTP-ről, csak üzleti hibákat dob
📄 Teljes kód megtekintése
@@ -622,7 +622,7 @@ export class GetUserByIdQueryHandler {
---
-### 5. Application Layer - Command Implementálás
+### 5. Application Réteg - Command Implementálás
#### 5.1 CreateUserCommand
@@ -688,7 +688,7 @@ if (!command.name || !command.email) {
}
```
- Name és email **kötelező mezők**
-- Ez üzleti logika - az Application Layer felelőssége
+- Ez üzleti logika - az Application réteg felelőssége
- Ha valamelyik hiányzik, kivételt dobunk
- Later: Bővíthető email formátum ellenőrzéssel, egyediség ellenőrzéssel, stb.
@@ -928,7 +928,7 @@ if (!deleted) {
**3. Visszatérési érték:**
- **Nincs explicit return!**
-- DELETE művelet nem ad vissza adatot (ún. "void" műv elet)
+- DELETE művelet nem ad vissza adatot (ún. "void" művelet)
- A Controller HTTP 204 No Content választ küld
**Fontos különbség:**
@@ -962,17 +962,17 @@ export class DeleteUserCommandHandler {
---
-### 6. API Layer Implementálás
+### 6. API Réteg Implementálás
#### 6.1 userController.js - Controller
**Fájl**: `src/API/controllers/userController.js`
-**Cél**: HTTP kérések kezelése és koordináció az Application layer-rel.
+**Cél**: HTTP kérések kezelése és koordináció az Application réteggel.
**Részletes leírás:**
-A Controller a **Presentation Layer** része - ő az, aki tudja, mi az a HTTP, mi az a request és response. Az Application Layer-t (Handler-ek) használja az üzleti logika végrehajtására.
+A Controller a **Presentation réteg** része - ő az, aki tudja, mi az a HTTP, mi az a request és response. Az Application réteget (Handler-ek) használja az üzleti logika végrehajtására.
**Fájl szerkezete:**
@@ -1264,8 +1264,6 @@ app.listen(PORT, () => {
});
```
- trong>
-
```javascript
import express from 'express';
import { UserController } from '../controllers/userController.js';
@@ -1307,11 +1305,7 @@ app.listen(PORT, () => {
});
```
-**Magyarázat:**
-
-- **express.json()**: JSON body parser middleware (kötelező a POST/PUT kérésekhez)
-- **Base path**: `/users` prefix minden user route-hoz
-- **Port**: 3000 (módosítható szükség szerint)
+
---
@@ -1530,13 +1524,13 @@ const __dirname = path.dirname(fileURLToPath(import.meta.url));
- [ ] Projekt struktúra létrehozva
- [ ] package.json konfigurálva (`"type": "module"`)
- [ ] Függőségek telepítve
-- [ ] Domain layer: IUserRepository létrehozva
-- [ ] Infrastructure layer: UserRepository és user.json létrehozva
-- [ ] Application layer: Összes Query és Command létrehozva
-- [ ] Application layer: Összes Handler létrehozva
-- [ ] API layer: UserController létrehozva
-- [ ] API layer: userRouter létrehozva
-- [ ] API layer: server.js létrehozva és konfigurálva
+- [ ] Domain réteg: IUserRepository létrehozva
+- [ ] Infrastructure réteg: UserRepository és user.json létrehozva
+- [ ] Application réteg: Összes Query és Command létrehozva
+- [ ] Application réteg: Összes Handler létrehozva
+- [ ] API réteg: UserController létrehozva
+- [ ] API réteg: userRouter létrehozva
+- [ ] API réteg: server.js létrehozva és konfigurálva
- [ ] Szerver elindul hiba nélkül
- [ ] GET /users működik
- [ ] POST /users működik és ment a JSON fájlba
@@ -1565,6 +1559,6 @@ Ez a User Management rendszer egy jól strukturált, modern Node.js alkalmazás,
**Nehézségi szint**: Közép-haladó
---
-
+
**Dátum**: 2026. február 13.
**Verzió**: 1.0
diff --git a/Backend/elso gyakorlat/FELADAT_LEIRAS_USER_MANAGEMENT_EGYENI.md b/Backend/elso gyakorlat/FELADAT_LEIRAS_USER_MANAGEMENT_EGYENI.md
new file mode 100644
index 0000000..ca89965
--- /dev/null
+++ b/Backend/elso gyakorlat/FELADAT_LEIRAS_USER_MANAGEMENT_EGYENI.md
@@ -0,0 +1,222 @@
+# Egyéni Feladat – User Management Rendszer
+
+> **Ez a leírás teljesen kezdőknek is szól! Ha még soha nem fejlesztettél, akkor is végig tudsz menni rajta. Minden lépésnél részletes magyarázatot, példákat és forrásokat találsz.**
+
+---
+
+## 0. Alapok, amiket tudni érdemes
+
+### Mi az a User Management rendszer?
+Egy olyan program, amiben felhasználókat tudsz létrehozni, listázni, módosítani, törölni. Ilyen van minden weboldalon, ahol regisztrálni lehet.
+
+### Mik azok a REST API-k?
+Olyan szabályok szerint működő webes szolgáltatások, amikhez más programok (vagy akár te is) tudsz kéréseket küldeni (pl. "add vissza az összes felhasználót").
+
+### Mik azok a rétegek (layer-ek)?
+A programot több részre bontjuk, hogy átláthatóbb legyen. Pl. külön rész kezeli az adatokat, külön rész a webes kéréseket.
+
+### Mik azok a parancsok (Command) és lekérdezések (Query)?
+- **Command:** Valamit módosít (pl. új user létrehozása)
+- **Query:** Csak lekérdez (pl. összes user listázása)
+
+---
+
+## 1. Szükséges eszközök, telepítés
+
+1. **Node.js letöltése:**
+ - Menj a https://nodejs.org/ oldalra, töltsd le a LTS verziót, telepítsd.
+2. **Kód szerkesztő:**
+ - Ajánlott: [Visual Studio Code](https://code.visualstudio.com/)
+3. **Postman vagy Thunder Client:**
+ - Ezekkel tudod tesztelni az API-t. [Postman letöltése](https://www.postman.com/downloads/)
+
+---
+
+## 2. Projekt létrehozása, első lépések
+
+1. Hozz létre egy új mappát pl. `user-management` néven.
+2. Nyisd meg a mappát VS Code-ban.
+3. Nyiss egy terminált (Terminal > New Terminal).
+4. Írd be: `npm init -y` (létrehozza a package.json-t)
+5. Telepítsd az Express-t: `npm install express`
+6. (Ha JSON fájlt használsz adattárolásra, nem kell adatbázis.)
+
+---
+
+## 3. Mappastruktúra kialakítása
+
+Javasolt szerkezet:
+
+```
+user-management/
+ src/
+ API/
+ Application/
+ Domain/
+ Infrastructure/
+ package.json
+```
+
+Minden mappába majd külön fájlokat teszünk (lásd lentebb).
+
+---
+
+## 4. Kódolás lépésről lépésre (példákkal)
+
+### 4.1. API réteg (Express szerver)
+- Hozz létre egy `src/API/server.js` fájlt.
+- Írd bele az alábbi mintát:
+
+
+Express szerver példa
+
+```js
+import express from 'express';
+const app = express();
+app.use(express.json());
+
+app.get('/', (req, res) => {
+ res.send('Hello, User Management!');
+});
+
+app.listen(3000, () => {
+ console.log('Szerver fut a http://localhost:3000 címen');
+});
+```
+
+
+- Futtasd: `node src/API/server.js` (ha hibát ír, nézd meg, hogy mindenhol helyes-e az elérési út és a kód)
+
+### 4.2. Domain réteg (interfész, entitás)
+- Hozz létre egy `src/Domain/IUserRepository.js` fájlt.
+- Írd bele, hogy milyen műveleteket vársz el (pl. createUser, getUserById, stb.)
+
+
+IUserRepository.js példa
+
+```js
+export default class IUserRepository {
+ createUser(user) {}
+ getUserById(id) {}
+ getAllUsers() {}
+ updateUser(id, user) {}
+ deleteUser(id) {}
+}
+```
+
+
+### 4.3. Infrastructure réteg (adattárolás)
+- Hozz létre egy `src/Infrastructure/userRepository.js` fájlt.
+- Ebben valósítsd meg az IUserRepository metódusait, pl. JSON fájlba írással/olvasással.
+
+
+userRepository.js példa (részlet)
+
+```js
+import fs from 'fs/promises';
+import path from 'path';
+import IUserRepository from '../Domain/IUserRepository.js';
+
+const DATA_PATH = path.resolve('src/Infrastructure/user.json');
+
+export default class UserRepository extends IUserRepository {
+ async createUser(user) {
+ // ...
+ }
+ // ... többi metódus ...
+}
+```
+
+
+- Hozz létre egy `user.json` fájlt is, pl. így:
+
+
+user.json példa
+
+```json
+[]
+```
+
+
+### 4.4. Application réteg (Command/Query handlerek)
+- Hozz létre minden CRUD művelethez külön Command/Query és Handler fájlt.
+- Pl. `createUserCommand.js`, `createUserCommandHandler.js`, stb.
+
+
+createUserCommand.js példa
+
+```js
+export default class CreateUserCommand {
+ constructor(user) {
+ this.user = user;
+ }
+}
+```
+
+
+
+createUserCommandHandler.js példa
+
+```js
+import UserRepository from '../../Infrastructure/userRepository.js';
+export default class CreateUserCommandHandler {
+ constructor() {
+ this.userRepository = new UserRepository();
+ }
+ async handle(command) {
+ return await this.userRepository.createUser(command.user);
+ }
+}
+```
+
+
+### 4.5. API végpontok (Controller, Router)
+- Hozz létre egy `userController.js`-t és egy `userRouter.js`-t az API mappában.
+- A controller hívja a handlereket, a router összeköti az útvonalakat a controllerrel.
+
+
+userController.js példa
+
+```js
+import CreateUserCommand from '../../Application/users/command/createUserCommand.js';
+import CreateUserCommandHandler from '../../Application/users/command/createUserCommandHandler.js';
+
+export async function createUser(req, res) {
+ const command = new CreateUserCommand(req.body);
+ const handler = new CreateUserCommandHandler();
+ const result = await handler.handle(command);
+ res.status(201).json(result);
+}
+```
+
+
+---
+
+## 5. Tesztelés, hibakeresés
+
+- Indítsd el a szervert: `node src/API/server.js`
+- Küldj kéréseket Postmanből vagy Thunder Clientből (GET, POST, PUT, DELETE)
+- Ha hibát kapsz, olvasd el figyelmesen a hibaüzenetet, keresd meg a fájlban a hibás sort.
+- Próbáld ki az összes végpontot, nézd meg, hogy minden működik-e.
+
+---
+
+## 6. Dokumentáció, beadás
+
+- Készíts egy rövid leírást (README.md), amiben leírod:
+ - Mit csinál a programod?
+ - Hogyan kell elindítani?
+ - Milyen extra funkciót raktál bele?
+- Csatold a forráskódot és a tesztadatokat.
+
+---
+
+## 7. Hasznos források, videók
+
+- [Node.js alapok magyarul (videó)](https://www.youtube.com/watch?v=U8XF6AFGqlc)
+- [Express.js alapok magyarul (videó)](https://www.youtube.com/watch?v=1n_V2A4bHqw)
+- [REST API magyarázat (videó)](https://www.youtube.com/watch?v=Q-BpqyOT3a8)
+- [JSON fájlok kezelése Node.js-ben (angol)](https://www.digitalocean.com/community/tutorials/how-to-read-and-write-json-files-in-node-js)
+- [VS Code rövid bemutató (magyar)](https://www.youtube.com/watch?v=VqCgcpAypFQ)
+
+---
\ No newline at end of file