diff --git a/app/api/users.py b/app/api/users.py
new file mode 100644
index 0000000000000000000000000000000000000000..0af19c3648413ab1a34d57ba63e2672c1cc787e3
--- /dev/null
+++ b/app/api/users.py
@@ -0,0 +1,689 @@
+import csv
+import io
+import json
+from flask import Blueprint, request, jsonify, Response, redirect, url_for
+
+from ..functions import validate_json_fields
+from ..token import get_current_user, token_required
+from ..database import db
+from ..models import User, Item, Transaction
+from ..config import *
+
+USER_DOES_NOT_EXISTS_MESSAGE = 'Nem létezik ilyen felhasználó!'
+
+# Endpoint handeler blueprint létrehozása
+users = Blueprint('users', __name__, url_prefix='/users') # prefix: /api/v1/users
+
+calc_credit = lambda role: ADMIN_CREDIT if role == Roles.Admin.value else USER_CREDIT
+
+# ------------- REST API-sítás ------------------------
+
+# /api/users 
+# Felhasználók lekérdezése
+@users.route('/', methods=['GET'])
+@token_required(required_role=Roles.Admin.value)
+def get_users():
+    """
+        Felhasználók lekérdezése
+    ---
+    tags:
+      - Felhasználók
+    description: Az admin felhasználó lekérdezheti az összes felhasználó adatait.
+    responses:
+      200:
+        description: Sikeres lekérdezés.
+        content:
+          application/json:
+            schema:
+              type: object
+              properties:
+                success:
+                  type: boolean
+                  example: true
+                data:
+                  type: array
+                  items:
+                    type: object
+                    properties:
+                      uuid:
+                        type: string
+                        example: '123e4567-e89b-12d3-a456-426614174000'
+                      name:
+                        type: string
+                        example: 'User1'
+                      balance:
+                        type: integer
+                        example: 1000
+                      role:
+                        type: string
+                        example: 'admin'
+      400:
+        description: Hibás kérés, például nem létező felhasználó.
+        content:
+          application/json:
+            schema:
+              type: object
+              properties:
+                success:
+                  type: boolean
+                  example: false
+                message:
+                  type: string
+                  example: "Nem létezik ilyen felhasználó!"
+    security:
+      - jwtCookieAuth: []
+    """
+    if request.method == 'GET':
+        users = User.query.all()
+        user_list = [user.to_dict() for user in users]
+        return jsonify({"success": True, "data": user_list}), 200
+
+# /api/users 
+# Felhasználó létrehozása
+@users.route('/', methods=['POST'])
+@token_required(required_role=Roles.Admin.value)
+def create_user():
+    """
+        Felhasználó létrehozása
+    ---
+    tags:
+      - Felhasználók
+    description: Az admin felhasználó új felhasználót hozhat létre.
+    parameters:
+      - name: user
+        in: body
+        required: true
+        description: A felhasználó adatai.
+        schema:
+          type: object
+          properties:
+            uuid:
+              type: string
+              example: '123e4567-e89b-12d3-a456-426614174000'
+            name:
+              type: string
+              example: 'User1'
+            balance:
+              type: integer
+              example: 1000
+            role:
+              type: string
+              example: 'admin'
+    responses:
+      200:
+        description: Sikeres felhasználó létrehozás.
+        content:
+          application/json:
+            schema:
+              type: object
+              properties:
+                success:
+                  type: boolean
+                  example: true
+                message:
+                  type: string
+                  example: "Felhasználó sikeresen létrehozva."
+      400:
+        description: Hibás kérés, például már létező UUID.
+        content:
+          application/json:
+            schema:
+              type: object
+              properties:
+                success:
+                  type: boolean
+                  example: false
+                message:
+                  type: string
+                  example: "Már létezik ilyen UUID."
+    security:
+        - jwtCookieAuth: []
+    """
+    if request.method == 'POST':
+        data = request.json
+        
+        is_valid, msg = validate_json_fields(data, ['uuid', 'name', 'balance', 'role'])
+        if not is_valid:
+            return jsonify({"success": False, 'message': msg}), 400
+        
+        user_uuid = str(data.get('uuid'))
+        user_name = str(data.get('name'))
+        user_balance = int(str(data.get('balance')))
+        user_role = str(data.get('role'))
+
+        # Lekérdezzük az adatbázisbólk, hogy van e ilyen nevű felhasználó
+        selected_user = User.query.get(user_uuid)
+        # Ha van ilyen felhasználó, akkor errort dobunk visza
+        if selected_user:
+            return jsonify({"success": False, "message": f"Már létezik ilyen UUID: {user_uuid}."}), 400
+        
+        # Felhasználó létrehozása a táblában
+        new_user = User(
+            uuid=user_uuid,
+            name=user_name,
+            balance=user_balance,
+            role=user_role
+        )
+        
+        # Adatbázisba írás
+        db.session.add(new_user)
+        db.session.commit()
+
+        return jsonify({"success": True, "message": f"{user_name} felhasználó sikeresen létrehozva."}), 200
+    
+
+# /api/users/{uuid} 
+# GET # Felhasználói adatok lekérdezése uuid-val azonosítva
+@users.route('/<string:uuid>', methods=['GET'])
+@token_required(required_role=Roles.Admin.value)
+def get_user_by_uuid(uuid):
+    """
+    Felhasználó adatainak lekérdezése UUID alapján
+    ---
+    tags:
+      - Felhasználók
+    description: Az admin felhasználó lekérdezheti egy adott felhasználó adatait UUID alapján.
+    parameters:
+      - name: uuid
+        in: path
+        required: true
+        description: A felhasználó UUID-ja.
+        schema:
+          type: string
+    responses:
+      200:
+        description: Sikeres lekérdezés.
+        content:
+          application/json:
+            schema:
+              type: object
+              properties:
+                success:
+                  type: boolean
+                  example: true
+                data:
+                  type: object
+                  properties:
+                    uuid:
+                      type: string
+                      example: '123e4567-e89b-12d3-a456-426614174000'
+                    name:
+                      type: string
+                      example: 'User1'
+                    balance:
+                      type: integer
+                      example: 1000
+                    role:
+                      type: string
+                      example: 'admin'
+      400:
+        description: Hibás kérés, például nem létező felhasználó.
+        content:
+          application/json:
+            schema:
+              type: object
+              properties:
+                success:
+                  type: boolean
+                  example: false
+                message:
+                  type: string
+                  example: "Nem létezik ilyen felhasználó!"
+    security:
+      - jwtCookieAuth: []
+    """
+    if request.method == 'GET':
+        selected_user = User.query.get(uuid)
+        # Ha nincs ilyen felhasználó, akkor errort dobunk visza
+        if not selected_user:
+            return jsonify({"success": False, "message": USER_DOES_NOT_EXISTS_MESSAGE}), 400
+        return jsonify({"success": True, "data": selected_user.to_dict()}), 200
+
+# DELETE # Felhasználó törlése
+@users.route('/<string:uuid>', methods=['DELETE'])
+@token_required(required_role=Roles.Admin.value)
+def delete_user(uuid):
+    """
+    Felhasználó törlése UUID alapján
+    ---
+    tags:
+      - Felhasználók
+    description: Az admin felhasználó törölhet egy adott felhasználót UUID alapján.
+    parameters:
+      - name: uuid
+        in: path
+        required: true
+        description: A felhasználó UUID-ja.
+        schema:
+          type: string
+    responses:
+      200:
+        description: Sikeres törlés.
+        content:
+          application/json:
+            schema:
+              type: object
+              properties:
+                success:
+                  type: boolean
+                  example: true
+                message:
+                  type: string
+                  example: "Felhasználó sikeresen törölve."
+      400:
+        description: Hibás kérés, például nem létező felhasználó.
+        content:
+          application/json:
+            schema:
+              type: object
+              properties:
+                success:
+                  type: boolean
+                  example: false
+                message:
+                  type: string
+                  example: "Nem létezik ilyen felhasználó!"
+    security:
+      - jwtCookieAuth: []
+    """
+    if request.method == 'DELETE':
+        selected_user = User.query.get(uuid)
+        # Ha nincs ilyen felhasználó, akkor errort dobunk visza
+        if not selected_user:
+            return jsonify({"success": False, "message": USER_DOES_NOT_EXISTS_MESSAGE}), 400
+        
+        # Ellenőrzés, hogy van e kapcsolódó tranzakció
+        if selected_user.sent_transactions or selected_user.received_transactions:
+            return jsonify({"success": False, "message": f"{selected_user.name} felhasználót nem lehet addig eltávolítani, ameddig kapcsolódnak hozzá tranzakciók!"}), 200
+        
+        # Felhasználó eltávolítása a táblából
+        db.session.delete(selected_user)
+        
+        # Adatbázisba mentés
+        db.session.commit()
+
+        return jsonify({"success": True, "message": f"{selected_user.name} felhasználó sikeresen törölve."}), 200
+
+
+# /api/users/{uuid}/balance 
+# GET # Felhasználó egyenlegének lekérdezése
+@users.route('/<string:uuid>/balance', methods=['GET'])
+@token_required(required_role=Roles.Admin.value)
+def get_user_balance(uuid):
+    """
+    Felhasználó egyenlegének lekérdezése UUID alapján
+    ---
+    tags:
+      - Felhasználók
+    description: Az admin felhasználó lekérdezheti egy adott felhasználó egyenlegét UUID alapján.
+    parameters:
+      - name: uuid
+        in: path
+        required: true
+        description: A felhasználó UUID-ja.
+        schema:
+          type: string
+    responses:
+      200:
+        description: Sikeres lekérdezés.
+        content:
+          application/json:
+            schema:
+              type: object
+              properties:
+                success:
+                  type: boolean
+                  example: true
+                balance:
+                  type: integer
+                  example: 1000
+      400:
+        description: Hibás kérés, például nem létező felhasználó.
+        content:
+          application/json:
+            schema:
+              type: object
+              properties:
+                success:
+                  type: boolean
+                  example: false
+                message:
+                  type: string
+                  example: "Nem létezik ilyen felhasználó!"
+    security:
+      - jwtCookieAuth: []
+    """
+    if request.method == 'GET':
+        selected_user = User.query.get(uuid)
+        # Ha nincs ilyen felhasználó, akkor errort dobunk visza
+        if not selected_user:
+            return jsonify({"success": False, "message": USER_DOES_NOT_EXISTS_MESSAGE}), 400
+        
+        return jsonify({"success": True, "balance": selected_user.balance}), 200
+
+# PATCH # Felhasználó egyenlegének változtatása (Feltöltés)
+@users.route('/<string:uuid>/balance', methods=['PATCH'])
+@token_required(required_role=Roles.Admin.value)
+def update_user_balance(uuid):
+    """
+    Felhasználó egyenlegének módosítása UUID alapján
+    ---
+    tags:
+      - Felhasználók
+    description: Az admin felhasználó módosíthatja egy adott felhasználó egyenlegét UUID alapján.
+    parameters:
+      - name: uuid
+        in: path
+        required: true
+        description: A felhasználó UUID-ja.
+        schema:
+          type: string
+      - name: amount
+        in: body
+        required: true
+        description: Az új egyenleg összege.
+        schema:
+          type: object
+          properties:
+            amount:
+              type: integer
+              example: 100
+    responses:
+      200:
+        description: Sikeres módosítás.
+        content:
+          application/json:
+            schema:
+              type: object
+              properties:
+                success:
+                  type: boolean
+                  example: true
+                message:
+                  type: string
+                  example: "Felhasználó egyenlege sikeresen módosítva."
+      400:
+        description: Hibás kérés, például nem létező felhasználó vagy érvénytelen összeg.
+        content:
+          application/json:
+            schema:
+              type: object
+              properties:
+                success:
+                  type: boolean
+                  example: false
+                message:
+                  type: string
+                  example: "Nem létezik ilyen felhasználó!"
+    security:
+      - jwtCookieAuth: []
+    """
+    if request.method == 'PATCH':
+        data = request.json
+        
+        is_valid, msg = validate_json_fields(data, ['amount'])
+        if not is_valid:
+            return jsonify({"success": False, 'message': msg}), 400
+        
+        # Összeg kiolvasása
+        amount = int(str(data.get('amount')))
+        
+        # Ellenőrzés, hogy túl nagy összeget töltött e fel valaki
+        if amount < -TRANSACTION_AMOUNT_LIMIT or amount > TRANSACTION_AMOUNT_LIMIT:
+            return jsonify({"success": False, "message": f"Túl nagy vagy túl kis számot adtál meg.\nMaximum {TRANSACTION_AMOUNT_LIMIT} JMF-ot lehet feltölteni!"}), 400
+
+        # Meghatározzuk a bejelentkezett admin felhasználót
+        admin_user = get_current_user()
+        # Lekérdezzük az adatbázisbólk, hogy van e ilyen nevű felhasználó
+        selected_user = User.query.get(uuid)
+        # Ha nincs ilyen felhasználó, akkor errort dobunk visza
+        if (not selected_user) or (not admin_user):
+            return jsonify({"success": False, "message": USER_DOES_NOT_EXISTS_MESSAGE}), 400
+        
+        # Elégtelen jogosultság esetén hibát dobunk
+        if admin_user.role < Roles.Admin.value:
+            return jsonify({"success": False, "message": f"{admin_user.name} felhasználónak nincs jogosultsága ilyen művelethez!"}), 400
+        
+        # Tranzakció felvétele a táblába
+        topup_transaction = Transaction(
+            by_user_uuid = admin_user.uuid,
+            to_user_uuid = uuid,
+            item_id = TOPUP_ITEM_ID,
+            amount = amount,
+            quantity = 1
+        ) 
+
+        # Transakció létrehozása
+        db.session.add(topup_transaction) 
+        # A kiválasztott felhasználó egyenlegének növelése/csökkentése
+        selected_user.balance += amount
+        # Adatbázisba mentés
+        db.session.commit()
+
+        return jsonify({"success": True, "message": f"{amount} JMF sikeresen feltöltve {selected_user.name}-nek!"}), 200
+
+# /api/users/{uuid}/transactions 
+# GET # Felhasználó által elszenvedett tranzakciók listája
+@users.route('/<string:uuid>/transactions', methods=['GET'])
+# @token_required(required_role=Roles.admin.value)
+def get_user_transactions(uuid):
+    """
+    Felhasználó tranzakcióinak lekérdezése UUID alapján
+    ---
+    tags:
+      - Felhasználók
+    description: Az admin felhasználó lekérdezheti egy adott felhasználó tranzakcióit UUID alapján.
+    parameters:
+      - name: uuid
+        in: path
+        required: true
+        description: A felhasználó UUID-ja.
+        schema:
+          type: string
+    responses:
+      200:
+        description: Sikeres lekérdezés.
+        content:
+          application/json:
+            schema:
+              type: object
+              properties:
+                success:
+                  type: boolean
+                  example: true
+                transactions:
+                  type: array
+                  items:
+                    type: object
+                    properties:
+                      id:
+                        type: integer
+                        example: 1
+                      by_user_uuid:
+                        type: string
+                        example: '123e4567-e89b-12d3-a456-426614174000'
+                      to_user_uuid:
+                        type: string
+                        example: '123e4567-e89b-12d3-a456-426614174001'
+                      item_id:
+                        type: integer
+                        example: 1
+                      amount:
+                        type: integer
+                        example: 1000
+                      quantity:
+                        type: integer
+                        example: 1
+      400:
+        description: Hibás kérés, például nem létező felhasználó.
+        content:
+          application/json:
+            schema:
+              type: object
+              properties:
+                success:
+                  type: boolean
+                  example: false
+                message:
+                  type: string
+                  example: "Nem létezik ilyen felhasználó!"
+    security:
+      - jwtCookieAuth: []
+    """
+    if request.method == 'GET':
+        selected_user = User.query.get(uuid)
+        # Ha nincs ilyen felhasználó, akkor errort dobunk visza
+        if not selected_user:
+            return jsonify({"success": False, "message": USER_DOES_NOT_EXISTS_MESSAGE}), 400
+        
+        transactions = Transaction.query.filter((Transaction.by_user_uuid == uuid) | (Transaction.to_user_uuid == uuid)).all()
+        
+        transaction_list = [transaction.to_dict() for transaction in transactions]
+        
+        return jsonify({"success": True, "transactions": transaction_list}), 200
+
+# /api/users/{uuid}/role 
+# GET # Visszaadja a uuid-vel azonosított felhasználó rangját
+@users.route('/<string:uuid>/role', methods=['GET'])
+@token_required(required_role=Roles.Admin.value)
+def get_user_role(uuid):
+    """
+    Felhasználó rangjának lekérdezése UUID alapján
+    ---
+    tags:
+      - Felhasználók
+    description: Az admin felhasználó lekérdezheti egy adott felhasználó rangját UUID alapján.
+    parameters:
+      - name: uuid
+        in: path
+        required: true
+        description: A felhasználó UUID-ja.
+        schema:
+          type: string
+    responses:
+      200:
+        description: Sikeres lekérdezés.
+        content:
+          application/json:
+            schema:
+              type: object
+              properties:
+                success:
+                  type: boolean
+                  example: true
+                role:
+                  type: string
+                  example: 'admin'
+      400:
+        description: Hibás kérés, például nem létező felhasználó.
+        content:
+          application/json:
+            schema:
+              type: object
+              properties:
+                success:
+                  type: boolean
+                  example: false
+                message:
+                  type: string
+                  example: "Nem létezik ilyen felhasználó!"
+    security:
+      - jwtCookieAuth: []
+    """
+    if request.method == 'GET':
+        selected_user = User.query.get(uuid)
+        # Ha nincs ilyen felhasználó, akkor errort dobunk visza
+        if not selected_user:
+            return jsonify({"success": False, "message": USER_DOES_NOT_EXISTS_MESSAGE}), 400
+        
+        return jsonify({"success": True, "role": selected_user.role, "role_name": f"{Roles(selected_user.role)}" }), 200
+
+# /api/users/{uuid}/role
+# PATCH # Megváltoztatja a felhasználó rangját
+@users.route('/<string:uuid>/role', methods=['PATCH'])
+# @token_required(required_role=Roles.admin.value)
+def update_user_role(uuid):
+    """
+    Felhasználó rangjának módosítása UUID alapján
+    ---
+    tags:
+      - Felhasználók
+    description: Az admin felhasználó módosíthatja egy adott felhasználó rangját UUID alapján.
+    parameters:
+      - name: uuid
+        in: path
+        required: true
+        description: A felhasználó UUID-ja.
+        schema:
+          type: string
+      - name: role
+        in: body
+        required: true
+        description: Az új rang.
+        schema:
+          type: object
+          properties:
+            role:
+              type: string
+              example: 'admin'
+    responses:
+      200:
+        description: Sikeres módosítás.
+        content:
+          application/json:
+            schema:
+              type: object
+              properties:
+                success:
+                  type: boolean
+                  example: true
+                message:
+                  type: string
+                  example: "Felhasználó rangja sikeresen módosítva."
+      400:
+        description: Hibás kérés, például nem létező felhasználó vagy érvénytelen rang.
+        content:
+          application/json:
+            schema:
+              type: object
+              properties:
+                success:
+                  type: boolean
+                  example: false
+                message:
+                  type: string
+                  example: "Nem létezik ilyen felhasználó!"
+    security:
+      - jwtCookieAuth: []
+    """
+    if request.method == 'PATCH':
+        data = request.json
+        
+        is_valid, msg = validate_json_fields(data, ['role'], ['role'])
+        if not is_valid:
+            return jsonify({"success": False, 'message': msg}), 400
+        
+        # Rang kiolvasása
+        role = int(str(data.get('role')))
+        
+        # Lekérdezzük az adatbázisbólk, hogy van e ilyen nevű felhasználó
+        selected_user = User.query.get(uuid)
+        # Ha nincs ilyen felhasználó, akkor errort dobunk visza
+        if not selected_user:
+            return jsonify({"success": False, "message": USER_DOES_NOT_EXISTS_MESSAGE}), 400
+        
+        # Elégtelen jogosultság esetén hibát dobunk
+        if role > Roles.Admin.value:
+            return jsonify({"success": False, "message": f"Nem lehet egy sima felhasználónak 'admin'-nál magasabb jogosultsága!"}), 400
+        
+        # Felhasználó rangjának módosítása
+        selected_user.role = role
+        selected_user.credit = calc_credit(role)
+        
+        # Adatbázisba mentés
+        db.session.commit()
+
+        return jsonify({"success": True, "message": f"{selected_user.name} felhasználó mostantól {Roles(selected_user.role)}."}), 200
+
+
+# -----------------------------------------------------
\ No newline at end of file
diff --git a/app/app.py b/app/app.py
index 01492269477f0391dca44b3e5dc850f2e5e04be6..086d9f1d926480168085b8cae62bdb4f0c8b1b34 100644
--- a/app/app.py
+++ b/app/app.py
@@ -95,6 +95,10 @@ app.register_blueprint(user_requests, url_prefix='/') # felhasználói művelete
 app.register_blueprint(item_requests, url_prefix='/') # tétel műveletek endpointjai
 app.register_blueprint(icon_requests, url_prefix='/') # ikon műveletek endpointjai
 
+# === REST API endpointok ===
+from .api.users import users
+app.register_blueprint(users, url_prefix= API_PREFIX + users.url_prefix) # oldalak endpoinjainak hozzáakpcsolása az apphoz
+
 
 # === Adatbázis inizializálása ===
 with app.app_context():  # Kontextus beállítása
diff --git a/app/authsch.py b/app/authsch.py
index a1d36e27f72b2bae3d1fe65b762449dc0a1863ab..f42a20078243e095cf0ded7880df4cf6dd232575 100644
--- a/app/authsch.py
+++ b/app/authsch.py
@@ -60,7 +60,7 @@ def login():
             test_user = User(
                 uuid=TEST_USER_UUID,
                 name='Teszt Elek',
-                role=Roles.admin.value,
+                role=Roles.Admin.value,
             )
             db.session.add(test_user) # Felhasználó hozzáadása az adatbázishoz
             db.session.commit() # Adatbázisba comittolás (Mentés)
@@ -163,15 +163,15 @@ def callback():
     if not user:
         # login_user(user, remember=True)
 
-        noAdminYet = User.query.filter_by(role=Roles.admin.value).count() == 0
-        roleValue = Roles.admin.value if noAdminYet else Roles.user.value,
+        noAdminYet = User.query.filter_by(role=Roles.Admin.value).count() == 0
+        roleValue = Roles.Admin.value if noAdminYet else Roles.User.value,
         # Új felhasználó felvétele az adatbázisba
         user = User(
             name=session['user']['name'],
             uuid=session['user']['uuid'],
             # Az első felhasználó aki regisztrál admin lesz
             role=roleValue,
-            credit= ADMIN_CREDIT if roleValue == Roles.admin.value else USER_CREDIT
+            credit= ADMIN_CREDIT if roleValue == Roles.Admin.value else USER_CREDIT
         )
         db.session.add(user) # Felhasználó hozzáadása az adatbázishoz
         db.session.commit() # Adatbázisba comittolás (Mentés)
diff --git a/app/config.py b/app/config.py
index 03b71d1a1b9f481f267ea303d5f0f0ef7397d279..fca56faecb54e5be89c5b190032fb04421a61031 100644
--- a/app/config.py
+++ b/app/config.py
@@ -7,13 +7,19 @@ load_dotenv(dotenv_path="../.env")
 
 # Rangok
 class Roles(Enum):
-    user = 0
-    bartender = 1
-    admin = 2
-    bot = 3
+    User = 0
+    Bartender = 1
+    Admin = 2
+    Bot = 3
+
+    def __str__(self):
+        return self.name
+    def __int__(self):
+        return self.value
     
 
 # Alap konstansok
+API_PREFIX = '/api/v1'
 DEBUG_MODE = os.getenv('DEBUG_MODE', 'False')
 BYPASS_AUTH_SCH = os.getenv('BYPASS_AUTH_SCH', 'False')
 RELEASE_VERSION = os.getenv('RELEASE_VERSION', 'NOT_FOUND')
@@ -31,7 +37,7 @@ NON_DISPLAY_BELLOW_ID = 0
 # Becskassza dummy Felhasználó
 BOT_USER_UUID = 'B3C5K4SS24-B0T-M452T3R'
 BOT_USER_NAME = 'BecskasszaBot'
-BOT_USER_ROLE = Roles.bot.value
+BOT_USER_ROLE = Roles.Bot.value
 
 # Pénz Feltöltés ikon és a tranzakció hozzárendeléshez tartozó termék
 TOPUP_ITEM_ID = 0
diff --git a/app/icon_requests.py b/app/icon_requests.py
index f3aa3a4c6f142eb6a07e3317348e487c06e77e58..f09339db06955a2bf57bb9015c7fbb94c9de903a 100644
--- a/app/icon_requests.py
+++ b/app/icon_requests.py
@@ -26,7 +26,7 @@ def allowed_file(filename):
 
 # Ikon feltöltés POST kéréssel
 @icon_requests.route('/upload_icon', methods=['POST'])
-@token_required(required_role=Roles.admin.value)
+@token_required(required_role=Roles.Admin.value)
 def upload_icon():
     """
     Ikon feltöltése
@@ -115,7 +115,7 @@ def upload_icon():
 
 # Sok Ikon feltöltés POST kéréssel
 @icon_requests.route('/upload_icon_files', methods=['POST'])
-@token_required(required_role=Roles.admin.value)
+@token_required(required_role=Roles.Admin.value)
 def upload_icon_files():
     """
     Több ikon feltöltése
@@ -217,7 +217,7 @@ def upload_icon_files():
 
 # Ikon módosítás POST kéréssel
 @icon_requests.route('/modify_icon', methods=['PUT'])
-@token_required(required_role=Roles.admin.value)
+@token_required(required_role=Roles.Admin.value)
 def modify_icon():
     """
     Ikon módosítása
@@ -323,7 +323,7 @@ def modify_icon():
 
 # Ikon törlése POST kéréssel
 @icon_requests.route('/delete_icon', methods=['DELETE'])
-@token_required(required_role=Roles.admin.value)
+@token_required(required_role=Roles.Admin.value)
 def delete_icon():
     """
     Ikon törlése
@@ -408,7 +408,7 @@ def delete_icon():
 
 
 @icon_requests.route('/icons_export', methods=['GET'])
-@token_required(required_role=Roles.admin.value)
+@token_required(required_role=Roles.Admin.value)
 def icons_export():
     """
     Ikonok exportálása
diff --git a/app/item_requests.py b/app/item_requests.py
index 2dc642b64d47d0bd3c58a85ea7f458b2bb713a6a..b1dbcbd31c5f7598119953fffbad1f77dfd04e37 100644
--- a/app/item_requests.py
+++ b/app/item_requests.py
@@ -22,7 +22,7 @@ item_requests = Blueprint('itemRequests', __name__)
 
 # Termék hozzáadás POST kéréssel
 @item_requests.route('/add_item', methods=['POST'])
-@token_required(required_role=Roles.admin.value)
+@token_required(required_role=Roles.Admin.value)
 def add_item():
     """
     Termék hozzáadása
@@ -101,7 +101,7 @@ def add_item():
 
 # Termék módosítása POST kéréssel
 @item_requests.route('/modify_item', methods=['PUT'])
-@token_required(required_role=Roles.admin.value)
+@token_required(required_role=Roles.Admin.value)
 def modify_item():
     """
     Termék módosítása
@@ -182,7 +182,7 @@ def modify_item():
 
 # Termék archiválása POST kéréssel
 @item_requests.route('/archive_item', methods=['PUT'])
-@token_required(required_role=Roles.admin.value)
+@token_required(required_role=Roles.Admin.value)
 def archive_item():
     """
     Termék archiválása
@@ -237,7 +237,7 @@ def archive_item():
 
 # Termék dearchiválása POST kéréssel
 @item_requests.route('/dearchive_item', methods=['PUT'])
-@token_required(required_role=Roles.admin.value)
+@token_required(required_role=Roles.Admin.value)
 def dearchive_item():
     """
     Termék dearchiválása
@@ -382,7 +382,7 @@ def make_transaction():
 
 # Termék visszavonása POST kéréssel
 @item_requests.route('/undo_transaction', methods=['DELETE'])
-@token_required(required_role=Roles.admin.value)
+@token_required(required_role=Roles.Admin.value)
 def undo_transaction():
     """
     Tranzakció visszavonása
@@ -470,7 +470,7 @@ def undo_transaction():
 
 # Termék készletének feltöltése/módosítása POST kéréssel
 @item_requests.route('/stockup', methods=['PUT'])
-@token_required(required_role=Roles.admin.value)
+@token_required(required_role=Roles.Admin.value)
 def stockup():
     """
     Termék készletének módosítása
@@ -533,7 +533,7 @@ def stockup():
 
 # Pultos megrendelés endpoint POST kéréssel
 @item_requests.route('/make_order', methods=['POST'])
-@token_required(required_role=Roles.bartender.value)
+@token_required(required_role=Roles.Bartender.value)
 def make_order():
     """
     Megrendelés készítése
@@ -612,7 +612,7 @@ def make_order():
             if (not selected_user) or (not bartender_user):
                 return jsonify({"success": False, "message": "Nem létezik ilyen felhasználó"}), 400
             # Elégtelen jogosultság esetén hibát dobunk
-            if bartender_user.role < Roles.bartender.value:
+            if bartender_user.role < Roles.Bartender.value:
                 return jsonify({"success": False, "message": f"{bartender_user.name} felhasználónak nincs jogosultsága ilyen művelethez!"}), 400
                 
 
@@ -646,7 +646,7 @@ def make_order():
 
 
 @item_requests.route('/items_export', methods=['GET'])
-@token_required(required_role=Roles.admin.value)
+@token_required(required_role=Roles.Admin.value)
 def items_export():
     """
     Termékek exportálása CSV-be
diff --git a/app/models.py b/app/models.py
index 0b52b84cf665fa60aa1298a9ff4208fe7fbb05ea..4cefce3a86cd5f885c1491cfe5d88f878b31fcf8 100644
--- a/app/models.py
+++ b/app/models.py
@@ -62,7 +62,7 @@ class User(db.Model, UserMixin):
     name = db.Column(db.String(150), nullable=False) # AuthSCH-ról kapott felhasználó teljes neve
     balance = db.Column(db.Integer, default=0) # Felhassználó egyenlege
     credit = db.Column(db.Integer, default=USER_CREDIT) # Felhasználó krdeit kerete
-    role = db.Column(db.Integer, default=Roles.user.value) # Felhasználó rangja (0: Userm, 1: Pultos, 2: Admin)
+    role = db.Column(db.Integer, default=Roles.User.value) # Felhasználó rangja (0: Userm, 1: Pultos, 2: Admin)
     # Kapcsolt mezők
     sent_transactions = db.relationship('Transaction', foreign_keys='Transaction.by_user_uuid', back_populates="by_user")
     received_transactions = db.relationship('Transaction', foreign_keys='Transaction.to_user_uuid', back_populates="to_user")
diff --git a/app/routes.py b/app/routes.py
index ab3459dac56b29bce2d7901f5ae8f3a9b67bae52..03c1f1045e94738011d3380f77d8261ceec2e7dd 100644
--- a/app/routes.py
+++ b/app/routes.py
@@ -91,7 +91,7 @@ def history(uuid):
         return redirect(url_for('routes.error', message='A keresett felhasználó nem található.'))
 
     # Ha egy sima felhasználó más költéseit akarná megnézni, akkor ne tudja
-    if not current_user.role >= Roles.admin.value and selected_user != current_user:
+    if not current_user.role >= Roles.Admin.value and selected_user != current_user:
         return redirect(url_for('routes.history'))
 
     
@@ -112,7 +112,7 @@ def history(uuid):
 
 # Kilistázza a felhasználókat [ADMIN ONLY]
 @routing.route('/admin')
-@token_required(required_role=Roles.admin.value)
+@token_required(required_role=Roles.Admin.value)
 def admin():
     """
     Adminisztrációs oldal, ahol a felhasználók és tranzakciók kezelhetőek
@@ -179,7 +179,7 @@ def admin():
 
 # Kilistázza a felhasználókat [ADMIN ONLY]
 @routing.route('/users', methods=['GET'])
-@token_required(required_role=Roles.admin.value)
+@token_required(required_role=Roles.Admin.value)
 def users():
     """
     Felhasználók listázása
@@ -225,7 +225,7 @@ def users():
 
 # Kilistázza a tételeket, ahol lehet azokat módosítani, hozzáadni, törölni [ADMIN ONLY]
 @routing.route('/items', methods=['GET'])
-@token_required(required_role=Roles.admin.value)
+@token_required(required_role=Roles.Admin.value)
 def items():
     """
     Tételek kezelése
@@ -273,7 +273,7 @@ def items():
     
 # Kilistázza az ikonokat [ADMIN ONLY]
 @routing.route('/icons', methods=['GET'])
-@token_required(required_role=Roles.admin.value)
+@token_required(required_role=Roles.Admin.value)
 def icon():
     """
     Ikonok listázása
@@ -318,7 +318,7 @@ def icon():
 
 # Pult: Pultos kioszthat tételeket [BARTENDER ÉS ADMIN ONLY]
 @routing.route('/bar', methods=['GET'])
-@token_required(required_role=Roles.bartender.value)
+@token_required(required_role=Roles.Bartender.value)
 def bar():
     """
     Pultkezelés
@@ -364,7 +364,7 @@ def bar():
 
 # Az összes tranzakciót kilistázza [ADMIN ONLY]
 @routing.route('/transactions', methods=['GET'])
-@token_required(required_role=Roles.admin.value)
+@token_required(required_role=Roles.Admin.value)
 def transactions():
     """
     Tranzakciók listázása
@@ -452,7 +452,7 @@ def transactions():
 
 
 @routing.route('/transactions_export', methods=['GET'])
-@token_required(required_role=Roles.admin.value)
+@token_required(required_role=Roles.Admin.value)
 def transactions_export():
     """
     Tranzakciók exportálása CSV fájlban
diff --git a/app/token.py b/app/token.py
index e2ae1340c01c3a3a8a60d609394314e8c6c07b5d..eac90e26eb3458e498601a226c92bbd9bc6251c1 100644
--- a/app/token.py
+++ b/app/token.py
@@ -10,7 +10,7 @@ from jwt import ExpiredSignatureError
 from app.config import BYPASS_AUTH_SCH, DEBUG_MODE, Roles
 from app.models import User
 
-def token_required(required_role=Roles.user.value):
+def token_required(required_role=Roles.User.value):
     def decorator(func):
         @wraps(func)
         def wrapper(*args, **kwargs):
diff --git a/app/user_requests.py b/app/user_requests.py
index 6307ab491ccd8684a952281cc60acd628ad65e7f..2eae1cf361afa76efefc89491f3fdfbf467f0344 100644
--- a/app/user_requests.py
+++ b/app/user_requests.py
@@ -14,7 +14,7 @@ USER_DOES_NOT_EXISTS_MESSAGE = 'Nem létezik ilyen felhasználó!'
 # Endpoint handeler blueprint létrehozása
 user_requests = Blueprint('userRequests', __name__)
 
-calc_credit = lambda role: ADMIN_CREDIT if role == Roles.admin.value else USER_CREDIT
+calc_credit = lambda role: ADMIN_CREDIT if role == Roles.Admin.value else USER_CREDIT
 # ------------- REST API-sítás ------------------------
 
 
@@ -34,7 +34,7 @@ def topup_to_user(selected_user_uuid, amount):
             return jsonify({"success": False, "message": USER_DOES_NOT_EXISTS_MESSAGE}), 400
         
         # Elégtelen jogosultság esetén hibát dobunk
-        if admin_user.role != Roles.admin.value:
+        if admin_user.role != Roles.Admin.value:
             return jsonify({"success": False, "message": f"{admin_user.name} felhasználónak nincs jogosultsága ilyen művelethez!"}), 400
         
         # Tranzakció felvétele a táblába
@@ -55,7 +55,7 @@ def topup_to_user(selected_user_uuid, amount):
 
 # Felhasználó egyenleg feltöltésére irányuló POST kérés
 @user_requests.route('/topup', methods=['PUT', 'OPTIONS'])
-@token_required(required_role=Roles.admin.value)
+@token_required(required_role=Roles.Admin.value)
 def topup():
     """    
     Felhasználó egyenleg feltöltése
@@ -131,7 +131,7 @@ def topup():
     
 # Felhasználónak ADMIN jog adás POST kéréssel
 @user_requests.route('/grant_admin', methods=['PUT'])
-@token_required(required_role=Roles.admin.value)
+@token_required(required_role=Roles.Admin.value)
 def grant_admin():
     """
         Admin jog adása egy felhasználónak
@@ -195,7 +195,7 @@ def grant_admin():
         if not selected_user:
             return jsonify({"success": False, "message": USER_DOES_NOT_EXISTS_MESSAGE}), 400
         
-        selected_user.role = Roles.admin.value
+        selected_user.role = Roles.Admin.value
         selected_user.credit = calc_credit(selected_user.role)
         # Adatbázisba mentés
         db.session.commit()
@@ -204,7 +204,7 @@ def grant_admin():
 
 # Felhasználótól ADMIN jog megvonás POST kéréssel
 @user_requests.route('/revoke_admin', methods=['PUT'])
-@token_required(required_role=Roles.admin.value)
+@token_required(required_role=Roles.Admin.value)
 def revoke_admin():
     """
         Admin jog megvonása egy felhasználótól
@@ -270,7 +270,7 @@ def revoke_admin():
         if not selected_user:
             return jsonify({"success": False, "message": USER_DOES_NOT_EXISTS_MESSAGE}), 400
         
-        selected_user.role = Roles.user.value
+        selected_user.role = Roles.User.value
         selected_user.credit = calc_credit(selected_user.role)
         # Adatbázisba mentés
         db.session.commit()
@@ -279,7 +279,7 @@ def revoke_admin():
 
 # Felhasználónak PULTOS jog adás POST kéréssel
 @user_requests.route('/grant_bartender', methods=['PUT'])
-@token_required(required_role=Roles.admin.value)
+@token_required(required_role=Roles.Admin.value)
 def grant_bartender():
     """
     Pultos jog adása egy felhasználónak.
@@ -339,7 +339,7 @@ def grant_bartender():
         if not selected_user:
             return jsonify({"success": False, "message": USER_DOES_NOT_EXISTS_MESSAGE}), 400
         
-        selected_user.role = Roles.bartender.value
+        selected_user.role = Roles.Bartender.value
         # Adatbázisba mentés
         db.session.commit()
         return jsonify({"success": True, "message": f"{selected_user.name} felhasználó mostantól Pultos!"}), 200
@@ -347,7 +347,7 @@ def grant_bartender():
 
 # Felhasnzálótól PULTOS jog megvonás POST kéréssel
 @user_requests.route('/revoke_bartender',  methods=['PUT'])
-@token_required(required_role=Roles.admin.value)
+@token_required(required_role=Roles.Admin.value)
 def revoke_bartender():
     """
     Pultos jog megvonása egy felhasználótól.
@@ -408,7 +408,7 @@ def revoke_bartender():
         if not selected_user:
             return jsonify({"success": False, "message": USER_DOES_NOT_EXISTS_MESSAGE}), 400
         
-        selected_user.role = Roles.user.value
+        selected_user.role = Roles.User.value
         # Adatbázisba mentés
         db.session.commit()
         return jsonify({"success": True, "message": f"{selected_user.name} felhasználó mostantól nem Pultos!"}), 200
@@ -416,7 +416,7 @@ def revoke_bartender():
 
 # Felhasználó törlése az adatbázisból
 @user_requests.route('/remove_user',  methods=['DELETE'])
-@token_required(required_role=Roles.admin.value)
+@token_required(required_role=Roles.Admin.value)
 def remove_user():
     """
         Felhasználó törlése
@@ -493,7 +493,7 @@ def remove_user():
 
 
 @user_requests.route('/users_export', methods=['GET'])
-@token_required(required_role=Roles.admin.value)
+@token_required(required_role=Roles.Admin.value)
 def users_export():
     """
         Felhasználók exportálása
@@ -553,7 +553,7 @@ def users_export():
         return response
 
 @user_requests.route('/users_import', methods=['POST'])
-@token_required(required_role=Roles.admin.value)
+@token_required(required_role=Roles.Admin.value)
 def users_import():
     """
         Felhasználók importálása JSON fájlból
@@ -629,7 +629,7 @@ def users_import():
                         uuid=user_data['uuid'],
                         name=user_data['name'],
                         balance=0,
-                        role=user_data['role'] if 'role' in user_data else Roles.user.value
+                        role=user_data['role'] if 'role' in user_data else Roles.User.value
                     )
                     db.session.add(user)
                     db.session.commit()  # Adatok mentése az adatbázisba