add post,add redis in docker compose,add torrentutil test remove dockerfile, modify torrentutil

Change-Id: I8014d4994d0a09c2f28cfcf0f8d2a430372aaab5
diff --git a/src/main/resources/mapper/PostMapper.xml b/src/main/resources/mapper/PostMapper.xml
new file mode 100644
index 0000000..bc4debe
--- /dev/null
+++ b/src/main/resources/mapper/PostMapper.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="com.example.g8backend.mapper.PostMapper">
+    <select id="getPostsByUserId" resultType="com.example.g8backend.entity.Post">
+        SELECT * FROM posts WHERE user_id = #{userId}
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/src/main/resources/schema.sql b/src/main/resources/schema.sql
index 365f9e7..e88ff07 100644
--- a/src/main/resources/schema.sql
+++ b/src/main/resources/schema.sql
@@ -1,3 +1,6 @@
+CREATE DATABASE IF NOT EXISTS g8backend;
+USE g8backend;
+
 CREATE TABLE IF NOT EXISTS `users` (
   user_id INT AUTO_INCREMENT PRIMARY KEY,
   user_name VARCHAR(255) NOT NULL,
@@ -27,3 +30,21 @@
   FOREIGN KEY (passkey) REFERENCES users(passkey),
   PRIMARY KEY (passkey, info_hash, peer_id)
 );
+
+CREATE TABLE IF NOT EXISTS `posts` (
+    post_id INT AUTO_INCREMENT PRIMARY KEY,
+    user_id INT NOT NULL,
+    post_title VARCHAR(255) NOT NULL,
+    post_content TEXT NOT NULL,
+    post_type ENUM('resource', 'discussion') NOT NULL,
+    created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
+    FOREIGN KEY (user_id) REFERENCES users(user_id)
+);
+
+CREATE TABLE IF NOT EXISTS `post_likes` (
+    user_id INT NOT NULL,
+    post_id INT NOT NULL,
+    FOREIGN KEY (user_id) REFERENCES users(user_id),
+    FOREIGN KEY (post_id) REFERENCES posts(post_id),
+    PRIMARY KEY (user_id, post_id)
+);