diff --git a/pom.xml b/pom.xml
index 163ad53..113864c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -47,6 +47,47 @@
org.jetbrains.kotlin
kotlin-stdlib
+
+ jakarta.inject
+ jakarta.inject-api
+
+
+ org.springframework.boot
+ spring-boot-starter-data-jpa
+
+
+ org.postgresql
+ postgresql
+ runtime
+
+
+ org.springframework.boot
+ spring-boot-starter-security
+
+
+ com.hazelcast
+ hazelcast
+ 5.5.0
+
+
+ io.jsonwebtoken
+ jjwt-api
+ 0.11.5
+
+
+ io.jsonwebtoken
+ jjwt-impl
+ runtime
+ 0.11.5
+
+
+ io.jsonwebtoken
+ jjwt-jackson
+ runtime
+ 0.11.5
+
+
+
org.springframework.boot
diff --git a/readme.md b/readme.md
index e18b898..3a49ac1 100644
--- a/readme.md
+++ b/readme.md
@@ -1,59 +1,47 @@
-
-# Coded Academy: Student Submission Guidelines
-
-## Online Ordering Server
-
-## Getting Started
-
-### 1. Fork the Repository
-
-1. Click the "Fork" button at the top right of this repository.
-2. This will create a copy of the repository in your personal GitHub account.
-
-### 2. Clone Your Forked Repository
-
-### 3. Complete Your Assignment
-
-### 4. Commit Your Changes (Include Task Name in the comment)
-
-Example: "Online Ordering - Post an Order"
-
-### 5. Push Your Branch to Your Fork
-
-
-### 6. Submit a Pull Request (PR)
-
-
-## Best Practices
-
-- Write clean, readable code
-- Include comments explaining your logic
-- Test your code thoroughly
-- Follow the coding standards provided in class
-
-
-
-## Submission Checklist
-
-- [ ] Forked the repository
-- [ ] Completed all assignment requirements
-- [ ] Committed changes with descriptive messages
-- [ ] Pushed branch to your fork
-- [ ] Submitted a pull request
-
-## Need Help?
-
-If you encounter any issues or have questions:
-- Check the course materials
-- Consult the documentation
-- Ask your instructor or teaching assistants
-
-## Code of Conduct
-
-- Be respectful
-- Collaborate professionally
-- Maintain academic integrity
-
----
-
-Happy Coding! 🚀👩💻👨💻
+### project navi/info
+
+`src/main/kotlin/com.coded.spring.ordering` is where all the packages are
+
+`dtos` ←→ `controller` → `service` → `repository` → `entity`
+
+`controller` = entry point for http requests (receive requests, process data, determine response)
+- `GET`: retrieve data from a server
+- `POST`: send data to the server to create a new resource
+- `PUT`: update or replace an existing resource
+- `DELETE`: remove a resource from the server
+
+`service` = business logic (processes data, makes decisions, eg: save order)
+
+`repository` = database operations (handles communication with db: save, find, delete)
+
+`entity` = domain model (defines what your data is in the system: fields, relationships)
+
+`dto` = data transfer object (cleans request/response json bodies, to avoid returning entities)
+
+### services
+- welcome page
+- list all orders
+- create new order
+
+### progress
+#### ultimate goal is to catch up!!!!
+- [x] exercise 1: welcome
+ - [x] bonus: checked with `curl` command
+- [x] exercise 2: endpoint to `POST` order
+ - [x] bonus: add `createdAt` column and sort
+- [X] exercise 3: create + connect db
+ - [x] bonus: create `items` table and connect it to `orders`
+- [x] exercise 4: user authentication
+ - [x] bonus: password validation so people can't create a weak password
+- [ ] exercise 5: user profiles
+ - [ ] bonus:
+- [ ] exercise 6: unit testing
+ - [ ] bonus:
+- [ ] exercise 7: menu endpoint
+ - [ ] bonus:
+- [ ] exercise 8: configuration
+ - [ ] bonus:
+- [ ] exercise 9: setup swagger
+ - [ ] bonus:
+- [ ] exercise 10: refactor to micro services
+ - [ ] bonus:
\ No newline at end of file
diff --git a/src/main/kotlin/com/coded/spring/ordering/Application.kt b/src/main/kotlin/com/coded/spring/ordering/Application.kt
index 8554e49..fb02c06 100644
--- a/src/main/kotlin/com/coded/spring/ordering/Application.kt
+++ b/src/main/kotlin/com/coded/spring/ordering/Application.kt
@@ -8,4 +8,4 @@ class Application
fun main(args: Array) {
runApplication(*args)
-}
+}
\ No newline at end of file
diff --git a/src/main/kotlin/com/coded/spring/ordering/CustomExceptions.kt b/src/main/kotlin/com/coded/spring/ordering/CustomExceptions.kt
new file mode 100644
index 0000000..85c87ca
--- /dev/null
+++ b/src/main/kotlin/com/coded/spring/ordering/CustomExceptions.kt
@@ -0,0 +1,7 @@
+package com.coded.spring.ordering
+
+open class OrderException(message: String) : RuntimeException(message)
+
+class UserIdNotFound(userId: Long): OrderException("User ID $userId not found.")
+class InvalidPasswordException(reason: String): OrderException("Invalid password: $reason")
+class UsernameAlreadyExistsException(): OrderException("Username already exists.")
\ No newline at end of file
diff --git a/src/main/kotlin/com/coded/spring/ordering/GlobalExceptionHandler.kt b/src/main/kotlin/com/coded/spring/ordering/GlobalExceptionHandler.kt
new file mode 100644
index 0000000..421729a
--- /dev/null
+++ b/src/main/kotlin/com/coded/spring/ordering/GlobalExceptionHandler.kt
@@ -0,0 +1,16 @@
+package com.coded.spring.ordering
+
+import org.springframework.http.HttpStatus
+import org.springframework.http.ResponseEntity
+import org.springframework.web.bind.annotation.*
+
+@RestControllerAdvice
+class GlobalExceptionHandler {
+
+ @ExceptionHandler(OrderException::class)
+ fun handleOrderingException(ex: OrderException): ResponseEntity