diff --git a/server/.gitignore b/server/.gitignore
new file mode 100644
index 00000000000..d2c8ad3ba66
--- /dev/null
+++ b/server/.gitignore
@@ -0,0 +1,2 @@
+.idea/workspace.xml
+out
diff --git a/server/.idea/.name b/server/.idea/.name
new file mode 100644
index 00000000000..f083ce87fcb
--- /dev/null
+++ b/server/.idea/.name
@@ -0,0 +1 @@
+Server
\ No newline at end of file
diff --git a/server/.idea/compiler.xml b/server/.idea/compiler.xml
new file mode 100644
index 00000000000..96cc43efa6a
--- /dev/null
+++ b/server/.idea/compiler.xml
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/server/.idea/copyright/profiles_settings.xml b/server/.idea/copyright/profiles_settings.xml
new file mode 100644
index 00000000000..e7bedf3377d
--- /dev/null
+++ b/server/.idea/copyright/profiles_settings.xml
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/server/.idea/libraries/KotlinJavaRuntime.xml b/server/.idea/libraries/KotlinJavaRuntime.xml
new file mode 100644
index 00000000000..207fc74dd51
--- /dev/null
+++ b/server/.idea/libraries/KotlinJavaRuntime.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/server/.idea/libraries/netty_all_4_1_2_Final_sources.xml b/server/.idea/libraries/netty_all_4_1_2_Final_sources.xml
new file mode 100644
index 00000000000..bb3c6ba13b1
--- /dev/null
+++ b/server/.idea/libraries/netty_all_4_1_2_Final_sources.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/server/.idea/misc.xml b/server/.idea/misc.xml
new file mode 100644
index 00000000000..18d93cc08af
--- /dev/null
+++ b/server/.idea/misc.xml
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/server/.idea/modules.xml b/server/.idea/modules.xml
new file mode 100644
index 00000000000..3b4a6bb2039
--- /dev/null
+++ b/server/.idea/modules.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/server/carEmulator/carEmulator.iml b/server/carEmulator/carEmulator.iml
new file mode 100644
index 00000000000..245d3429faa
--- /dev/null
+++ b/server/carEmulator/carEmulator.iml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/server/carEmulator/src/Main.kt b/server/carEmulator/src/Main.kt
new file mode 100644
index 00000000000..bcb73dc4216
--- /dev/null
+++ b/server/carEmulator/src/Main.kt
@@ -0,0 +1,7 @@
+/**
+ * Created by user on 7/6/16.
+ */
+
+fun main(args: Array) {
+ println("test")
+}
diff --git a/server/lib/kotlin-reflect.jar b/server/lib/kotlin-reflect.jar
new file mode 100644
index 00000000000..578ee08e778
Binary files /dev/null and b/server/lib/kotlin-reflect.jar differ
diff --git a/server/lib/kotlin-runtime-sources.jar b/server/lib/kotlin-runtime-sources.jar
new file mode 100644
index 00000000000..5a6848d4c9e
Binary files /dev/null and b/server/lib/kotlin-runtime-sources.jar differ
diff --git a/server/lib/kotlin-runtime.jar b/server/lib/kotlin-runtime.jar
new file mode 100644
index 00000000000..00e4eb00dd6
Binary files /dev/null and b/server/lib/kotlin-runtime.jar differ
diff --git a/server/lib/netty-all-4.1.2.Final-sources.jar b/server/lib/netty-all-4.1.2.Final-sources.jar
new file mode 100644
index 00000000000..4c74f90cee0
Binary files /dev/null and b/server/lib/netty-all-4.1.2.Final-sources.jar differ
diff --git a/server/lib/netty-all-4.1.2.Final.jar b/server/lib/netty-all-4.1.2.Final.jar
new file mode 100644
index 00000000000..27ba26d09e1
Binary files /dev/null and b/server/lib/netty-all-4.1.2.Final.jar differ
diff --git a/server/server.iml b/server/server.iml
new file mode 100644
index 00000000000..dc2bad21409
--- /dev/null
+++ b/server/server.iml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/server/src/Main.kt b/server/src/Main.kt
new file mode 100644
index 00000000000..231a438eb33
--- /dev/null
+++ b/server/src/Main.kt
@@ -0,0 +1,14 @@
+import Server.Server
+
+/**
+ * Created by user on 7/6/16.
+ */
+
+val port:Int = 7925;
+
+fun main(args: Array) {
+ println("server started")
+ val server = Server(port)
+ val serverThread = Thread(server);
+ serverThread.start()
+}
\ No newline at end of file
diff --git a/server/src/Server/Server.kt b/server/src/Server/Server.kt
new file mode 100644
index 00000000000..4ca1c8cefec
--- /dev/null
+++ b/server/src/Server/Server.kt
@@ -0,0 +1,42 @@
+package Server
+
+import io.netty.bootstrap.ServerBootstrap
+import io.netty.channel.nio.NioEventLoopGroup
+import io.netty.channel.socket.nio.NioServerSocketChannel
+import io.netty.handler.logging.LogLevel
+import io.netty.handler.logging.LoggingHandler
+
+/**
+ * Created by user on 7/6/16.
+ */
+class Server : Runnable {
+
+ val port: Int;
+
+ constructor(port: Int) {
+ this.port = port
+ }
+
+ override fun run() {
+ val bossGroup = NioEventLoopGroup(1)
+ val workerGroup = NioEventLoopGroup()
+ val b = ServerBootstrap()
+ b.group(bossGroup, workerGroup)
+ .channel(NioServerSocketChannel().javaClass)
+ .handler(LoggingHandler(LogLevel.INFO))
+ .childHandler(ServerInitializer())
+
+ try {
+ val channel = b.bind(port).sync().channel()
+ channel.closeFuture().sync()
+ } catch (e: InterruptedException) {
+ e.printStackTrace()
+ //todo
+ } finally {
+ bossGroup.shutdownGracefully()
+ workerGroup.shutdownGracefully()
+ }
+
+ }
+
+}
\ No newline at end of file
diff --git a/server/src/Server/ServerHandler.kt b/server/src/Server/ServerHandler.kt
new file mode 100644
index 00000000000..aa97ad6398d
--- /dev/null
+++ b/server/src/Server/ServerHandler.kt
@@ -0,0 +1,50 @@
+package Server
+
+import io.netty.channel.ChannelHandlerContext
+import io.netty.channel.SimpleChannelInboundHandler
+import io.netty.handler.codec.http.*
+import io.netty.util.CharsetUtil
+import java.io.File
+import java.text.SimpleDateFormat
+import java.util.*
+
+/**
+ * Created by user on 7/6/16.
+ */
+class ServerHandler : SimpleChannelInboundHandler() {
+
+ val sb: StringBuilder = StringBuilder();
+
+ object static {
+ val stf = SimpleDateFormat("HH-mm-ss");
+ }
+
+ override fun channelReadComplete(ctx: ChannelHandlerContext) {
+
+ val dateTime = ServerHandler.static.stf.format(Date(System.currentTimeMillis()))
+ val fileName: String = "request_$dateTime.log";
+ val response = DefaultFullHttpResponse(HttpVersion.HTTP_1_1, HttpResponseStatus.OK)
+ response.headers().setInt(HttpHeaderNames.CONTENT_LENGTH, response.content().readableBytes())
+ ctx.writeAndFlush(response)
+ writeToFile(sb.toString(), fileName);
+ }
+
+
+ override fun channelRead0(ctx: ChannelHandlerContext, msg: Any) {
+ if (msg is HttpRequest) {
+ sb.append("" + msg.method() + " " + msg.protocolVersion() + "\n")
+ for (header in msg.headers()) {
+ sb.append(header.key + ":" + header.value + "\n")
+ }
+ }
+ if (msg is DefaultHttpContent) {
+ sb.append(msg.content().toString(CharsetUtil.UTF_8))
+ }
+ }
+
+ fun writeToFile(toFile: String, fileName: String) {
+ val f = File(fileName)
+ if (!f.exists()) f.createNewFile()
+ f.writeText(toFile);
+ }
+}
\ No newline at end of file
diff --git a/server/src/Server/ServerInitializer.kt b/server/src/Server/ServerInitializer.kt
new file mode 100644
index 00000000000..edd6d26b033
--- /dev/null
+++ b/server/src/Server/ServerInitializer.kt
@@ -0,0 +1,26 @@
+package Server
+
+import Server.ServerHandler
+import io.netty.channel.ChannelInitializer
+import io.netty.channel.ChannelPipeline
+import io.netty.channel.socket.SocketChannel
+import io.netty.handler.codec.http.HttpRequestDecoder
+import io.netty.handler.codec.http.HttpResponseEncoder
+
+/**
+ * Created by user on 7/6/16.
+ */
+class ServerInitializer : ChannelInitializer {
+
+ constructor() {
+
+ }
+
+ override fun initChannel(channel: SocketChannel) {
+ println("init")
+ val p: ChannelPipeline = channel.pipeline()
+ p.addLast(HttpRequestDecoder())
+ p.addLast(HttpResponseEncoder())
+ p.addLast(ServerHandler())
+ }
+}
\ No newline at end of file