diff --git a/15-multi-step-form/.scalafmt.conf b/15-multi-step-form/.scalafmt.conf
new file mode 100644
index 0000000..db004c6
--- /dev/null
+++ b/15-multi-step-form/.scalafmt.conf
@@ -0,0 +1,2 @@
+version = "3.7.3"
+runner.dialect = scala3
\ No newline at end of file
diff --git a/15-multi-step-form/src/main/resources/public/lalala.txt b/15-multi-step-form/src/main/resources/public/lalala.txt
new file mode 100644
index 0000000..47823e8
--- /dev/null
+++ b/15-multi-step-form/src/main/resources/public/lalala.txt
@@ -0,0 +1 @@
+hello from the resource file!
diff --git a/15-multi-step-form/src/main/resources/templates/index.html b/15-multi-step-form/src/main/resources/templates/index.html
new file mode 100644
index 0000000..38ad512
--- /dev/null
+++ b/15-multi-step-form/src/main/resources/templates/index.html
@@ -0,0 +1,33 @@
+
+
+
+
+
+ TEst
+
+
+
+
+
+
+
+
+
+
+
+ Hello!
+
+
+ into the template
+
+
+
+
+
+
diff --git a/15-multi-step-form/src/main/scala/multistepform/Main.scala b/15-multi-step-form/src/main/scala/multistepform/Main.scala
index ed1ef30..2aa6a06 100644
--- a/15-multi-step-form/src/main/scala/multistepform/Main.scala
+++ b/15-multi-step-form/src/main/scala/multistepform/Main.scala
@@ -10,6 +10,12 @@ object Main {
hostArg: String = "localhost"
): Unit = {
println(s"Will start server on ${hostArg}:${portArg}")
+ val server = new cask.Main {
+ override def allRoutes: Seq[cask.main.Routes] = Seq(Routes())
+ override def port: Int = portArg
+ override def host: String = hostArg
+ }
+ server.main(Array.empty)
}
def main(args: Array[String]): Unit = ParserForMethods(this).runOrExit(args)
diff --git a/15-multi-step-form/src/main/scala/multistepform/Routes.scala b/15-multi-step-form/src/main/scala/multistepform/Routes.scala
new file mode 100644
index 0000000..83c376c
--- /dev/null
+++ b/15-multi-step-form/src/main/scala/multistepform/Routes.scala
@@ -0,0 +1,31 @@
+package multistepform
+
+import org.thymeleaf.templateresolver.ClassLoaderTemplateResolver
+import org.thymeleaf.TemplateEngine
+import org.thymeleaf.context.Context
+
+case class Routes()(implicit cc: castor.Context, log: cask.Logger)
+ extends cask.Routes {
+ val templateResolver = new ClassLoaderTemplateResolver()
+ templateResolver.setPrefix("templates/");
+ templateResolver.setSuffix(".html")
+ templateResolver.setTemplateMode("HTML5")
+
+ val templateEngine = new TemplateEngine()
+ templateEngine.setTemplateResolver(templateResolver)
+
+ @cask.get("/")
+ def getIndex() = {
+ val context = new Context()
+ val indexPage = templateEngine.process("index", context)
+ cask.Response(
+ indexPage,
+ headers = Seq("Content-Type" -> "text/html;charset=UTF-8")
+ )
+ }
+
+ @cask.staticResources("/public")
+ def publicFiles() = "public"
+
+ initialize()
+}