diff --git a/docker-compose.app.yml b/docker-compose.app.yml
index 39c1224..ee9c800 100644
--- a/docker-compose.app.yml
+++ b/docker-compose.app.yml
@@ -3,12 +3,12 @@
 version: "3.8"
 
 services:
-  fems-admin:
+  plm-admin:
     build:
-      context: ./fems-admin
+      context: ./plm-admin
       dockerfile: Dockerfile
       target: production
-    container_name: fems-admin
+    container_name: plm-admin
     restart: unless-stopped
     env_file:
       - .env.${NODE_ENV:-development}
@@ -17,7 +17,7 @@ services:
     environment:
       - NODE_ENV=${NODE_ENV:-development}
     volumes:
-      - ./fems-admin:/app
+      - ./plm-admin:/app
       - /app/node_modules
     logging:
       driver: "json-file"
@@ -30,14 +30,14 @@ services:
       timeout: 10s
       retries: 3
     depends_on:
-      - fems-api
+      - plm-api
 
-  fems-app:
+  plm-app:
     build:
-      context: ./fems-app
+      context: ./plm-app
       dockerfile: Dockerfile
       target: production
-    container_name: fems-app
+    container_name: plm-app
     restart: unless-stopped
     env_file:
       - .env.${NODE_ENV:-development}
@@ -46,17 +46,17 @@ services:
     environment:
       - NODE_ENV=${NODE_ENV:-development}
     volumes:
-      - ./fems-app:/app
+      - ./plm-app:/app
       - /app/node_modules
     depends_on:
-      - fems-api
+      - plm-api
 
-  fems-api:
+  plm-api:
     build:
-      context: ./fems-api
+      context: ./plm-api
       dockerfile: Dockerfile
       target: production
-    container_name: fems-api
+    container_name: plm-api
     restart: unless-stopped
     env_file:
       - .env.${NODE_ENV:-development}
@@ -65,7 +65,7 @@ services:
     environment:
       - NODE_ENV=${NODE_ENV:-development}
     volumes:
-      - ./fems-api:/app
+      - ./plm-api:/app
       - /app/node_modules
     healthcheck:
       test: ["CMD", "curl", "-f", "http://localhost:3001/health"]
@@ -73,32 +73,32 @@ services:
       timeout: 10s
       retries: 3
 
-  fems-realtime-api:
-    build:
-      context: ./fems-realtime-api
-      dockerfile: Dockerfile
-      target: production
-    container_name: fems-realtime-api
-    restart: unless-stopped
-    env_file:
-      - .env.${NODE_ENV:-development}
-    ports:
-      - "${REALTIME_API_PORT}:3004"
-    environment:
-      - NODE_ENV=${NODE_ENV:-development}
-    volumes:
-      - ./fems-realtime-api:/app
-      - /app/node_modules
-    depends_on:
-      - fems-api
-    healthcheck:
-      test: ["CMD", "curl", "-f", "http://localhost:3004/health"]
-      interval: 30s
-      timeout: 10s
-      retries: 3
+#   plm-realtime-api:
+#     build:
+#       context: ./plm-realtime-api
+#       dockerfile: Dockerfile
+#       target: production
+#     container_name: plm-realtime-api
+#     restart: unless-stopped
+#     env_file:
+#       - .env.${NODE_ENV:-development}
+#     ports:
+#       - "${REALTIME_API_PORT}:3004"
+#     environment:
+#       - NODE_ENV=${NODE_ENV:-development}
+#     volumes:
+#       - ./plm-realtime-api:/app
+#       - /app/node_modules
+#     depends_on:
+#       - plm-api
+#     healthcheck:
+#       test: ["CMD", "curl", "-f", "http://localhost:3004/health"]
+#       interval: 30s
+#       timeout: 10s
+#       retries: 3
 
-networks:
-  default:
-    driver: bridge
-  internal:
-    driver: bridge
+# networks:
+#   default:
+#     driver: bridge
+#   internal:
+#     driver: bridge
diff --git a/docker-compose.db.yml b/docker-compose.db.yml
index 75930ff..d09ff0f 100644
--- a/docker-compose.db.yml
+++ b/docker-compose.db.yml
@@ -3,9 +3,9 @@
 version: "3.8"
 
 services:
-  fems-postgres:
+  plm-postgres:
     image: postgres:16
-    container_name: fems-postgres
+    container_name: plm-postgres
     restart: unless-stopped
     env_file:
       - .env.${NODE_ENV:-development}
@@ -22,11 +22,11 @@ services:
       - POSTGRES_INITDB_ARGS=--auth-host=scram-sha-256 --auth-local=scram-sha-256
       - TZ=Asia/Seoul
     volumes:
-      - fems_postgres:/var/lib/postgresql/data
+      - plm_postgres:/var/lib/postgresql/data
       - ./backups/postgres:/backups
-      - ./fems-postgres/init-scripts:/docker-entrypoint-initdb.d
-      - ./fems-postgres/postgresql.conf:/etc/postgresql/postgresql.conf:ro
-      - ./fems-postgres/pg_hba.conf:/etc/postgresql/pg_hba.conf:ro
+      - ./plm-postgres/init-scripts:/docker-entrypoint-initdb.d
+      - ./plm-postgres/postgresql.conf:/etc/postgresql/postgresql.conf:ro
+      - ./plm-postgres/pg_hba.conf:/etc/postgresql/pg_hba.conf:ro
     command:
       - "postgres"
       - "-c"
@@ -37,112 +37,112 @@ services:
       timeout: 5s
       retries: 5
 
-  fems-timescaledb:
-    build:
-      context: ./fems-timescaledb
-      dockerfile: Dockerfile
-    container_name: fems-timescaledb
-    restart: unless-stopped
-    env_file:
-      - .env.${NODE_ENV:-development}
-    ports:
-      - "${TIMESCALEDB_PORT}:5433"
-    environment:
-      - NODE_ENV=${NODE_ENV:-development}
-      - LANG=en_US.utf8
-      - LANGUAGE=en_US.utf8
-      - LC_ALL=en_US.utf8
-      - TZ=Asia/Seoul
-      - POSTGRES_HOST_AUTH_METHOD=scram-sha-256
-      - POSTGRES_INITDB_ARGS=--auth-host=scram-sha-256 --auth-local=scram-sha-256
-      - POSTGRES_DB=${TIMESCALEDB_DB}
-      - POSTGRES_USER=${TIMESCALEDB_USER}
-      - POSTGRES_PASSWORD=${TIMESCALEDB_PASSWORD}
-      # - TIMESCALEDB_DB=${TIMESCALEDB_DB}
-      # - TIMESCALEDB_USER=${TIMESCALEDB_USER}
-      # - TIMESCALEDB_PASSWORD=${TIMESCALEDB_PASSWORD}
-    volumes:
-      - fems_timescaledb:/var/lib/postgresql/data
-      - ./fems-timescaledb/postgresql.conf:/etc/postgresql/postgresql.conf:ro
-      - ./fems-timescaledb/pg_hba.conf:/etc/postgresql/pg_hba.conf:ro
-      - ./fems-timescaledb/init-scripts:/docker-entrypoint-initdb.d/:ro
-    command: ["postgres", "-c", "config_file=/etc/postgresql/postgresql.conf"]
-    healthcheck:
-      test: ["CMD-SHELL", "pg_isready -U postgres"]
-      interval: 10s
-      timeout: 5s
-      retries: 5
+#   plm-timescaledb:
+#     build:
+#       context: ./plm-timescaledb
+#       dockerfile: Dockerfile
+#     container_name: plm-timescaledb
+#     restart: unless-stopped
+#     env_file:
+#       - .env.${NODE_ENV:-development}
+#     ports:
+#       - "${TIMESCALEDB_PORT}:5433"
+#     environment:
+#       - NODE_ENV=${NODE_ENV:-development}
+#       - LANG=en_US.utf8
+#       - LANGUAGE=en_US.utf8
+#       - LC_ALL=en_US.utf8
+#       - TZ=Asia/Seoul
+#       - POSTGRES_HOST_AUTH_METHOD=scram-sha-256
+#       - POSTGRES_INITDB_ARGS=--auth-host=scram-sha-256 --auth-local=scram-sha-256
+#       - POSTGRES_DB=${TIMESCALEDB_DB}
+#       - POSTGRES_USER=${TIMESCALEDB_USER}
+#       - POSTGRES_PASSWORD=${TIMESCALEDB_PASSWORD}
+#       # - TIMESCALEDB_DB=${TIMESCALEDB_DB}
+#       # - TIMESCALEDB_USER=${TIMESCALEDB_USER}
+#       # - TIMESCALEDB_PASSWORD=${TIMESCALEDB_PASSWORD}
+#     volumes:
+#       - plm_timescaledb:/var/lib/postgresql/data
+#       - ./plm-timescaledb/postgresql.conf:/etc/postgresql/postgresql.conf:ro
+#       - ./plm-timescaledb/pg_hba.conf:/etc/postgresql/pg_hba.conf:ro
+#       - ./plm-timescaledb/init-scripts:/docker-entrypoint-initdb.d/:ro
+#     command: ["postgres", "-c", "config_file=/etc/postgresql/postgresql.conf"]
+#     healthcheck:
+#       test: ["CMD-SHELL", "pg_isready -U postgres"]
+#       interval: 10s
+#       timeout: 5s
+#       retries: 5
 
-  fems-redis:
-    image: redis:alpine
-    container_name: fems-redis
-    restart: unless-stopped
-    env_file:
-      - .env.${NODE_ENV:-development}
-    # ports:
-    #   - "${REDIS_PORT}:6379"
-    command: ["redis-server", "--requirepass", "${REDIS_PASSWORD}"]
-    volumes:
-      - fems_redis:/data
-      - ./backups/redis:/backups
-    environment:
-      - NODE_ENV=${NODE_ENV:-development}
-      - REDIS_PASSWORD=${REDIS_PASSWORD}
-    depends_on:
-      - fems-postgres
-      - fems-timescaledb
-    healthcheck:
-      test: ["CMD", "redis-cli", "-a", "${REDIS_PASSWORD}", "ping"]
-      interval: 10s
-      timeout: 5s
-      retries: 3
+#   plm-redis:
+#     image: redis:alpine
+#     container_name: plm-redis
+#     restart: unless-stopped
+#     env_file:
+#       - .env.${NODE_ENV:-development}
+#     # ports:
+#     #   - "${REDIS_PORT}:6379"
+#     command: ["redis-server", "--requirepass", "${REDIS_PASSWORD}"]
+#     volumes:
+#       - plm_redis:/data
+#       - ./backups/redis:/backups
+#     environment:
+#       - NODE_ENV=${NODE_ENV:-development}
+#       - REDIS_PASSWORD=${REDIS_PASSWORD}
+#     depends_on:
+#       - plm-postgres
+#       - plm-timescaledb
+#     healthcheck:
+#       test: ["CMD", "redis-cli", "-a", "${REDIS_PASSWORD}", "ping"]
+#       interval: 10s
+#       timeout: 5s
+#       retries: 3
 
-  fems-mqtt:
-    build:
-      context: ./fems-mqtt
-      dockerfile: Dockerfile
-      args:
-        - MQTT_USERNAME=${MQTT_USERNAME}
-        - MQTT_PASSWORD=${MQTT_PASSWORD}
-        - NODE_RED_USERNAME=${NODE_RED_USERNAME}
-        - NODE_RED_PASSWORD=${NODE_RED_PASSWORD}
-    container_name: fems-mqtt
-    restart: unless-stopped
-    env_file:
-      - .env.${NODE_ENV:-development}
-    ports:
-      - "${MQTT_PORT}:1883"
-      - "${MQTT_WSS_PORT}:8883"
-    environment:
-      - MQTT_USERNAME=${MQTT_USERNAME}
-      - MQTT_PASSWORD=${MQTT_PASSWORD}
-      - NODE_RED_USERNAME=${NODE_RED_USERNAME}
-      - NODE_RED_PASSWORD=${NODE_RED_PASSWORD}
-    volumes:
-      - ./fems-mqtt/data:/mosquitto/data
-      - ./fems-mqtt/config:/mosquitto/config
-      - ./fems-mqtt/log:/mosquitto/log
-      - ./fems-mqtt/certs:/mosquitto/certs
-    # entrypoint: ["/docker-entrypoint.sh"]
-    # command: ["/usr/sbin/mosquitto", "-c", "/mosquitto/config/mosquitto.conf"]
-    user: mosquitto
-    healthcheck:
-      test:
-        [
-          "CMD-SHELL",
-          "mosquitto_sub -h localhost -t '$$SYS/#' -C 1 -u ${MQTT_USERNAME} -P ${MQTT_PASSWORD} || exit 1",
-        ]
-      interval: 30s
-      timeout: 10s
-      retries: 3
-    depends_on:
-      - fems-postgres
-      - fems-timescaledb
+#   plm-mqtt:
+#     build:
+#       context: ./plm-mqtt
+#       dockerfile: Dockerfile
+#       args:
+#         - MQTT_USERNAME=${MQTT_USERNAME}
+#         - MQTT_PASSWORD=${MQTT_PASSWORD}
+#         - NODE_RED_USERNAME=${NODE_RED_USERNAME}
+#         - NODE_RED_PASSWORD=${NODE_RED_PASSWORD}
+#     container_name: plm-mqtt
+#     restart: unless-stopped
+#     env_file:
+#       - .env.${NODE_ENV:-development}
+#     ports:
+#       - "${MQTT_PORT}:1883"
+#       - "${MQTT_WSS_PORT}:8883"
+#     environment:
+#       - MQTT_USERNAME=${MQTT_USERNAME}
+#       - MQTT_PASSWORD=${MQTT_PASSWORD}
+#       - NODE_RED_USERNAME=${NODE_RED_USERNAME}
+#       - NODE_RED_PASSWORD=${NODE_RED_PASSWORD}
+#     volumes:
+#       - ./plm-mqtt/data:/mosquitto/data
+#       - ./plm-mqtt/config:/mosquitto/config
+#       - ./plm-mqtt/log:/mosquitto/log
+#       - ./plm-mqtt/certs:/mosquitto/certs
+#     # entrypoint: ["/docker-entrypoint.sh"]
+#     # command: ["/usr/sbin/mosquitto", "-c", "/mosquitto/config/mosquitto.conf"]
+#     user: mosquitto
+#     healthcheck:
+#       test:
+#         [
+#           "CMD-SHELL",
+#           "mosquitto_sub -h localhost -t '$$SYS/#' -C 1 -u ${MQTT_USERNAME} -P ${MQTT_PASSWORD} || exit 1",
+#         ]
+#       interval: 30s
+#       timeout: 10s
+#       retries: 3
+#     depends_on:
+#       - plm-postgres
+#       - plm-timescaledb
 
 volumes:
-  fems_postgres:
-  fems_redis:
-  fems_timescaledb:
+  plm_postgres:
+  # plm_redis:
+  # plm_timescaledb:
 
 networks:
   default:
diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml
index fd5dd8e..f8de28d 100644
--- a/docker-compose.dev.yml
+++ b/docker-compose.dev.yml
@@ -3,7 +3,7 @@
 version: "3.8"
 
 services:
-  fems-admin:
+  plm-admin:
     build:
       target: development
     env_file:
@@ -14,11 +14,11 @@ services:
       - WATCHPACK_POLLING=true
     # 개발 환경에서는 healthcheck 비활성화
     volumes:
-      - ../../wacefems/uploads:/app/uploads
+      - ../../waceplm/uploads:/app/uploads
     # healthcheck:
     #   disable: true
 
-  fems-app:
+  plm-app:
     build:
       target: development
     env_file:
@@ -28,9 +28,9 @@ services:
       - NEXT_WEBPACK_USEPOLLING=1
       - WATCHPACK_POLLING=true
     volumes:
-      - ../../wacefems/uploads:/app/uploads
+      - ../../waceplm/uploads:/app/uploads
 
-  fems-api:
+  plm-api:
     build:
       target: development
     env_file:
@@ -38,20 +38,20 @@ services:
     environment:
       - NODE_ENV=${NODE_ENV:-development}
     volumes:
-      - ../../wacefems/uploads:/app/uploads
+      - ../../waceplm/uploads:/app/uploads
 
-  fems-realtime-api:
-    build:
-      target: development
-    env_file:
-      - .env.${NODE_ENV:-development}
-    environment:
-      - NODE_ENV=${NODE_ENV:-development}
-    volumes:
-      - ../../wacefems/uploads:/app/uploads
+#   plm-realtime-api:
+#     build:
+#       target: development
+#     env_file:
+#       - .env.${NODE_ENV:-development}
+#     environment:
+#       - NODE_ENV=${NODE_ENV:-development}
+#     volumes:
+#       - ../../waceplm/uploads:/app/uploads
 
-networks:
-  default:
-    driver: bridge
-  internal:
-    driver: bridge
+# networks:
+#   default:
+#     driver: bridge
+#   internal:
+#     driver: bridge
diff --git a/fems-realtime-api/logs/error/.f0712455ac9b956018e7ebc08dc33061795e3736-audit.json b/fems-realtime-api/logs/error/.f0712455ac9b956018e7ebc08dc33061795e3736-audit.json
deleted file mode 100644
index efa988b..0000000
--- a/fems-realtime-api/logs/error/.f0712455ac9b956018e7ebc08dc33061795e3736-audit.json
+++ /dev/null
@@ -1,40 +0,0 @@
-{
-    "keep": {
-        "days": true,
-        "amount": 14
-    },
-    "auditLog": "/app/logs/error/.f0712455ac9b956018e7ebc08dc33061795e3736-audit.json",
-    "files": [
-        {
-            "date": 1733746784906,
-            "name": "/app/logs/error/error-2024-12-09.log",
-            "hash": "bc01734a47c5ab9a0c8c5579b91d673c834b9da80bf2bec63403efb28be39c35"
-        },
-        {
-            "date": 1733793585406,
-            "name": "/app/logs/error/error-2024-12-10.log",
-            "hash": "bb9f2826cd5ea0ca46e9f22cc120339198f29e37cf5d03b8f53b36a37ac45b22"
-        },
-        {
-            "date": 1733879841776,
-            "name": "/app/logs/error/error-2024-12-11.log",
-            "hash": "39195d6169da96b7fe430ade1b2115a82fb0a51334153ceb54541d28d6f739ee"
-        },
-        {
-            "date": 1733996836759,
-            "name": "/app/logs/error/error-2024-12-12.log",
-            "hash": "4fc1efc550131d80937035aba62464a360b76f1c7050cdc48b28858bf254152e"
-        },
-        {
-            "date": 1734056145579,
-            "name": "/app/logs/error/error-2024-12-13.log",
-            "hash": "cc5bbf7c932c3d774eca30710f1f6e4c27bd563a9b7f09bd7082373375712a72"
-        },
-        {
-            "date": 1734271478004,
-            "name": "/app/logs/error/error-2024-12-15.log",
-            "hash": "cabb58ab38fec604b311d3aaf8fc4d0f0c6f592f473f0900ee851cc7dd523459"
-        }
-    ],
-    "hashType": "sha256"
-}
\ No newline at end of file
diff --git a/fems-realtime-api/logs/info/.17ff23bf9d3be0bd8551fdd86d0d3cca3a97cd90-audit.json b/fems-realtime-api/logs/info/.17ff23bf9d3be0bd8551fdd86d0d3cca3a97cd90-audit.json
deleted file mode 100644
index afbb78f..0000000
--- a/fems-realtime-api/logs/info/.17ff23bf9d3be0bd8551fdd86d0d3cca3a97cd90-audit.json
+++ /dev/null
@@ -1,40 +0,0 @@
-{
-    "keep": {
-        "days": true,
-        "amount": 14
-    },
-    "auditLog": "/app/logs/info/.17ff23bf9d3be0bd8551fdd86d0d3cca3a97cd90-audit.json",
-    "files": [
-        {
-            "date": 1733746784908,
-            "name": "/app/logs/info/info-2024-12-09.log",
-            "hash": "91a97133406f7c8225f6a4c44c7e5b284852ffe413bfba6b024440a56cef6046"
-        },
-        {
-            "date": 1733793585410,
-            "name": "/app/logs/info/info-2024-12-10.log",
-            "hash": "9adf5bcedf67ed51d1e795830fd55f28eafff19169585bf2109a3e8a1eea2ad4"
-        },
-        {
-            "date": 1733879841786,
-            "name": "/app/logs/info/info-2024-12-11.log",
-            "hash": "e966ad92bddef5e4c0517226872d8bab241ca53eec10b0d6c43a1dd46388bfef"
-        },
-        {
-            "date": 1733996836771,
-            "name": "/app/logs/info/info-2024-12-12.log",
-            "hash": "1c987d2eab99acceb0ee4f85ab1653ed592ec1c5aa9214aaf54230e15830404c"
-        },
-        {
-            "date": 1734056145586,
-            "name": "/app/logs/info/info-2024-12-13.log",
-            "hash": "37d2e4f9e427887b31fa4bba1b2f1e41d1d54514adb78509870cd3f636c47ea1"
-        },
-        {
-            "date": 1734271478014,
-            "name": "/app/logs/info/info-2024-12-15.log",
-            "hash": "bc3f088f0c8b7520435ea7873cf36de592eb566add967608002b63eef96088bd"
-        }
-    ],
-    "hashType": "sha256"
-}
\ No newline at end of file
diff --git a/fems-realtime-api/logs/info/info-2024-11-25.log.gz b/fems-realtime-api/logs/info/info-2024-11-25.log.gz
deleted file mode 100644
index d94917b..0000000
Binary files a/fems-realtime-api/logs/info/info-2024-11-25.log.gz and /dev/null differ
diff --git a/fems-realtime-api/logs/system/.d741815bd363f7141809635bfe8d8a1642abfc24-audit.json b/fems-realtime-api/logs/system/.d741815bd363f7141809635bfe8d8a1642abfc24-audit.json
deleted file mode 100644
index 76d6182..0000000
--- a/fems-realtime-api/logs/system/.d741815bd363f7141809635bfe8d8a1642abfc24-audit.json
+++ /dev/null
@@ -1,40 +0,0 @@
-{
-    "keep": {
-        "days": true,
-        "amount": 14
-    },
-    "auditLog": "/app/logs/system/.d741815bd363f7141809635bfe8d8a1642abfc24-audit.json",
-    "files": [
-        {
-            "date": 1733746784910,
-            "name": "/app/logs/system/system-2024-12-09.log",
-            "hash": "29e3a71219f6eb5844373ab72f70cd54d1a44dfc6491ee42ecef0931f5031459"
-        },
-        {
-            "date": 1733793585414,
-            "name": "/app/logs/system/system-2024-12-10.log",
-            "hash": "44911f386576690f54e37dcf880b071f931b3f0927f8c2f97eff948eef82de2a"
-        },
-        {
-            "date": 1733879841794,
-            "name": "/app/logs/system/system-2024-12-11.log",
-            "hash": "377a78384280ae0a2ffba508995bcc46a4a718c069702599347ef1306ef47163"
-        },
-        {
-            "date": 1733996836783,
-            "name": "/app/logs/system/system-2024-12-12.log",
-            "hash": "b8614ccdecfaf9afaef272e735927d04f25143279a904f6e794d7d1afe396245"
-        },
-        {
-            "date": 1734056145590,
-            "name": "/app/logs/system/system-2024-12-13.log",
-            "hash": "9c6cd1946da18741b7c00d8786bae1068cca830b02f4ce106e887e04751ab477"
-        },
-        {
-            "date": 1734271478023,
-            "name": "/app/logs/system/system-2024-12-15.log",
-            "hash": "1915f8fec16ea6329ea53199426f1ce8307fccd0b504056b2a50b0d30d7c72f9"
-        }
-    ],
-    "hashType": "sha256"
-}
\ No newline at end of file
diff --git a/fems-realtime-api/logs/system/system-2024-11-25.log.gz b/fems-realtime-api/logs/system/system-2024-11-25.log.gz
deleted file mode 100644
index a4faa01..0000000
Binary files a/fems-realtime-api/logs/system/system-2024-11-25.log.gz and /dev/null differ
diff --git a/fems-admin/.eslintrc.json b/plm-admin/.eslintrc.json
similarity index 100%
rename from fems-admin/.eslintrc.json
rename to plm-admin/.eslintrc.json
diff --git a/fems-admin/.gitignore b/plm-admin/.gitignore
similarity index 100%
rename from fems-admin/.gitignore
rename to plm-admin/.gitignore
diff --git a/fems-admin/Dockerfile b/plm-admin/Dockerfile
similarity index 100%
rename from fems-admin/Dockerfile
rename to plm-admin/Dockerfile
diff --git a/fems-admin/README.md b/plm-admin/README.md
similarity index 100%
rename from fems-admin/README.md
rename to plm-admin/README.md
diff --git a/fems-admin/components.json b/plm-admin/components.json
similarity index 100%
rename from fems-admin/components.json
rename to plm-admin/components.json
diff --git a/fems-admin/next.config.mjs b/plm-admin/next.config.mjs
similarity index 100%
rename from fems-admin/next.config.mjs
rename to plm-admin/next.config.mjs
diff --git a/fems-admin/package.json b/plm-admin/package.json
similarity index 100%
rename from fems-admin/package.json
rename to plm-admin/package.json
diff --git a/fems-admin/postcss.config.mjs b/plm-admin/postcss.config.mjs
similarity index 100%
rename from fems-admin/postcss.config.mjs
rename to plm-admin/postcss.config.mjs
diff --git a/fems-admin/src/app/favicon.ico b/plm-admin/src/app/favicon.ico
similarity index 100%
rename from fems-admin/src/app/favicon.ico
rename to plm-admin/src/app/favicon.ico
diff --git a/fems-admin/src/app/fonts/GeistMonoVF.woff b/plm-admin/src/app/fonts/GeistMonoVF.woff
similarity index 100%
rename from fems-admin/src/app/fonts/GeistMonoVF.woff
rename to plm-admin/src/app/fonts/GeistMonoVF.woff
diff --git a/fems-admin/src/app/fonts/GeistVF.woff b/plm-admin/src/app/fonts/GeistVF.woff
similarity index 100%
rename from fems-admin/src/app/fonts/GeistVF.woff
rename to plm-admin/src/app/fonts/GeistVF.woff
diff --git a/fems-admin/src/app/globals.css b/plm-admin/src/app/globals.css
similarity index 100%
rename from fems-admin/src/app/globals.css
rename to plm-admin/src/app/globals.css
diff --git a/fems-admin/src/app/layout.tsx b/plm-admin/src/app/layout.tsx
similarity index 100%
rename from fems-admin/src/app/layout.tsx
rename to plm-admin/src/app/layout.tsx
diff --git a/fems-admin/src/app/page.tsx b/plm-admin/src/app/page.tsx
similarity index 100%
rename from fems-admin/src/app/page.tsx
rename to plm-admin/src/app/page.tsx
diff --git a/fems-admin/src/lib/utils.ts b/plm-admin/src/lib/utils.ts
similarity index 100%
rename from fems-admin/src/lib/utils.ts
rename to plm-admin/src/lib/utils.ts
diff --git a/fems-admin/tailwind.config.ts b/plm-admin/tailwind.config.ts
similarity index 100%
rename from fems-admin/tailwind.config.ts
rename to plm-admin/tailwind.config.ts
diff --git a/fems-admin/tsconfig.json b/plm-admin/tsconfig.json
similarity index 100%
rename from fems-admin/tsconfig.json
rename to plm-admin/tsconfig.json
diff --git a/fems-admin/yarn.lock b/plm-admin/yarn.lock
similarity index 100%
rename from fems-admin/yarn.lock
rename to plm-admin/yarn.lock
diff --git a/fems-api/.eslintrc.json b/plm-api/.eslintrc.json
similarity index 100%
rename from fems-api/.eslintrc.json
rename to plm-api/.eslintrc.json
diff --git a/fems-api/.gitignore b/plm-api/.gitignore
similarity index 100%
rename from fems-api/.gitignore
rename to plm-api/.gitignore
diff --git a/fems-api/Dockerfile b/plm-api/Dockerfile
similarity index 100%
rename from fems-api/Dockerfile
rename to plm-api/Dockerfile
diff --git a/fems-api/package.json b/plm-api/package.json
similarity index 100%
rename from fems-api/package.json
rename to plm-api/package.json
diff --git a/fems-api/src/app.js b/plm-api/src/app.js
similarity index 100%
rename from fems-api/src/app.js
rename to plm-api/src/app.js
diff --git a/fems-api/src/config/config.js b/plm-api/src/config/config.js
similarity index 100%
rename from fems-api/src/config/config.js
rename to plm-api/src/config/config.js
diff --git a/fems-api/src/config/database.js b/plm-api/src/config/database.js
similarity index 100%
rename from fems-api/src/config/database.js
rename to plm-api/src/config/database.js
diff --git a/fems-api/src/config/logger.js b/plm-api/src/config/logger.js
similarity index 100%
rename from fems-api/src/config/logger.js
rename to plm-api/src/config/logger.js
diff --git a/fems-api/src/config/redis.js b/plm-api/src/config/redis.js
similarity index 100%
rename from fems-api/src/config/redis.js
rename to plm-api/src/config/redis.js
diff --git a/fems-api/src/controllers/admin/apiKey/apiKey.controller.js b/plm-api/src/controllers/admin/apiKey/apiKey.controller.js
similarity index 100%
rename from fems-api/src/controllers/admin/apiKey/apiKey.controller.js
rename to plm-api/src/controllers/admin/apiKey/apiKey.controller.js
diff --git a/fems-api/src/controllers/admin/companies/branches.controller.js b/plm-api/src/controllers/admin/companies/branches.controller.js
similarity index 100%
rename from fems-api/src/controllers/admin/companies/branches.controller.js
rename to plm-api/src/controllers/admin/companies/branches.controller.js
diff --git a/fems-api/src/controllers/admin/companies/companies.controller.js b/plm-api/src/controllers/admin/companies/companies.controller.js
similarity index 100%
rename from fems-api/src/controllers/admin/companies/companies.controller.js
rename to plm-api/src/controllers/admin/companies/companies.controller.js
diff --git a/fems-api/src/controllers/admin/contracts/contract-details.controller.js b/plm-api/src/controllers/admin/contracts/contract-details.controller.js
similarity index 100%
rename from fems-api/src/controllers/admin/contracts/contract-details.controller.js
rename to plm-api/src/controllers/admin/contracts/contract-details.controller.js
diff --git a/fems-api/src/controllers/admin/contracts/contracts.controller.js b/plm-api/src/controllers/admin/contracts/contracts.controller.js
similarity index 100%
rename from fems-api/src/controllers/admin/contracts/contracts.controller.js
rename to plm-api/src/controllers/admin/contracts/contracts.controller.js
diff --git a/fems-api/src/controllers/admin/users/departments.controller.js b/plm-api/src/controllers/admin/users/departments.controller.js
similarity index 100%
rename from fems-api/src/controllers/admin/users/departments.controller.js
rename to plm-api/src/controllers/admin/users/departments.controller.js
diff --git a/fems-api/src/controllers/admin/users/roles.controller.js b/plm-api/src/controllers/admin/users/roles.controller.js
similarity index 100%
rename from fems-api/src/controllers/admin/users/roles.controller.js
rename to plm-api/src/controllers/admin/users/roles.controller.js
diff --git a/fems-api/src/controllers/admin/users/users.controller.js b/plm-api/src/controllers/admin/users/users.controller.js
similarity index 100%
rename from fems-api/src/controllers/admin/users/users.controller.js
rename to plm-api/src/controllers/admin/users/users.controller.js
diff --git a/fems-api/src/controllers/app/alerts/alerts.controller.js b/plm-api/src/controllers/app/alerts/alerts.controller.js
similarity index 100%
rename from fems-api/src/controllers/app/alerts/alerts.controller.js
rename to plm-api/src/controllers/app/alerts/alerts.controller.js
diff --git a/fems-api/src/controllers/app/auth/auth.controller.js b/plm-api/src/controllers/app/auth/auth.controller.js
similarity index 100%
rename from fems-api/src/controllers/app/auth/auth.controller.js
rename to plm-api/src/controllers/app/auth/auth.controller.js
diff --git a/fems-api/src/controllers/app/common/common.controller.js b/plm-api/src/controllers/app/common/common.controller.js
similarity index 100%
rename from fems-api/src/controllers/app/common/common.controller.js
rename to plm-api/src/controllers/app/common/common.controller.js
diff --git a/fems-api/src/controllers/app/dashboard/dashboard.controller.js b/plm-api/src/controllers/app/dashboard/dashboard.controller.js
similarity index 100%
rename from fems-api/src/controllers/app/dashboard/dashboard.controller.js
rename to plm-api/src/controllers/app/dashboard/dashboard.controller.js
diff --git a/fems-api/src/controllers/app/department/department.controller.js b/plm-api/src/controllers/app/department/department.controller.js
similarity index 100%
rename from fems-api/src/controllers/app/department/department.controller.js
rename to plm-api/src/controllers/app/department/department.controller.js
diff --git a/fems-api/src/controllers/app/device/device.controller.js b/plm-api/src/controllers/app/device/device.controller.js
similarity index 100%
rename from fems-api/src/controllers/app/device/device.controller.js
rename to plm-api/src/controllers/app/device/device.controller.js
diff --git a/fems-api/src/controllers/app/equipment/equipment.controller.js b/plm-api/src/controllers/app/equipment/equipment.controller.js
similarity index 100%
rename from fems-api/src/controllers/app/equipment/equipment.controller.js
rename to plm-api/src/controllers/app/equipment/equipment.controller.js
diff --git a/fems-api/src/controllers/app/equipmentParts/equipmentParts.controller.js b/plm-api/src/controllers/app/equipmentParts/equipmentParts.controller.js
similarity index 100%
rename from fems-api/src/controllers/app/equipmentParts/equipmentParts.controller.js
rename to plm-api/src/controllers/app/equipmentParts/equipmentParts.controller.js
diff --git a/fems-api/src/controllers/app/file/file.controller.js b/plm-api/src/controllers/app/file/file.controller.js
similarity index 100%
rename from fems-api/src/controllers/app/file/file.controller.js
rename to plm-api/src/controllers/app/file/file.controller.js
diff --git a/fems-api/src/controllers/app/health/health.controller.js b/plm-api/src/controllers/app/health/health.controller.js
similarity index 100%
rename from fems-api/src/controllers/app/health/health.controller.js
rename to plm-api/src/controllers/app/health/health.controller.js
diff --git a/fems-api/src/controllers/app/maintenance/maintenance.controller.js b/plm-api/src/controllers/app/maintenance/maintenance.controller.js
similarity index 100%
rename from fems-api/src/controllers/app/maintenance/maintenance.controller.js
rename to plm-api/src/controllers/app/maintenance/maintenance.controller.js
diff --git a/fems-api/src/controllers/app/parts/parts.controller.js b/plm-api/src/controllers/app/parts/parts.controller.js
similarity index 100%
rename from fems-api/src/controllers/app/parts/parts.controller.js
rename to plm-api/src/controllers/app/parts/parts.controller.js
diff --git a/fems-api/src/controllers/app/personnel/personnel.controller.js b/plm-api/src/controllers/app/personnel/personnel.controller.js
similarity index 100%
rename from fems-api/src/controllers/app/personnel/personnel.controller.js
rename to plm-api/src/controllers/app/personnel/personnel.controller.js
diff --git a/fems-api/src/controllers/app/users/users.controller.js b/plm-api/src/controllers/app/users/users.controller.js
similarity index 100%
rename from fems-api/src/controllers/app/users/users.controller.js
rename to plm-api/src/controllers/app/users/users.controller.js
diff --git a/fems-api/src/controllers/app/zone/zone.controller.js b/plm-api/src/controllers/app/zone/zone.controller.js
similarity index 100%
rename from fems-api/src/controllers/app/zone/zone.controller.js
rename to plm-api/src/controllers/app/zone/zone.controller.js
diff --git a/fems-api/src/middleware/apiKey.middleware.js b/plm-api/src/middleware/apiKey.middleware.js
similarity index 100%
rename from fems-api/src/middleware/apiKey.middleware.js
rename to plm-api/src/middleware/apiKey.middleware.js
diff --git a/fems-api/src/middleware/auth.middleware.js b/plm-api/src/middleware/auth.middleware.js
similarity index 100%
rename from fems-api/src/middleware/auth.middleware.js
rename to plm-api/src/middleware/auth.middleware.js
diff --git a/fems-api/src/middleware/checkContractStatus.middleware.js b/plm-api/src/middleware/checkContractStatus.middleware.js
similarity index 100%
rename from fems-api/src/middleware/checkContractStatus.middleware.js
rename to plm-api/src/middleware/checkContractStatus.middleware.js
diff --git a/fems-api/src/middleware/cors.middleware.js b/plm-api/src/middleware/cors.middleware.js
similarity index 100%
rename from fems-api/src/middleware/cors.middleware.js
rename to plm-api/src/middleware/cors.middleware.js
diff --git a/fems-api/src/middleware/error.middleware.js b/plm-api/src/middleware/error.middleware.js
similarity index 100%
rename from fems-api/src/middleware/error.middleware.js
rename to plm-api/src/middleware/error.middleware.js
diff --git a/fems-api/src/middleware/errorHandler.middleware.js b/plm-api/src/middleware/errorHandler.middleware.js
similarity index 100%
rename from fems-api/src/middleware/errorHandler.middleware.js
rename to plm-api/src/middleware/errorHandler.middleware.js
diff --git a/fems-api/src/middleware/menu.middleware.js b/plm-api/src/middleware/menu.middleware.js
similarity index 100%
rename from fems-api/src/middleware/menu.middleware.js
rename to plm-api/src/middleware/menu.middleware.js
diff --git a/fems-api/src/middleware/permission.middleware.js b/plm-api/src/middleware/permission.middleware.js
similarity index 100%
rename from fems-api/src/middleware/permission.middleware.js
rename to plm-api/src/middleware/permission.middleware.js
diff --git a/fems-api/src/middleware/rateLimit.middleware.js b/plm-api/src/middleware/rateLimit.middleware.js
similarity index 100%
rename from fems-api/src/middleware/rateLimit.middleware.js
rename to plm-api/src/middleware/rateLimit.middleware.js
diff --git a/fems-api/src/middleware/requestLogger.middleware.js b/plm-api/src/middleware/requestLogger.middleware.js
similarity index 100%
rename from fems-api/src/middleware/requestLogger.middleware.js
rename to plm-api/src/middleware/requestLogger.middleware.js
diff --git a/fems-api/src/middleware/roleCheck.middleware.js b/plm-api/src/middleware/roleCheck.middleware.js
similarity index 100%
rename from fems-api/src/middleware/roleCheck.middleware.js
rename to plm-api/src/middleware/roleCheck.middleware.js
diff --git a/fems-api/src/middleware/securityHeaders.middleware.js b/plm-api/src/middleware/securityHeaders.middleware.js
similarity index 100%
rename from fems-api/src/middleware/securityHeaders.middleware.js
rename to plm-api/src/middleware/securityHeaders.middleware.js
diff --git a/fems-api/src/middleware/validator.middleware.js b/plm-api/src/middleware/validator.middleware.js
similarity index 100%
rename from fems-api/src/middleware/validator.middleware.js
rename to plm-api/src/middleware/validator.middleware.js
diff --git a/fems-api/src/models/AlarmRule.js b/plm-api/src/models/AlarmRule.js
similarity index 100%
rename from fems-api/src/models/AlarmRule.js
rename to plm-api/src/models/AlarmRule.js
diff --git a/fems-api/src/models/Alert.js b/plm-api/src/models/Alert.js
similarity index 100%
rename from fems-api/src/models/Alert.js
rename to plm-api/src/models/Alert.js
diff --git a/fems-api/src/models/ApiKey.js b/plm-api/src/models/ApiKey.js
similarity index 100%
rename from fems-api/src/models/ApiKey.js
rename to plm-api/src/models/ApiKey.js
diff --git a/fems-api/src/models/AuthLog.js b/plm-api/src/models/AuthLog.js
similarity index 100%
rename from fems-api/src/models/AuthLog.js
rename to plm-api/src/models/AuthLog.js
diff --git a/fems-api/src/models/Branch.js b/plm-api/src/models/Branch.js
similarity index 100%
rename from fems-api/src/models/Branch.js
rename to plm-api/src/models/Branch.js
diff --git a/fems-api/src/models/Company.js b/plm-api/src/models/Company.js
similarity index 100%
rename from fems-api/src/models/Company.js
rename to plm-api/src/models/Company.js
diff --git a/fems-api/src/models/Contract.js b/plm-api/src/models/Contract.js
similarity index 100%
rename from fems-api/src/models/Contract.js
rename to plm-api/src/models/Contract.js
diff --git a/fems-api/src/models/ContractDetail.js b/plm-api/src/models/ContractDetail.js
similarity index 100%
rename from fems-api/src/models/ContractDetail.js
rename to plm-api/src/models/ContractDetail.js
diff --git a/fems-api/src/models/Dashboard.js b/plm-api/src/models/Dashboard.js
similarity index 100%
rename from fems-api/src/models/Dashboard.js
rename to plm-api/src/models/Dashboard.js
diff --git a/fems-api/src/models/DataPoint.js b/plm-api/src/models/DataPoint.js
similarity index 100%
rename from fems-api/src/models/DataPoint.js
rename to plm-api/src/models/DataPoint.js
diff --git a/fems-api/src/models/Department.js b/plm-api/src/models/Department.js
similarity index 100%
rename from fems-api/src/models/Department.js
rename to plm-api/src/models/Department.js
diff --git a/fems-api/src/models/Device.js b/plm-api/src/models/Device.js
similarity index 100%
rename from fems-api/src/models/Device.js
rename to plm-api/src/models/Device.js
diff --git a/fems-api/src/models/DeviceConnection.js b/plm-api/src/models/DeviceConnection.js
similarity index 100%
rename from fems-api/src/models/DeviceConnection.js
rename to plm-api/src/models/DeviceConnection.js
diff --git a/fems-api/src/models/DeviceStatus.js b/plm-api/src/models/DeviceStatus.js
similarity index 100%
rename from fems-api/src/models/DeviceStatus.js
rename to plm-api/src/models/DeviceStatus.js
diff --git a/fems-api/src/models/EnergyCost.js b/plm-api/src/models/EnergyCost.js
similarity index 100%
rename from fems-api/src/models/EnergyCost.js
rename to plm-api/src/models/EnergyCost.js
diff --git a/fems-api/src/models/EnergyPrediction.js b/plm-api/src/models/EnergyPrediction.js
similarity index 100%
rename from fems-api/src/models/EnergyPrediction.js
rename to plm-api/src/models/EnergyPrediction.js
diff --git a/fems-api/src/models/EnergyTarget.js b/plm-api/src/models/EnergyTarget.js
similarity index 100%
rename from fems-api/src/models/EnergyTarget.js
rename to plm-api/src/models/EnergyTarget.js
diff --git a/fems-api/src/models/EnergyUsage.js b/plm-api/src/models/EnergyUsage.js
similarity index 100%
rename from fems-api/src/models/EnergyUsage.js
rename to plm-api/src/models/EnergyUsage.js
diff --git a/fems-api/src/models/Equipment.js b/plm-api/src/models/Equipment.js
similarity index 100%
rename from fems-api/src/models/Equipment.js
rename to plm-api/src/models/Equipment.js
diff --git a/fems-api/src/models/EquipmentData.js b/plm-api/src/models/EquipmentData.js
similarity index 100%
rename from fems-api/src/models/EquipmentData.js
rename to plm-api/src/models/EquipmentData.js
diff --git a/fems-api/src/models/EquipmentParts.js b/plm-api/src/models/EquipmentParts.js
similarity index 100%
rename from fems-api/src/models/EquipmentParts.js
rename to plm-api/src/models/EquipmentParts.js
diff --git a/fems-api/src/models/File.js b/plm-api/src/models/File.js
similarity index 100%
rename from fems-api/src/models/File.js
rename to plm-api/src/models/File.js
diff --git a/fems-api/src/models/Kpi.js b/plm-api/src/models/Kpi.js
similarity index 100%
rename from fems-api/src/models/Kpi.js
rename to plm-api/src/models/Kpi.js
diff --git a/fems-api/src/models/MaintenanceLog.js b/plm-api/src/models/MaintenanceLog.js
similarity index 100%
rename from fems-api/src/models/MaintenanceLog.js
rename to plm-api/src/models/MaintenanceLog.js
diff --git a/fems-api/src/models/MaintenanceLogParts.js b/plm-api/src/models/MaintenanceLogParts.js
similarity index 100%
rename from fems-api/src/models/MaintenanceLogParts.js
rename to plm-api/src/models/MaintenanceLogParts.js
diff --git a/fems-api/src/models/MaintenanceLogPersonnel.js b/plm-api/src/models/MaintenanceLogPersonnel.js
similarity index 100%
rename from fems-api/src/models/MaintenanceLogPersonnel.js
rename to plm-api/src/models/MaintenanceLogPersonnel.js
diff --git a/fems-api/src/models/MenuInfo.js b/plm-api/src/models/MenuInfo.js
similarity index 100%
rename from fems-api/src/models/MenuInfo.js
rename to plm-api/src/models/MenuInfo.js
diff --git a/fems-api/src/models/Parts.js b/plm-api/src/models/Parts.js
similarity index 100%
rename from fems-api/src/models/Parts.js
rename to plm-api/src/models/Parts.js
diff --git a/fems-api/src/models/Personnel.js b/plm-api/src/models/Personnel.js
similarity index 100%
rename from fems-api/src/models/Personnel.js
rename to plm-api/src/models/Personnel.js
diff --git a/fems-api/src/models/PredictionDetail.js b/plm-api/src/models/PredictionDetail.js
similarity index 100%
rename from fems-api/src/models/PredictionDetail.js
rename to plm-api/src/models/PredictionDetail.js
diff --git a/fems-api/src/models/Report.js b/plm-api/src/models/Report.js
similarity index 100%
rename from fems-api/src/models/Report.js
rename to plm-api/src/models/Report.js
diff --git a/fems-api/src/models/ReportTemplate.js b/plm-api/src/models/ReportTemplate.js
similarity index 100%
rename from fems-api/src/models/ReportTemplate.js
rename to plm-api/src/models/ReportTemplate.js
diff --git a/fems-api/src/models/Role.js b/plm-api/src/models/Role.js
similarity index 100%
rename from fems-api/src/models/Role.js
rename to plm-api/src/models/Role.js
diff --git a/fems-api/src/models/SystemSetting.js b/plm-api/src/models/SystemSetting.js
similarity index 100%
rename from fems-api/src/models/SystemSetting.js
rename to plm-api/src/models/SystemSetting.js
diff --git a/fems-api/src/models/User.js b/plm-api/src/models/User.js
similarity index 100%
rename from fems-api/src/models/User.js
rename to plm-api/src/models/User.js
diff --git a/fems-api/src/models/UserRole.js b/plm-api/src/models/UserRole.js
similarity index 100%
rename from fems-api/src/models/UserRole.js
rename to plm-api/src/models/UserRole.js
diff --git a/fems-api/src/models/Userinfo.js b/plm-api/src/models/Userinfo.js
similarity index 100%
rename from fems-api/src/models/Userinfo.js
rename to plm-api/src/models/Userinfo.js
diff --git a/fems-api/src/models/Widget.js b/plm-api/src/models/Widget.js
similarity index 100%
rename from fems-api/src/models/Widget.js
rename to plm-api/src/models/Widget.js
diff --git a/fems-api/src/models/Zone.js b/plm-api/src/models/Zone.js
similarity index 100%
rename from fems-api/src/models/Zone.js
rename to plm-api/src/models/Zone.js
diff --git a/fems-api/src/models/index.js b/plm-api/src/models/index.js
similarity index 100%
rename from fems-api/src/models/index.js
rename to plm-api/src/models/index.js
diff --git a/fems-api/src/routes/admin.js b/plm-api/src/routes/admin.js
similarity index 100%
rename from fems-api/src/routes/admin.js
rename to plm-api/src/routes/admin.js
diff --git a/fems-api/src/routes/app.js b/plm-api/src/routes/app.js
similarity index 100%
rename from fems-api/src/routes/app.js
rename to plm-api/src/routes/app.js
diff --git a/fems-api/src/routes/index.js b/plm-api/src/routes/index.js
similarity index 100%
rename from fems-api/src/routes/index.js
rename to plm-api/src/routes/index.js
diff --git a/fems-api/src/services/alert.service.js b/plm-api/src/services/alert.service.js
similarity index 100%
rename from fems-api/src/services/alert.service.js
rename to plm-api/src/services/alert.service.js
diff --git a/fems-api/src/services/apiKey.service.js b/plm-api/src/services/apiKey.service.js
similarity index 100%
rename from fems-api/src/services/apiKey.service.js
rename to plm-api/src/services/apiKey.service.js
diff --git a/fems-api/src/services/auth.service.js b/plm-api/src/services/auth.service.js
similarity index 100%
rename from fems-api/src/services/auth.service.js
rename to plm-api/src/services/auth.service.js
diff --git a/fems-api/src/services/branch.service.js b/plm-api/src/services/branch.service.js
similarity index 100%
rename from fems-api/src/services/branch.service.js
rename to plm-api/src/services/branch.service.js
diff --git a/fems-api/src/services/common.service.js b/plm-api/src/services/common.service.js
similarity index 100%
rename from fems-api/src/services/common.service.js
rename to plm-api/src/services/common.service.js
diff --git a/fems-api/src/services/companies.service.js b/plm-api/src/services/companies.service.js
similarity index 100%
rename from fems-api/src/services/companies.service.js
rename to plm-api/src/services/companies.service.js
diff --git a/fems-api/src/services/contract-detail.service.js b/plm-api/src/services/contract-detail.service.js
similarity index 100%
rename from fems-api/src/services/contract-detail.service.js
rename to plm-api/src/services/contract-detail.service.js
diff --git a/fems-api/src/services/contract.service.js b/plm-api/src/services/contract.service.js
similarity index 100%
rename from fems-api/src/services/contract.service.js
rename to plm-api/src/services/contract.service.js
diff --git a/fems-api/src/services/dashboard.service.js b/plm-api/src/services/dashboard.service.js
similarity index 100%
rename from fems-api/src/services/dashboard.service.js
rename to plm-api/src/services/dashboard.service.js
diff --git a/fems-api/src/services/department.service.js b/plm-api/src/services/department.service.js
similarity index 100%
rename from fems-api/src/services/department.service.js
rename to plm-api/src/services/department.service.js
diff --git a/fems-api/src/services/device.service.js b/plm-api/src/services/device.service.js
similarity index 100%
rename from fems-api/src/services/device.service.js
rename to plm-api/src/services/device.service.js
diff --git a/fems-api/src/services/equipment.service.js b/plm-api/src/services/equipment.service.js
similarity index 100%
rename from fems-api/src/services/equipment.service.js
rename to plm-api/src/services/equipment.service.js
diff --git a/fems-api/src/services/equipmentParts.service.js b/plm-api/src/services/equipmentParts.service.js
similarity index 100%
rename from fems-api/src/services/equipmentParts.service.js
rename to plm-api/src/services/equipmentParts.service.js
diff --git a/fems-api/src/services/file.service.js b/plm-api/src/services/file.service.js
similarity index 100%
rename from fems-api/src/services/file.service.js
rename to plm-api/src/services/file.service.js
diff --git a/fems-api/src/services/maintenance.service.js b/plm-api/src/services/maintenance.service.js
similarity index 100%
rename from fems-api/src/services/maintenance.service.js
rename to plm-api/src/services/maintenance.service.js
diff --git a/fems-api/src/services/parts.service.js b/plm-api/src/services/parts.service.js
similarity index 100%
rename from fems-api/src/services/parts.service.js
rename to plm-api/src/services/parts.service.js
diff --git a/fems-api/src/services/permission.service.js b/plm-api/src/services/permission.service.js
similarity index 100%
rename from fems-api/src/services/permission.service.js
rename to plm-api/src/services/permission.service.js
diff --git a/fems-api/src/services/personnel.service.js b/plm-api/src/services/personnel.service.js
similarity index 100%
rename from fems-api/src/services/personnel.service.js
rename to plm-api/src/services/personnel.service.js
diff --git a/fems-api/src/services/role.service.js b/plm-api/src/services/role.service.js
similarity index 100%
rename from fems-api/src/services/role.service.js
rename to plm-api/src/services/role.service.js
diff --git a/fems-api/src/services/system.service.js b/plm-api/src/services/system.service.js
similarity index 100%
rename from fems-api/src/services/system.service.js
rename to plm-api/src/services/system.service.js
diff --git a/fems-api/src/services/user.service.js b/plm-api/src/services/user.service.js
similarity index 100%
rename from fems-api/src/services/user.service.js
rename to plm-api/src/services/user.service.js
diff --git a/fems-api/src/services/zone.service.js b/plm-api/src/services/zone.service.js
similarity index 100%
rename from fems-api/src/services/zone.service.js
rename to plm-api/src/services/zone.service.js
diff --git a/fems-api/src/utils/asyncHandler.js b/plm-api/src/utils/asyncHandler.js
similarity index 100%
rename from fems-api/src/utils/asyncHandler.js
rename to plm-api/src/utils/asyncHandler.js
diff --git a/fems-api/src/utils/cache.js b/plm-api/src/utils/cache.js
similarity index 100%
rename from fems-api/src/utils/cache.js
rename to plm-api/src/utils/cache.js
diff --git a/fems-api/src/utils/createInitialAdmin.js b/plm-api/src/utils/createInitialAdmin.js
similarity index 100%
rename from fems-api/src/utils/createInitialAdmin.js
rename to plm-api/src/utils/createInitialAdmin.js
diff --git a/fems-api/src/utils/database.js b/plm-api/src/utils/database.js
similarity index 100%
rename from fems-api/src/utils/database.js
rename to plm-api/src/utils/database.js
diff --git a/fems-api/src/utils/errors.js b/plm-api/src/utils/errors.js
similarity index 100%
rename from fems-api/src/utils/errors.js
rename to plm-api/src/utils/errors.js
diff --git a/fems-api/src/utils/initialSetup/dataSetup.js b/plm-api/src/utils/initialSetup/dataSetup.js
similarity index 100%
rename from fems-api/src/utils/initialSetup/dataSetup.js
rename to plm-api/src/utils/initialSetup/dataSetup.js
diff --git a/fems-api/src/utils/initialSetup/deviceInitializer.js b/plm-api/src/utils/initialSetup/deviceInitializer.js
similarity index 100%
rename from fems-api/src/utils/initialSetup/deviceInitializer.js
rename to plm-api/src/utils/initialSetup/deviceInitializer.js
diff --git a/fems-api/src/utils/initialSetup/loggingSetup.js b/plm-api/src/utils/initialSetup/loggingSetup.js
similarity index 100%
rename from fems-api/src/utils/initialSetup/loggingSetup.js
rename to plm-api/src/utils/initialSetup/loggingSetup.js
diff --git a/fems-api/src/utils/initialSetup/maintenanceSetup.js b/plm-api/src/utils/initialSetup/maintenanceSetup.js
similarity index 100%
rename from fems-api/src/utils/initialSetup/maintenanceSetup.js
rename to plm-api/src/utils/initialSetup/maintenanceSetup.js
diff --git a/fems-api/src/utils/initialSetup/organizationSetup.js b/plm-api/src/utils/initialSetup/organizationSetup.js
similarity index 100%
rename from fems-api/src/utils/initialSetup/organizationSetup.js
rename to plm-api/src/utils/initialSetup/organizationSetup.js
diff --git a/fems-api/src/utils/initialSetup/setupData.js b/plm-api/src/utils/initialSetup/setupData.js
similarity index 100%
rename from fems-api/src/utils/initialSetup/setupData.js
rename to plm-api/src/utils/initialSetup/setupData.js
diff --git a/fems-api/src/utils/koreanParticle.js b/plm-api/src/utils/koreanParticle.js
similarity index 100%
rename from fems-api/src/utils/koreanParticle.js
rename to plm-api/src/utils/koreanParticle.js
diff --git a/fems-api/src/utils/logger.js b/plm-api/src/utils/logger.js
similarity index 100%
rename from fems-api/src/utils/logger.js
rename to plm-api/src/utils/logger.js
diff --git a/fems-api/src/utils/permissions.js b/plm-api/src/utils/permissions.js
similarity index 100%
rename from fems-api/src/utils/permissions.js
rename to plm-api/src/utils/permissions.js
diff --git a/fems-api/src/utils/security.js b/plm-api/src/utils/security.js
similarity index 100%
rename from fems-api/src/utils/security.js
rename to plm-api/src/utils/security.js
diff --git a/fems-api/src/utils/validators.js b/plm-api/src/utils/validators.js
similarity index 100%
rename from fems-api/src/utils/validators.js
rename to plm-api/src/utils/validators.js
diff --git a/fems-api/yarn.lock b/plm-api/yarn.lock
similarity index 100%
rename from fems-api/yarn.lock
rename to plm-api/yarn.lock
diff --git a/fems-app/.eslintrc.json b/plm-app/.eslintrc.json
similarity index 100%
rename from fems-app/.eslintrc.json
rename to plm-app/.eslintrc.json
diff --git a/fems-app/.gitignore b/plm-app/.gitignore
similarity index 100%
rename from fems-app/.gitignore
rename to plm-app/.gitignore
diff --git a/fems-app/Dockerfile b/plm-app/Dockerfile
similarity index 100%
rename from fems-app/Dockerfile
rename to plm-app/Dockerfile
diff --git a/fems-app/README.md b/plm-app/README.md
similarity index 100%
rename from fems-app/README.md
rename to plm-app/README.md
diff --git a/fems-app/components.json b/plm-app/components.json
similarity index 100%
rename from fems-app/components.json
rename to plm-app/components.json
diff --git a/fems-app/next.config.mjs b/plm-app/next.config.mjs
similarity index 100%
rename from fems-app/next.config.mjs
rename to plm-app/next.config.mjs
diff --git a/fems-app/package.json b/plm-app/package.json
similarity index 100%
rename from fems-app/package.json
rename to plm-app/package.json
diff --git a/fems-app/postcss.config.mjs b/plm-app/postcss.config.mjs
similarity index 100%
rename from fems-app/postcss.config.mjs
rename to plm-app/postcss.config.mjs
diff --git a/fems-app/src/app/(admin)/common/menu/components/UserForm.tsx b/plm-app/src/app/(admin)/common/menu/components/UserForm.tsx
similarity index 100%
rename from fems-app/src/app/(admin)/common/menu/components/UserForm.tsx
rename to plm-app/src/app/(admin)/common/menu/components/UserForm.tsx
diff --git a/fems-app/src/app/(admin)/common/menu/page.tsx b/plm-app/src/app/(admin)/common/menu/page.tsx
similarity index 100%
rename from fems-app/src/app/(admin)/common/menu/page.tsx
rename to plm-app/src/app/(admin)/common/menu/page.tsx
diff --git a/fems-app/src/app/(admin)/company/billing/page.tsx b/plm-app/src/app/(admin)/company/billing/page.tsx
similarity index 100%
rename from fems-app/src/app/(admin)/company/billing/page.tsx
rename to plm-app/src/app/(admin)/company/billing/page.tsx
diff --git a/fems-app/src/app/(admin)/company/branches/components/ApiKeyDialog.tsx b/plm-app/src/app/(admin)/company/branches/components/ApiKeyDialog.tsx
similarity index 100%
rename from fems-app/src/app/(admin)/company/branches/components/ApiKeyDialog.tsx
rename to plm-app/src/app/(admin)/company/branches/components/ApiKeyDialog.tsx
diff --git a/fems-app/src/app/(admin)/company/branches/components/ApiKeySection.tsx b/plm-app/src/app/(admin)/company/branches/components/ApiKeySection.tsx
similarity index 100%
rename from fems-app/src/app/(admin)/company/branches/components/ApiKeySection.tsx
rename to plm-app/src/app/(admin)/company/branches/components/ApiKeySection.tsx
diff --git a/fems-app/src/app/(admin)/company/branches/components/BranchCard.tsx b/plm-app/src/app/(admin)/company/branches/components/BranchCard.tsx
similarity index 100%
rename from fems-app/src/app/(admin)/company/branches/components/BranchCard.tsx
rename to plm-app/src/app/(admin)/company/branches/components/BranchCard.tsx
diff --git a/fems-app/src/app/(admin)/company/branches/components/BranchFormDialog.tsx b/plm-app/src/app/(admin)/company/branches/components/BranchFormDialog.tsx
similarity index 100%
rename from fems-app/src/app/(admin)/company/branches/components/BranchFormDialog.tsx
rename to plm-app/src/app/(admin)/company/branches/components/BranchFormDialog.tsx
diff --git a/fems-app/src/app/(admin)/company/branches/components/DeleteApiKeyDialog.tsx b/plm-app/src/app/(admin)/company/branches/components/DeleteApiKeyDialog.tsx
similarity index 100%
rename from fems-app/src/app/(admin)/company/branches/components/DeleteApiKeyDialog.tsx
rename to plm-app/src/app/(admin)/company/branches/components/DeleteApiKeyDialog.tsx
diff --git a/fems-app/src/app/(admin)/company/branches/components/DeleteBranchDialog.tsx b/plm-app/src/app/(admin)/company/branches/components/DeleteBranchDialog.tsx
similarity index 100%
rename from fems-app/src/app/(admin)/company/branches/components/DeleteBranchDialog.tsx
rename to plm-app/src/app/(admin)/company/branches/components/DeleteBranchDialog.tsx
diff --git a/fems-app/src/app/(admin)/company/branches/hooks/useApiKeyMutations.ts b/plm-app/src/app/(admin)/company/branches/hooks/useApiKeyMutations.ts
similarity index 100%
rename from fems-app/src/app/(admin)/company/branches/hooks/useApiKeyMutations.ts
rename to plm-app/src/app/(admin)/company/branches/hooks/useApiKeyMutations.ts
diff --git a/fems-app/src/app/(admin)/company/branches/hooks/useBranchMutations.ts b/plm-app/src/app/(admin)/company/branches/hooks/useBranchMutations.ts
similarity index 100%
rename from fems-app/src/app/(admin)/company/branches/hooks/useBranchMutations.ts
rename to plm-app/src/app/(admin)/company/branches/hooks/useBranchMutations.ts
diff --git a/fems-app/src/app/(admin)/company/branches/page.tsx b/plm-app/src/app/(admin)/company/branches/page.tsx
similarity index 100%
rename from fems-app/src/app/(admin)/company/branches/page.tsx
rename to plm-app/src/app/(admin)/company/branches/page.tsx
diff --git a/fems-app/src/app/(admin)/company/branches/utils/api-helpers.ts b/plm-app/src/app/(admin)/company/branches/utils/api-helpers.ts
similarity index 100%
rename from fems-app/src/app/(admin)/company/branches/utils/api-helpers.ts
rename to plm-app/src/app/(admin)/company/branches/utils/api-helpers.ts
diff --git a/fems-app/src/app/(admin)/company/branches/utils/clipboard.ts b/plm-app/src/app/(admin)/company/branches/utils/clipboard.ts
similarity index 100%
rename from fems-app/src/app/(admin)/company/branches/utils/clipboard.ts
rename to plm-app/src/app/(admin)/company/branches/utils/clipboard.ts
diff --git a/fems-app/src/app/(admin)/company/branches/utils/constants.ts b/plm-app/src/app/(admin)/company/branches/utils/constants.ts
similarity index 100%
rename from fems-app/src/app/(admin)/company/branches/utils/constants.ts
rename to plm-app/src/app/(admin)/company/branches/utils/constants.ts
diff --git a/fems-app/src/app/(admin)/company/branches/utils/formatters.ts b/plm-app/src/app/(admin)/company/branches/utils/formatters.ts
similarity index 100%
rename from fems-app/src/app/(admin)/company/branches/utils/formatters.ts
rename to plm-app/src/app/(admin)/company/branches/utils/formatters.ts
diff --git a/fems-app/src/app/(admin)/company/branches/utils/validators.ts b/plm-app/src/app/(admin)/company/branches/utils/validators.ts
similarity index 100%
rename from fems-app/src/app/(admin)/company/branches/utils/validators.ts
rename to plm-app/src/app/(admin)/company/branches/utils/validators.ts
diff --git a/fems-app/src/app/(admin)/company/profile/page.tsx b/plm-app/src/app/(admin)/company/profile/page.tsx
similarity index 100%
rename from fems-app/src/app/(admin)/company/profile/page.tsx
rename to plm-app/src/app/(admin)/company/profile/page.tsx
diff --git a/fems-app/src/app/(admin)/layout.tsx b/plm-app/src/app/(admin)/layout.tsx
similarity index 100%
rename from fems-app/src/app/(admin)/layout.tsx
rename to plm-app/src/app/(admin)/layout.tsx
diff --git a/fems-app/src/app/(admin)/system/page.tsx b/plm-app/src/app/(admin)/system/page.tsx
similarity index 100%
rename from fems-app/src/app/(admin)/system/page.tsx
rename to plm-app/src/app/(admin)/system/page.tsx
diff --git a/fems-app/src/app/(admin)/users/accounts/components/UserForm.tsx b/plm-app/src/app/(admin)/users/accounts/components/UserForm.tsx
similarity index 100%
rename from fems-app/src/app/(admin)/users/accounts/components/UserForm.tsx
rename to plm-app/src/app/(admin)/users/accounts/components/UserForm.tsx
diff --git a/fems-app/src/app/(admin)/users/accounts/page.tsx b/plm-app/src/app/(admin)/users/accounts/page.tsx
similarity index 100%
rename from fems-app/src/app/(admin)/users/accounts/page.tsx
rename to plm-app/src/app/(admin)/users/accounts/page.tsx
diff --git a/fems-app/src/app/(admin)/users/departments/components/DepartmentCard.tsx b/plm-app/src/app/(admin)/users/departments/components/DepartmentCard.tsx
similarity index 100%
rename from fems-app/src/app/(admin)/users/departments/components/DepartmentCard.tsx
rename to plm-app/src/app/(admin)/users/departments/components/DepartmentCard.tsx
diff --git a/fems-app/src/app/(admin)/users/departments/components/DepartmentForm.tsx b/plm-app/src/app/(admin)/users/departments/components/DepartmentForm.tsx
similarity index 100%
rename from fems-app/src/app/(admin)/users/departments/components/DepartmentForm.tsx
rename to plm-app/src/app/(admin)/users/departments/components/DepartmentForm.tsx
diff --git a/fems-app/src/app/(admin)/users/departments/page.tsx b/plm-app/src/app/(admin)/users/departments/page.tsx
similarity index 100%
rename from fems-app/src/app/(admin)/users/departments/page.tsx
rename to plm-app/src/app/(admin)/users/departments/page.tsx
diff --git a/fems-app/src/app/(admin)/users/roles/components/RoleForm.tsx b/plm-app/src/app/(admin)/users/roles/components/RoleForm.tsx
similarity index 100%
rename from fems-app/src/app/(admin)/users/roles/components/RoleForm.tsx
rename to plm-app/src/app/(admin)/users/roles/components/RoleForm.tsx
diff --git a/fems-app/src/app/(admin)/users/roles/page.tsx b/plm-app/src/app/(admin)/users/roles/page.tsx
similarity index 100%
rename from fems-app/src/app/(admin)/users/roles/page.tsx
rename to plm-app/src/app/(admin)/users/roles/page.tsx
diff --git a/fems-app/src/app/(alarm)/history/page.tsx b/plm-app/src/app/(alarm)/history/page.tsx
similarity index 100%
rename from fems-app/src/app/(alarm)/history/page.tsx
rename to plm-app/src/app/(alarm)/history/page.tsx
diff --git a/fems-app/src/app/(alarm)/layout.tsx b/plm-app/src/app/(alarm)/layout.tsx
similarity index 100%
rename from fems-app/src/app/(alarm)/layout.tsx
rename to plm-app/src/app/(alarm)/layout.tsx
diff --git a/fems-app/src/app/(alarm)/realtime/page.tsx b/plm-app/src/app/(alarm)/realtime/page.tsx
similarity index 100%
rename from fems-app/src/app/(alarm)/realtime/page.tsx
rename to plm-app/src/app/(alarm)/realtime/page.tsx
diff --git a/fems-app/src/app/(alarm)/settings/page.tsx b/plm-app/src/app/(alarm)/settings/page.tsx
similarity index 100%
rename from fems-app/src/app/(alarm)/settings/page.tsx
rename to plm-app/src/app/(alarm)/settings/page.tsx
diff --git a/fems-app/src/app/(analysis)/efficiency/page.tsx b/plm-app/src/app/(analysis)/efficiency/page.tsx
similarity index 100%
rename from fems-app/src/app/(analysis)/efficiency/page.tsx
rename to plm-app/src/app/(analysis)/efficiency/page.tsx
diff --git a/fems-app/src/app/(analysis)/energy/page.tsx b/plm-app/src/app/(analysis)/energy/page.tsx
similarity index 100%
rename from fems-app/src/app/(analysis)/energy/page.tsx
rename to plm-app/src/app/(analysis)/energy/page.tsx
diff --git a/fems-app/src/app/(analysis)/layout.tsx b/plm-app/src/app/(analysis)/layout.tsx
similarity index 100%
rename from fems-app/src/app/(analysis)/layout.tsx
rename to plm-app/src/app/(analysis)/layout.tsx
diff --git a/fems-app/src/app/(analysis)/reports/page.tsx b/plm-app/src/app/(analysis)/reports/page.tsx
similarity index 100%
rename from fems-app/src/app/(analysis)/reports/page.tsx
rename to plm-app/src/app/(analysis)/reports/page.tsx
diff --git a/fems-app/src/app/(auth)/layout.tsx b/plm-app/src/app/(auth)/layout.tsx
similarity index 100%
rename from fems-app/src/app/(auth)/layout.tsx
rename to plm-app/src/app/(auth)/layout.tsx
diff --git a/fems-app/src/app/(auth)/login/page.tsx b/plm-app/src/app/(auth)/login/page.tsx
similarity index 100%
rename from fems-app/src/app/(auth)/login/page.tsx
rename to plm-app/src/app/(auth)/login/page.tsx
diff --git a/fems-app/src/app/(auth)/register/page.tsx b/plm-app/src/app/(auth)/register/page.tsx
similarity index 100%
rename from fems-app/src/app/(auth)/register/page.tsx
rename to plm-app/src/app/(auth)/register/page.tsx
diff --git a/fems-app/src/app/(equipment)/devices/[id]/page.tsx b/plm-app/src/app/(equipment)/devices/[id]/page.tsx
similarity index 100%
rename from fems-app/src/app/(equipment)/devices/[id]/page.tsx
rename to plm-app/src/app/(equipment)/devices/[id]/page.tsx
diff --git a/fems-app/src/app/(equipment)/devices/components/Detail/DeviceDetailDialog.tsx b/plm-app/src/app/(equipment)/devices/components/Detail/DeviceDetailDialog.tsx
similarity index 100%
rename from fems-app/src/app/(equipment)/devices/components/Detail/DeviceDetailDialog.tsx
rename to plm-app/src/app/(equipment)/devices/components/Detail/DeviceDetailDialog.tsx
diff --git a/fems-app/src/app/(equipment)/devices/components/DeviceForm/DataPointFormFields.tsx b/plm-app/src/app/(equipment)/devices/components/DeviceForm/DataPointFormFields.tsx
similarity index 100%
rename from fems-app/src/app/(equipment)/devices/components/DeviceForm/DataPointFormFields.tsx
rename to plm-app/src/app/(equipment)/devices/components/DeviceForm/DataPointFormFields.tsx
diff --git a/fems-app/src/app/(equipment)/devices/components/DeviceForm/DeviceFormFields.tsx b/plm-app/src/app/(equipment)/devices/components/DeviceForm/DeviceFormFields.tsx
similarity index 100%
rename from fems-app/src/app/(equipment)/devices/components/DeviceForm/DeviceFormFields.tsx
rename to plm-app/src/app/(equipment)/devices/components/DeviceForm/DeviceFormFields.tsx
diff --git a/fems-app/src/app/(equipment)/devices/components/DeviceForm/index.tsx b/plm-app/src/app/(equipment)/devices/components/DeviceForm/index.tsx
similarity index 100%
rename from fems-app/src/app/(equipment)/devices/components/DeviceForm/index.tsx
rename to plm-app/src/app/(equipment)/devices/components/DeviceForm/index.tsx
diff --git a/fems-app/src/app/(equipment)/devices/components/DeviceForm/schema.ts b/plm-app/src/app/(equipment)/devices/components/DeviceForm/schema.ts
similarity index 100%
rename from fems-app/src/app/(equipment)/devices/components/DeviceForm/schema.ts
rename to plm-app/src/app/(equipment)/devices/components/DeviceForm/schema.ts
diff --git a/fems-app/src/app/(equipment)/devices/components/DeviceForm/useDeviceForm.ts b/plm-app/src/app/(equipment)/devices/components/DeviceForm/useDeviceForm.ts
similarity index 100%
rename from fems-app/src/app/(equipment)/devices/components/DeviceForm/useDeviceForm.ts
rename to plm-app/src/app/(equipment)/devices/components/DeviceForm/useDeviceForm.ts
diff --git a/fems-app/src/app/(equipment)/devices/new/layout.tsx b/plm-app/src/app/(equipment)/devices/new/layout.tsx
similarity index 100%
rename from fems-app/src/app/(equipment)/devices/new/layout.tsx
rename to plm-app/src/app/(equipment)/devices/new/layout.tsx
diff --git a/fems-app/src/app/(equipment)/devices/new/page.tsx b/plm-app/src/app/(equipment)/devices/new/page.tsx
similarity index 100%
rename from fems-app/src/app/(equipment)/devices/new/page.tsx
rename to plm-app/src/app/(equipment)/devices/new/page.tsx
diff --git a/fems-app/src/app/(equipment)/devices/page.tsx b/plm-app/src/app/(equipment)/devices/page.tsx
similarity index 100%
rename from fems-app/src/app/(equipment)/devices/page.tsx
rename to plm-app/src/app/(equipment)/devices/page.tsx
diff --git a/fems-app/src/app/(equipment)/inventory/[mode]/components/EquipmentForm.tsx b/plm-app/src/app/(equipment)/inventory/[mode]/components/EquipmentForm.tsx
similarity index 100%
rename from fems-app/src/app/(equipment)/inventory/[mode]/components/EquipmentForm.tsx
rename to plm-app/src/app/(equipment)/inventory/[mode]/components/EquipmentForm.tsx
diff --git a/fems-app/src/app/(equipment)/inventory/[mode]/page.tsx b/plm-app/src/app/(equipment)/inventory/[mode]/page.tsx
similarity index 100%
rename from fems-app/src/app/(equipment)/inventory/[mode]/page.tsx
rename to plm-app/src/app/(equipment)/inventory/[mode]/page.tsx
diff --git a/fems-app/src/app/(equipment)/inventory/detail/[id]/components/EquipmentFiles.tsx b/plm-app/src/app/(equipment)/inventory/detail/[id]/components/EquipmentFiles.tsx
similarity index 100%
rename from fems-app/src/app/(equipment)/inventory/detail/[id]/components/EquipmentFiles.tsx
rename to plm-app/src/app/(equipment)/inventory/detail/[id]/components/EquipmentFiles.tsx
diff --git a/fems-app/src/app/(equipment)/inventory/detail/[id]/page.tsx b/plm-app/src/app/(equipment)/inventory/detail/[id]/page.tsx
similarity index 100%
rename from fems-app/src/app/(equipment)/inventory/detail/[id]/page.tsx
rename to plm-app/src/app/(equipment)/inventory/detail/[id]/page.tsx
diff --git a/fems-app/src/app/(equipment)/inventory/page.tsx b/plm-app/src/app/(equipment)/inventory/page.tsx
similarity index 100%
rename from fems-app/src/app/(equipment)/inventory/page.tsx
rename to plm-app/src/app/(equipment)/inventory/page.tsx
diff --git a/fems-app/src/app/(equipment)/layout.tsx b/plm-app/src/app/(equipment)/layout.tsx
similarity index 100%
rename from fems-app/src/app/(equipment)/layout.tsx
rename to plm-app/src/app/(equipment)/layout.tsx
diff --git a/fems-app/src/app/(equipment)/maintenance/[mode]/components/MaintenanceForm.tsx b/plm-app/src/app/(equipment)/maintenance/[mode]/components/MaintenanceForm.tsx
similarity index 100%
rename from fems-app/src/app/(equipment)/maintenance/[mode]/components/MaintenanceForm.tsx
rename to plm-app/src/app/(equipment)/maintenance/[mode]/components/MaintenanceForm.tsx
diff --git a/fems-app/src/app/(equipment)/maintenance/[mode]/page.tsx b/plm-app/src/app/(equipment)/maintenance/[mode]/page.tsx
similarity index 100%
rename from fems-app/src/app/(equipment)/maintenance/[mode]/page.tsx
rename to plm-app/src/app/(equipment)/maintenance/[mode]/page.tsx
diff --git a/fems-app/src/app/(equipment)/maintenance/detail/[id]/components/MaintenanceFiles.tsx b/plm-app/src/app/(equipment)/maintenance/detail/[id]/components/MaintenanceFiles.tsx
similarity index 100%
rename from fems-app/src/app/(equipment)/maintenance/detail/[id]/components/MaintenanceFiles.tsx
rename to plm-app/src/app/(equipment)/maintenance/detail/[id]/components/MaintenanceFiles.tsx
diff --git a/fems-app/src/app/(equipment)/maintenance/detail/[id]/page.tsx b/plm-app/src/app/(equipment)/maintenance/detail/[id]/page.tsx
similarity index 100%
rename from fems-app/src/app/(equipment)/maintenance/detail/[id]/page.tsx
rename to plm-app/src/app/(equipment)/maintenance/detail/[id]/page.tsx
diff --git a/fems-app/src/app/(equipment)/maintenance/page.tsx b/plm-app/src/app/(equipment)/maintenance/page.tsx
similarity index 100%
rename from fems-app/src/app/(equipment)/maintenance/page.tsx
rename to plm-app/src/app/(equipment)/maintenance/page.tsx
diff --git a/fems-app/src/app/(equipment)/monitoring/page.tsx b/plm-app/src/app/(equipment)/monitoring/page.tsx
similarity index 100%
rename from fems-app/src/app/(equipment)/monitoring/page.tsx
rename to plm-app/src/app/(equipment)/monitoring/page.tsx
diff --git a/fems-app/src/app/(equipment)/parts/components/PartsDetailDialog.tsx b/plm-app/src/app/(equipment)/parts/components/PartsDetailDialog.tsx
similarity index 100%
rename from fems-app/src/app/(equipment)/parts/components/PartsDetailDialog.tsx
rename to plm-app/src/app/(equipment)/parts/components/PartsDetailDialog.tsx
diff --git a/fems-app/src/app/(equipment)/parts/components/PartsForm.tsx b/plm-app/src/app/(equipment)/parts/components/PartsForm.tsx
similarity index 100%
rename from fems-app/src/app/(equipment)/parts/components/PartsForm.tsx
rename to plm-app/src/app/(equipment)/parts/components/PartsForm.tsx
diff --git a/fems-app/src/app/(equipment)/parts/page.tsx b/plm-app/src/app/(equipment)/parts/page.tsx
similarity index 100%
rename from fems-app/src/app/(equipment)/parts/page.tsx
rename to plm-app/src/app/(equipment)/parts/page.tsx
diff --git a/fems-app/src/app/(equipment)/personnel/components/PersonnelDetailDialog.tsx b/plm-app/src/app/(equipment)/personnel/components/PersonnelDetailDialog.tsx
similarity index 100%
rename from fems-app/src/app/(equipment)/personnel/components/PersonnelDetailDialog.tsx
rename to plm-app/src/app/(equipment)/personnel/components/PersonnelDetailDialog.tsx
diff --git a/fems-app/src/app/(equipment)/personnel/components/PersonnelForm.tsx b/plm-app/src/app/(equipment)/personnel/components/PersonnelForm.tsx
similarity index 100%
rename from fems-app/src/app/(equipment)/personnel/components/PersonnelForm.tsx
rename to plm-app/src/app/(equipment)/personnel/components/PersonnelForm.tsx
diff --git a/fems-app/src/app/(equipment)/personnel/page.tsx b/plm-app/src/app/(equipment)/personnel/page.tsx
similarity index 100%
rename from fems-app/src/app/(equipment)/personnel/page.tsx
rename to plm-app/src/app/(equipment)/personnel/page.tsx
diff --git a/fems-app/src/app/(general)/dashboard/costs/page.tsx b/plm-app/src/app/(general)/dashboard/costs/page.tsx
similarity index 100%
rename from fems-app/src/app/(general)/dashboard/costs/page.tsx
rename to plm-app/src/app/(general)/dashboard/costs/page.tsx
diff --git a/fems-app/src/app/(general)/dashboard/kpi/page.tsx b/plm-app/src/app/(general)/dashboard/kpi/page.tsx
similarity index 100%
rename from fems-app/src/app/(general)/dashboard/kpi/page.tsx
rename to plm-app/src/app/(general)/dashboard/kpi/page.tsx
diff --git a/fems-app/src/app/(general)/dashboard/overview/page.tsx b/plm-app/src/app/(general)/dashboard/overview/page.tsx
similarity index 100%
rename from fems-app/src/app/(general)/dashboard/overview/page.tsx
rename to plm-app/src/app/(general)/dashboard/overview/page.tsx
diff --git a/fems-app/src/app/(general)/layout.tsx b/plm-app/src/app/(general)/layout.tsx
similarity index 100%
rename from fems-app/src/app/(general)/layout.tsx
rename to plm-app/src/app/(general)/layout.tsx
diff --git a/fems-app/src/app/(general)/settings/page.tsx b/plm-app/src/app/(general)/settings/page.tsx
similarity index 100%
rename from fems-app/src/app/(general)/settings/page.tsx
rename to plm-app/src/app/(general)/settings/page.tsx
diff --git a/fems-app/src/app/(monitoring)/electricity/page.tsx b/plm-app/src/app/(monitoring)/electricity/page.tsx
similarity index 100%
rename from fems-app/src/app/(monitoring)/electricity/page.tsx
rename to plm-app/src/app/(monitoring)/electricity/page.tsx
diff --git a/fems-app/src/app/(monitoring)/gas/page.tsx b/plm-app/src/app/(monitoring)/gas/page.tsx
similarity index 100%
rename from fems-app/src/app/(monitoring)/gas/page.tsx
rename to plm-app/src/app/(monitoring)/gas/page.tsx
diff --git a/fems-app/src/app/(monitoring)/layout.tsx b/plm-app/src/app/(monitoring)/layout.tsx
similarity index 100%
rename from fems-app/src/app/(monitoring)/layout.tsx
rename to plm-app/src/app/(monitoring)/layout.tsx
diff --git a/fems-app/src/app/(monitoring)/steam/page.tsx b/plm-app/src/app/(monitoring)/steam/page.tsx
similarity index 100%
rename from fems-app/src/app/(monitoring)/steam/page.tsx
rename to plm-app/src/app/(monitoring)/steam/page.tsx
diff --git a/fems-app/src/app/(monitoring)/water/page.tsx b/plm-app/src/app/(monitoring)/water/page.tsx
similarity index 100%
rename from fems-app/src/app/(monitoring)/water/page.tsx
rename to plm-app/src/app/(monitoring)/water/page.tsx
diff --git a/fems-app/src/app/(planning)/forecast/page.tsx b/plm-app/src/app/(planning)/forecast/page.tsx
similarity index 100%
rename from fems-app/src/app/(planning)/forecast/page.tsx
rename to plm-app/src/app/(planning)/forecast/page.tsx
diff --git a/fems-app/src/app/(planning)/layout.tsx b/plm-app/src/app/(planning)/layout.tsx
similarity index 100%
rename from fems-app/src/app/(planning)/layout.tsx
rename to plm-app/src/app/(planning)/layout.tsx
diff --git a/fems-app/src/app/(planning)/optimization/page.tsx b/plm-app/src/app/(planning)/optimization/page.tsx
similarity index 100%
rename from fems-app/src/app/(planning)/optimization/page.tsx
rename to plm-app/src/app/(planning)/optimization/page.tsx
diff --git a/fems-app/src/app/(planning)/targets/page.tsx b/plm-app/src/app/(planning)/targets/page.tsx
similarity index 100%
rename from fems-app/src/app/(planning)/targets/page.tsx
rename to plm-app/src/app/(planning)/targets/page.tsx
diff --git a/fems-app/src/app/(support)/community/forum/page.tsx b/plm-app/src/app/(support)/community/forum/page.tsx
similarity index 100%
rename from fems-app/src/app/(support)/community/forum/page.tsx
rename to plm-app/src/app/(support)/community/forum/page.tsx
diff --git a/fems-app/src/app/(support)/community/news/page.tsx b/plm-app/src/app/(support)/community/news/page.tsx
similarity index 100%
rename from fems-app/src/app/(support)/community/news/page.tsx
rename to plm-app/src/app/(support)/community/news/page.tsx
diff --git a/fems-app/src/app/(support)/contact/page.tsx b/plm-app/src/app/(support)/contact/page.tsx
similarity index 100%
rename from fems-app/src/app/(support)/contact/page.tsx
rename to plm-app/src/app/(support)/contact/page.tsx
diff --git a/fems-app/src/app/(support)/faq/page.tsx b/plm-app/src/app/(support)/faq/page.tsx
similarity index 100%
rename from fems-app/src/app/(support)/faq/page.tsx
rename to plm-app/src/app/(support)/faq/page.tsx
diff --git a/fems-app/src/app/(support)/layout.tsx b/plm-app/src/app/(support)/layout.tsx
similarity index 100%
rename from fems-app/src/app/(support)/layout.tsx
rename to plm-app/src/app/(support)/layout.tsx
diff --git a/fems-app/src/app/(support)/manual/page.tsx b/plm-app/src/app/(support)/manual/page.tsx
similarity index 100%
rename from fems-app/src/app/(support)/manual/page.tsx
rename to plm-app/src/app/(support)/manual/page.tsx
diff --git a/fems-app/src/app/favicon.ico b/plm-app/src/app/favicon.ico
similarity index 100%
rename from fems-app/src/app/favicon.ico
rename to plm-app/src/app/favicon.ico
diff --git a/fems-app/src/app/fonts/GeistMonoVF.woff b/plm-app/src/app/fonts/GeistMonoVF.woff
similarity index 100%
rename from fems-app/src/app/fonts/GeistMonoVF.woff
rename to plm-app/src/app/fonts/GeistMonoVF.woff
diff --git a/fems-app/src/app/fonts/GeistVF.woff b/plm-app/src/app/fonts/GeistVF.woff
similarity index 100%
rename from fems-app/src/app/fonts/GeistVF.woff
rename to plm-app/src/app/fonts/GeistVF.woff
diff --git a/fems-app/src/app/globals.css b/plm-app/src/app/globals.css
similarity index 100%
rename from fems-app/src/app/globals.css
rename to plm-app/src/app/globals.css
diff --git a/fems-app/src/app/layout.tsx b/plm-app/src/app/layout.tsx
similarity index 100%
rename from fems-app/src/app/layout.tsx
rename to plm-app/src/app/layout.tsx
diff --git a/fems-app/src/app/page.tsx b/plm-app/src/app/page.tsx
similarity index 100%
rename from fems-app/src/app/page.tsx
rename to plm-app/src/app/page.tsx
diff --git a/fems-app/src/components/auth/AdminGuard.tsx b/plm-app/src/components/auth/AdminGuard.tsx
similarity index 100%
rename from fems-app/src/components/auth/AdminGuard.tsx
rename to plm-app/src/components/auth/AdminGuard.tsx
diff --git a/fems-app/src/components/charts/CostChart.tsx b/plm-app/src/components/charts/CostChart.tsx
similarity index 100%
rename from fems-app/src/components/charts/CostChart.tsx
rename to plm-app/src/components/charts/CostChart.tsx
diff --git a/fems-app/src/components/charts/UsageChart.tsx b/plm-app/src/components/charts/UsageChart.tsx
similarity index 100%
rename from fems-app/src/components/charts/UsageChart.tsx
rename to plm-app/src/components/charts/UsageChart.tsx
diff --git a/fems-app/src/components/headers/UnifiedHeader.tsx b/plm-app/src/components/headers/UnifiedHeader.tsx
similarity index 100%
rename from fems-app/src/components/headers/UnifiedHeader.tsx
rename to plm-app/src/components/headers/UnifiedHeader.tsx
diff --git a/fems-app/src/components/layout/AdminSidebar.tsx b/plm-app/src/components/layout/AdminSidebar.tsx
similarity index 100%
rename from fems-app/src/components/layout/AdminSidebar.tsx
rename to plm-app/src/components/layout/AdminSidebar.tsx
diff --git a/plm-app/src/components/layout/SideNav.tsx b/plm-app/src/components/layout/SideNav.tsx
new file mode 100644
index 0000000..33cb7a3
--- /dev/null
+++ b/plm-app/src/components/layout/SideNav.tsx
@@ -0,0 +1,297 @@
+"use client";
+
+import Link from "next/link";
+import { usePathname } from "next/navigation";
+import { cn } from "@/lib/utils";
+import { usePermissions } from "@/hooks/usePermissions";
+import { useAuth } from "@/hooks/useAuth";
+import { useQuery } from "@tanstack/react-query";
+import { useAuthStore } from "@/stores/auth";
+import { api } from "@/lib/api";
+import {
+  Building2,
+  Box,
+  ChevronDown,
+  ChevronRight,
+  Calendar,
+  Gauge
+} from "lucide-react";
+import { useState } from "react";
+
+interface DBMenuItem {
+  id: string;
+  menu_type: string;
+  parent_id: string | null;
+  menu_name_kor: string;
+  menu_name_eng: string;
+  seq: string;
+  menu_url: string;
+  menu_desc?: string;
+  isActive: boolean;
+  children?: DBMenuItem[];
+}
+
+interface DBApiResponse {
+  success: boolean;
+  data: {
+    success: boolean;
+    data: DBMenuItem[];
+  }
+}
+
+interface ProcessedMenuItem {
+  id: string;
+  title: string;
+  href?: string;
+  icon: React.ComponentType<{ className?: string }>;
+  items?: ProcessedMenuItem[];
+}
+
+interface MenuItemProps {
+  item: ProcessedMenuItem;
+  depth: number;
+  openSections: { [key: string]: boolean };
+  onToggle: (id: string) => void;
+  pathname: string;
+}
+
+const MenuItemComponent: React.FC<MenuItemProps> = ({
+    item,
+    depth,
+    openSections,
+    onToggle,
+    pathname,
+  }) => {
+    const hasChildren = item.items && item.items.length > 0;
+    const isOpen = openSections[item.id];
+    const IconComponent = item.icon || Box;
+  
+    // 들여쓰기 계산
+    const getIndentClass = (depth: number) => {
+      if (depth === 0) return "px-3";
+      if (depth === 1) return "px-3 pl-7";
+      return "px-3 pl-11";
+    };
+  
+    const itemContent = (
+      <>
+        <IconComponent className="h-4 w-4 mr-2 flex-shrink-0 text-gray-600" />
+        <span className="flex-1 text-left text-sm">{item.title}</span>
+        {hasChildren && (
+          <div className="flex items-center">
+            {isOpen 
+              ? <ChevronDown className="h-4 w-4 text-gray-400" /> 
+              : <ChevronRight className="h-4 w-4 text-gray-400" />
+            }
+          </div>
+        )}
+      </>
+    );
+  
+    return (
+      <div>
+        {item.href ? (
+          <Link
+            href={item.href}
+            className={cn(
+              "flex items-center h-8",
+              getIndentClass(depth),
+              "transition-colors duration-150",
+              pathname === item.href
+                ? "bg-blue-50 text-blue-600"
+                : cn(
+                    "text-gray-700 hover:bg-gray-50",
+                    depth > 0 && "bg-gray-50/50"
+                  )
+            )}
+          >
+            {itemContent}
+          </Link>
+        ) : (
+          <button
+            onClick={() => onToggle(item.id)}
+            className={cn(
+              "w-full flex items-center h-8",
+              getIndentClass(depth),
+              "transition-colors duration-150",
+              isOpen 
+                ? "bg-blue-50 text-blue-600" 
+                : cn(
+                    "text-gray-700 hover:bg-gray-50",
+                    depth > 0 && "bg-gray-50/50"
+                  )
+            )}
+          >
+            {itemContent}
+          </button>
+        )}
+  
+        {hasChildren && isOpen && (
+          <div>
+            {item.items?.map((subItem) => (
+              <MenuItemComponent
+                key={subItem.id}
+                item={subItem}
+                depth={depth + 1}
+                openSections={openSections}
+                onToggle={onToggle}
+                pathname={pathname}
+              />
+            ))}
+          </div>
+        )}
+      </div>
+    );
+  };
+  
+function processMenuItems(responseData: DBApiResponse, role: string): ProcessedMenuItem[] {
+  if (!responseData?.data?.data) {
+    return [];
+  }
+
+  const menuData = responseData.data.data;
+
+  const buildMenuItem = (menu: DBMenuItem): ProcessedMenuItem => {
+    // 자식 메뉴들을 seq 기준으로 정렬
+    const sortedChildren = menu.children 
+      ? [...menu.children].sort((a, b) => {
+          const seqA = parseInt(a.seq) || 0;
+          const seqB = parseInt(b.seq) || 0;
+          return seqA - seqB;
+        })
+      : [];
+
+    // 재귀적으로 자식 메뉴들을 처리
+    const processedChildren = sortedChildren.map(buildMenuItem);
+
+    return {
+      id: menu.id,
+      title: menu.menu_name_kor,
+      href: menu.menu_url || undefined,
+      icon: Box,
+      ...(processedChildren.length > 0 && { items: processedChildren }),
+    };
+  };
+
+  // 최상위 메뉴들을 찾고 권한 체크 후 seq로 정렬
+  return menuData
+    .filter(menu => 
+      (menu.menu_type !== "0" || ["super_admin", "company_admin"].includes(role)) &&
+      !menu.parent_id
+    )
+    .sort((a, b) => {
+      const seqA = parseInt(a.seq) || 0;
+      const seqB = parseInt(b.seq) || 0;
+      return seqA - seqB;
+    })
+    .map(buildMenuItem);
+}
+
+export function SideNav() {
+  const pathname = usePathname();
+  const { user } = useAuth();
+  const { hasPermission } = usePermissions();
+  const { token } = useAuthStore();
+
+  const { data: dbMenuData } = useQuery<DBApiResponse>({
+    queryKey: ["menus"],
+    queryFn: async () => {
+      const response = await api.get("/api/v1/app/common/menu");
+      return response.data;
+    },
+    enabled: !!token,
+  });
+
+  const menuItems = dbMenuData ? processMenuItems(dbMenuData, user?.role || "") : [];
+
+  const [openSections, setOpenSections] = useState<{ [key: string]: boolean }>(
+    () => {
+      const findOpenSections = (items: ProcessedMenuItem[], path: string): string[] => {
+        const openSections: string[] = [];
+    
+        const findPath = (items: ProcessedMenuItem[]): boolean => {
+          for (const item of items) {
+            if (item.href === path) {
+              return true;
+            }
+            if (item.items) {
+              if (findPath(item.items)) {
+                openSections.push(item.id);
+                return true;
+              }
+            }
+          }
+          return false;
+        };
+    
+        findPath(items);
+        return openSections;
+      };
+
+      const openIds = findOpenSections(menuItems, pathname);
+      return openIds.reduce((acc, id) => ({ ...acc, [id]: true }), {});
+    }
+  );
+
+  const toggleSection = (id: string) => {
+    setOpenSections((prev) => ({
+      ...prev,
+      [id]: !prev[id],
+    }));
+  };
+
+  return (
+    <nav className="w-64 bg-white border-r border-gray-200 h-screen flex flex-col">
+      <div
+        className="sticky top-0 z-10 bg-white p-4 border-b border-gray-200 cursor-pointer"
+        onClick={() => (window.location.href = "/dashboard/overview")}
+      >
+        <div className="flex items-center space-x-2">
+          <Gauge className="h-5 w-5 text-blue-600" />
+          <h1 className="text-lg text-gray-900">PLM</h1>
+        </div>
+      </div>
+
+      <div className="flex-1 overflow-y-auto">
+        {menuItems.map((item) => (
+          <MenuItemComponent
+            key={item.id}
+            item={item}
+            depth={0}
+            openSections={openSections}
+            onToggle={toggleSection}
+            pathname={pathname}
+          />
+        ))}
+      </div>
+
+      <div className="mt-auto border-t border-gray-200 p-4">
+        <div className="space-y-3">
+          <div className="flex items-start space-x-3">
+            <Building2 className="h-4 w-4 text-gray-500 mt-0.5" />
+            <div className="flex-1">
+              <h3 className="text-sm text-gray-900">
+                {user?.companyName} - {user?.branchName}
+              </h3>
+              <p className="text-xs text-gray-500">
+                사업자번호: {user?.businessNumber || ""}
+              </p>
+            </div>
+          </div>
+
+          <div className="flex items-center space-x-3">
+            <Calendar className="h-4 w-4 text-gray-500" />
+            <div className="flex-1">
+              <p className="text-xs text-gray-500">계약 만료일:</p>
+              <p className="text-sm text-gray-900">
+                {user?.contractEndDate || "정보 없음"}
+              </p>
+            </div>
+          </div>
+        </div>
+      </div>
+    </nav>
+  );
+}
+
+export default SideNav;
\ No newline at end of file
diff --git a/fems-app/src/components/layout/TopNav.tsx b/plm-app/src/components/layout/TopNav.tsx
similarity index 100%
rename from fems-app/src/components/layout/TopNav.tsx
rename to plm-app/src/components/layout/TopNav.tsx
diff --git a/fems-app/src/components/ui/FilePreview.tsx b/plm-app/src/components/ui/FilePreview.tsx
similarity index 100%
rename from fems-app/src/components/ui/FilePreview.tsx
rename to plm-app/src/components/ui/FilePreview.tsx
diff --git a/fems-app/src/components/ui/alert-dialog.tsx b/plm-app/src/components/ui/alert-dialog.tsx
similarity index 100%
rename from fems-app/src/components/ui/alert-dialog.tsx
rename to plm-app/src/components/ui/alert-dialog.tsx
diff --git a/fems-app/src/components/ui/alert.tsx b/plm-app/src/components/ui/alert.tsx
similarity index 100%
rename from fems-app/src/components/ui/alert.tsx
rename to plm-app/src/components/ui/alert.tsx
diff --git a/fems-app/src/components/ui/badge.tsx b/plm-app/src/components/ui/badge.tsx
similarity index 100%
rename from fems-app/src/components/ui/badge.tsx
rename to plm-app/src/components/ui/badge.tsx
diff --git a/fems-app/src/components/ui/button.tsx b/plm-app/src/components/ui/button.tsx
similarity index 100%
rename from fems-app/src/components/ui/button.tsx
rename to plm-app/src/components/ui/button.tsx
diff --git a/fems-app/src/components/ui/calendar.tsx b/plm-app/src/components/ui/calendar.tsx
similarity index 100%
rename from fems-app/src/components/ui/calendar.tsx
rename to plm-app/src/components/ui/calendar.tsx
diff --git a/fems-app/src/components/ui/card.tsx b/plm-app/src/components/ui/card.tsx
similarity index 100%
rename from fems-app/src/components/ui/card.tsx
rename to plm-app/src/components/ui/card.tsx
diff --git a/fems-app/src/components/ui/checkbox.tsx b/plm-app/src/components/ui/checkbox.tsx
similarity index 100%
rename from fems-app/src/components/ui/checkbox.tsx
rename to plm-app/src/components/ui/checkbox.tsx
diff --git a/fems-app/src/components/ui/data-table.tsx b/plm-app/src/components/ui/data-table.tsx
similarity index 100%
rename from fems-app/src/components/ui/data-table.tsx
rename to plm-app/src/components/ui/data-table.tsx
diff --git a/fems-app/src/components/ui/date-range-picker.tsx b/plm-app/src/components/ui/date-range-picker.tsx
similarity index 100%
rename from fems-app/src/components/ui/date-range-picker.tsx
rename to plm-app/src/components/ui/date-range-picker.tsx
diff --git a/fems-app/src/components/ui/dialog.tsx b/plm-app/src/components/ui/dialog.tsx
similarity index 100%
rename from fems-app/src/components/ui/dialog.tsx
rename to plm-app/src/components/ui/dialog.tsx
diff --git a/fems-app/src/components/ui/dropdown-menu.tsx b/plm-app/src/components/ui/dropdown-menu.tsx
similarity index 100%
rename from fems-app/src/components/ui/dropdown-menu.tsx
rename to plm-app/src/components/ui/dropdown-menu.tsx
diff --git a/fems-app/src/components/ui/file-uploader.tsx b/plm-app/src/components/ui/file-uploader.tsx
similarity index 100%
rename from fems-app/src/components/ui/file-uploader.tsx
rename to plm-app/src/components/ui/file-uploader.tsx
diff --git a/fems-app/src/components/ui/form.tsx b/plm-app/src/components/ui/form.tsx
similarity index 100%
rename from fems-app/src/components/ui/form.tsx
rename to plm-app/src/components/ui/form.tsx
diff --git a/fems-app/src/components/ui/input.tsx b/plm-app/src/components/ui/input.tsx
similarity index 100%
rename from fems-app/src/components/ui/input.tsx
rename to plm-app/src/components/ui/input.tsx
diff --git a/fems-app/src/components/ui/label.tsx b/plm-app/src/components/ui/label.tsx
similarity index 100%
rename from fems-app/src/components/ui/label.tsx
rename to plm-app/src/components/ui/label.tsx
diff --git a/fems-app/src/components/ui/pagination.tsx b/plm-app/src/components/ui/pagination.tsx
similarity index 100%
rename from fems-app/src/components/ui/pagination.tsx
rename to plm-app/src/components/ui/pagination.tsx
diff --git a/fems-app/src/components/ui/popover.tsx b/plm-app/src/components/ui/popover.tsx
similarity index 100%
rename from fems-app/src/components/ui/popover.tsx
rename to plm-app/src/components/ui/popover.tsx
diff --git a/fems-app/src/components/ui/select.tsx b/plm-app/src/components/ui/select.tsx
similarity index 100%
rename from fems-app/src/components/ui/select.tsx
rename to plm-app/src/components/ui/select.tsx
diff --git a/fems-app/src/components/ui/separator.tsx b/plm-app/src/components/ui/separator.tsx
similarity index 100%
rename from fems-app/src/components/ui/separator.tsx
rename to plm-app/src/components/ui/separator.tsx
diff --git a/fems-app/src/components/ui/skeleton.tsx b/plm-app/src/components/ui/skeleton.tsx
similarity index 100%
rename from fems-app/src/components/ui/skeleton.tsx
rename to plm-app/src/components/ui/skeleton.tsx
diff --git a/fems-app/src/components/ui/switch.tsx b/plm-app/src/components/ui/switch.tsx
similarity index 100%
rename from fems-app/src/components/ui/switch.tsx
rename to plm-app/src/components/ui/switch.tsx
diff --git a/fems-app/src/components/ui/table.tsx b/plm-app/src/components/ui/table.tsx
similarity index 100%
rename from fems-app/src/components/ui/table.tsx
rename to plm-app/src/components/ui/table.tsx
diff --git a/fems-app/src/components/ui/tabs.tsx b/plm-app/src/components/ui/tabs.tsx
similarity index 100%
rename from fems-app/src/components/ui/tabs.tsx
rename to plm-app/src/components/ui/tabs.tsx
diff --git a/fems-app/src/components/ui/textarea.tsx b/plm-app/src/components/ui/textarea.tsx
similarity index 100%
rename from fems-app/src/components/ui/textarea.tsx
rename to plm-app/src/components/ui/textarea.tsx
diff --git a/fems-app/src/components/ui/toast.tsx b/plm-app/src/components/ui/toast.tsx
similarity index 100%
rename from fems-app/src/components/ui/toast.tsx
rename to plm-app/src/components/ui/toast.tsx
diff --git a/fems-app/src/components/ui/toaster.tsx b/plm-app/src/components/ui/toaster.tsx
similarity index 100%
rename from fems-app/src/components/ui/toaster.tsx
rename to plm-app/src/components/ui/toaster.tsx
diff --git a/fems-app/src/config/permissions.ts b/plm-app/src/config/permissions.ts
similarity index 100%
rename from fems-app/src/config/permissions.ts
rename to plm-app/src/config/permissions.ts
diff --git a/fems-app/src/hooks/use-toast.ts b/plm-app/src/hooks/use-toast.ts
similarity index 100%
rename from fems-app/src/hooks/use-toast.ts
rename to plm-app/src/hooks/use-toast.ts
diff --git a/fems-app/src/hooks/useAuth.ts b/plm-app/src/hooks/useAuth.ts
similarity index 100%
rename from fems-app/src/hooks/useAuth.ts
rename to plm-app/src/hooks/useAuth.ts
diff --git a/fems-app/src/hooks/usePermissions.ts b/plm-app/src/hooks/usePermissions.ts
similarity index 100%
rename from fems-app/src/hooks/usePermissions.ts
rename to plm-app/src/hooks/usePermissions.ts
diff --git a/fems-app/src/lib/api.ts b/plm-app/src/lib/api.ts
similarity index 100%
rename from fems-app/src/lib/api.ts
rename to plm-app/src/lib/api.ts
diff --git a/fems-app/src/lib/jwt.ts b/plm-app/src/lib/jwt.ts
similarity index 100%
rename from fems-app/src/lib/jwt.ts
rename to plm-app/src/lib/jwt.ts
diff --git a/fems-app/src/lib/utils.ts b/plm-app/src/lib/utils.ts
similarity index 100%
rename from fems-app/src/lib/utils.ts
rename to plm-app/src/lib/utils.ts
diff --git a/fems-app/src/middleware.tsx b/plm-app/src/middleware.tsx
similarity index 100%
rename from fems-app/src/middleware.tsx
rename to plm-app/src/middleware.tsx
diff --git a/fems-app/src/providers.tsx b/plm-app/src/providers.tsx
similarity index 100%
rename from fems-app/src/providers.tsx
rename to plm-app/src/providers.tsx
diff --git a/fems-app/src/stores/auth.ts b/plm-app/src/stores/auth.ts
similarity index 100%
rename from fems-app/src/stores/auth.ts
rename to plm-app/src/stores/auth.ts
diff --git a/fems-app/src/types/auth.ts b/plm-app/src/types/auth.ts
similarity index 100%
rename from fems-app/src/types/auth.ts
rename to plm-app/src/types/auth.ts
diff --git a/fems-app/src/types/company.ts b/plm-app/src/types/company.ts
similarity index 100%
rename from fems-app/src/types/company.ts
rename to plm-app/src/types/company.ts
diff --git a/fems-app/src/types/dashboard.ts b/plm-app/src/types/dashboard.ts
similarity index 100%
rename from fems-app/src/types/dashboard.ts
rename to plm-app/src/types/dashboard.ts
diff --git a/fems-app/src/types/department.ts b/plm-app/src/types/department.ts
similarity index 100%
rename from fems-app/src/types/department.ts
rename to plm-app/src/types/department.ts
diff --git a/fems-app/src/types/device.ts b/plm-app/src/types/device.ts
similarity index 100%
rename from fems-app/src/types/device.ts
rename to plm-app/src/types/device.ts
diff --git a/fems-app/src/types/equipment.ts b/plm-app/src/types/equipment.ts
similarity index 100%
rename from fems-app/src/types/equipment.ts
rename to plm-app/src/types/equipment.ts
diff --git a/fems-app/src/types/index.ts b/plm-app/src/types/index.ts
similarity index 100%
rename from fems-app/src/types/index.ts
rename to plm-app/src/types/index.ts
diff --git a/fems-app/src/types/maintenance.ts b/plm-app/src/types/maintenance.ts
similarity index 100%
rename from fems-app/src/types/maintenance.ts
rename to plm-app/src/types/maintenance.ts
diff --git a/fems-app/src/types/menu.ts b/plm-app/src/types/menu.ts
similarity index 100%
rename from fems-app/src/types/menu.ts
rename to plm-app/src/types/menu.ts
diff --git a/fems-app/src/types/user.ts b/plm-app/src/types/user.ts
similarity index 100%
rename from fems-app/src/types/user.ts
rename to plm-app/src/types/user.ts
diff --git a/fems-app/tailwind.config.ts b/plm-app/tailwind.config.ts
similarity index 100%
rename from fems-app/tailwind.config.ts
rename to plm-app/tailwind.config.ts
diff --git a/fems-app/tsconfig.json b/plm-app/tsconfig.json
similarity index 100%
rename from fems-app/tsconfig.json
rename to plm-app/tsconfig.json
diff --git a/fems-app/yarn.lock b/plm-app/yarn.lock
similarity index 100%
rename from fems-app/yarn.lock
rename to plm-app/yarn.lock
diff --git a/fems-mqtt/Dockerfile b/plm-mqtt/Dockerfile
similarity index 100%
rename from fems-mqtt/Dockerfile
rename to plm-mqtt/Dockerfile
diff --git a/fems-mqtt/config/acl b/plm-mqtt/config/acl
similarity index 100%
rename from fems-mqtt/config/acl
rename to plm-mqtt/config/acl
diff --git a/fems-mqtt/config/mosquitto.conf b/plm-mqtt/config/mosquitto.conf
similarity index 100%
rename from fems-mqtt/config/mosquitto.conf
rename to plm-mqtt/config/mosquitto.conf
diff --git a/fems-mqtt/data/mosquitto.db b/plm-mqtt/data/mosquitto.db
similarity index 100%
rename from fems-mqtt/data/mosquitto.db
rename to plm-mqtt/data/mosquitto.db
diff --git a/fems-mqtt/data/passwd b/plm-mqtt/data/passwd
similarity index 100%
rename from fems-mqtt/data/passwd
rename to plm-mqtt/data/passwd
diff --git a/fems-mqtt/log/mosquitto.log b/plm-mqtt/log/mosquitto.log
old mode 100755
new mode 100644
similarity index 100%
rename from fems-mqtt/log/mosquitto.log
rename to plm-mqtt/log/mosquitto.log
diff --git a/fems-postgres/pg_hba.conf b/plm-postgres/pg_hba.conf
similarity index 100%
rename from fems-postgres/pg_hba.conf
rename to plm-postgres/pg_hba.conf
diff --git a/fems-postgres/postgresql.conf b/plm-postgres/postgresql.conf
similarity index 100%
rename from fems-postgres/postgresql.conf
rename to plm-postgres/postgresql.conf
diff --git a/fems-realtime-api/.gitignore b/plm-realtime-api/.gitignore
similarity index 100%
rename from fems-realtime-api/.gitignore
rename to plm-realtime-api/.gitignore
diff --git a/fems-realtime-api/Dockerfile b/plm-realtime-api/Dockerfile
similarity index 100%
rename from fems-realtime-api/Dockerfile
rename to plm-realtime-api/Dockerfile
diff --git a/fems-realtime-api/package.json b/plm-realtime-api/package.json
similarity index 100%
rename from fems-realtime-api/package.json
rename to plm-realtime-api/package.json
diff --git a/fems-realtime-api/src/app.js b/plm-realtime-api/src/app.js
similarity index 100%
rename from fems-realtime-api/src/app.js
rename to plm-realtime-api/src/app.js
diff --git a/fems-realtime-api/src/config/config.js b/plm-realtime-api/src/config/config.js
similarity index 100%
rename from fems-realtime-api/src/config/config.js
rename to plm-realtime-api/src/config/config.js
diff --git a/fems-realtime-api/src/config/database.js b/plm-realtime-api/src/config/database.js
similarity index 100%
rename from fems-realtime-api/src/config/database.js
rename to plm-realtime-api/src/config/database.js
diff --git a/fems-realtime-api/src/config/logger.js b/plm-realtime-api/src/config/logger.js
similarity index 100%
rename from fems-realtime-api/src/config/logger.js
rename to plm-realtime-api/src/config/logger.js
diff --git a/fems-realtime-api/src/controllers/data.controller.js b/plm-realtime-api/src/controllers/data.controller.js
similarity index 100%
rename from fems-realtime-api/src/controllers/data.controller.js
rename to plm-realtime-api/src/controllers/data.controller.js
diff --git a/fems-realtime-api/src/middleware/apiKey.middleware.js b/plm-realtime-api/src/middleware/apiKey.middleware.js
similarity index 100%
rename from fems-realtime-api/src/middleware/apiKey.middleware.js
rename to plm-realtime-api/src/middleware/apiKey.middleware.js
diff --git a/fems-realtime-api/src/models/SensorData.js b/plm-realtime-api/src/models/SensorData.js
similarity index 100%
rename from fems-realtime-api/src/models/SensorData.js
rename to plm-realtime-api/src/models/SensorData.js
diff --git a/fems-realtime-api/src/services/mainBackend.service.js b/plm-realtime-api/src/services/mainBackend.service.js
similarity index 100%
rename from fems-realtime-api/src/services/mainBackend.service.js
rename to plm-realtime-api/src/services/mainBackend.service.js
diff --git a/fems-realtime-api/src/services/mqtt.service.js b/plm-realtime-api/src/services/mqtt.service.js
similarity index 100%
rename from fems-realtime-api/src/services/mqtt.service.js
rename to plm-realtime-api/src/services/mqtt.service.js
diff --git a/fems-realtime-api/yarn.lock b/plm-realtime-api/yarn.lock
similarity index 100%
rename from fems-realtime-api/yarn.lock
rename to plm-realtime-api/yarn.lock
diff --git a/fems-timescaledb/Dockerfile b/plm-timescaledb/Dockerfile
similarity index 100%
rename from fems-timescaledb/Dockerfile
rename to plm-timescaledb/Dockerfile
diff --git a/fems-timescaledb/init-scripts/00-init-user.sh b/plm-timescaledb/init-scripts/00-init-user.sh
old mode 100755
new mode 100644
similarity index 100%
rename from fems-timescaledb/init-scripts/00-init-user.sh
rename to plm-timescaledb/init-scripts/00-init-user.sh
diff --git a/fems-timescaledb/pg_hba.conf b/plm-timescaledb/pg_hba.conf
similarity index 100%
rename from fems-timescaledb/pg_hba.conf
rename to plm-timescaledb/pg_hba.conf
diff --git a/fems-timescaledb/postgresql.conf b/plm-timescaledb/postgresql.conf
similarity index 100%
rename from fems-timescaledb/postgresql.conf
rename to plm-timescaledb/postgresql.conf
diff --git a/fems-timescaledb/yarn.lock b/plm-timescaledb/yarn.lock
similarity index 100%
rename from fems-timescaledb/yarn.lock
rename to plm-timescaledb/yarn.lock
diff --git a/windows_start-dev-full.bat b/windows_start-dev-full.bat
index ac20788..963698e 100644
--- a/windows_start-dev-full.bat
+++ b/windows_start-dev-full.bat
@@ -1,5 +1,5 @@
 :: Windows용 BAT 스크립트
-echo Starting FEMS Development Environment...
+echo Starting plm Development Environment...
 
 :: 환경 변수 파일 로드
 if exist .env.development (