diff --git a/nodemon.json b/nodemon.json
index 4df56ed0c5d5d53f10b139aa6fcdfebe598dde8f..2220bb3e3a3e2e97e1122aa9b7a9c480a63e88fa 100644
--- a/nodemon.json
+++ b/nodemon.json
@@ -2,5 +2,5 @@
   "watch": ["src"],
   "ext": "ts",
   "ignore": ["src/public"],
-  "exec": "NODE_ENV=development ts-node src/index.ts"
+  "exec": "ts-node --files src/index.ts"
 }
diff --git a/src/index.ts b/src/index.ts
index f26f67e492a27ba99a225895c19e6a6b7faa0c30..d4d4e03a90526f68b863acfb68616cf0268762d4 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -1,9 +1,26 @@
-import "./utils/env"
+import "./utils/env";
 import express, { Request, Response, NextFunction, Application } from "express";
+import mongoose from "mongoose";
 import bodyParser from "body-parser";
 import expressSession from "express-session";
-import authRoute from './routes/auth';
-import userRoute from './routes/user';
+import authRoute from "./routes/auth";
+import newsRoute from "./routes/news";
+
+mongoose
+  .connect("mongodb://localhost:27017/bodysch", {
+    useNewUrlParser: true,
+    useCreateIndex: true,
+    useUnifiedTopology: true
+  })
+  .then(() => {
+    console.log("Connected to database");
+  })
+  .catch(err => {
+    console.log(
+      "MongoDB connection error. Please make sure MongoDB is running. " + err
+    );
+    // process.exit();
+  });
 
 const app: Application = express();
 
@@ -26,6 +43,9 @@ app.get("/", (req: Request, res: Response) => {
 // Register routes
 authRoute(app);
 
+// Register routes
+newsRoute(app);
+
 app.use((err: any, req: Request, res: Response, next: NextFunction) => {
   res.status(500).send("Houston, we have a problem!");
 
diff --git a/src/middlewares/.gitkeep b/src/middlewares/.gitkeep
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/src/middlewares/news/addNews.ts b/src/middlewares/news/addNews.ts
new file mode 100644
index 0000000000000000000000000000000000000000..43c6437fa20c7d7808dd93b7415c8fb969f616db
--- /dev/null
+++ b/src/middlewares/news/addNews.ts
@@ -0,0 +1,22 @@
+import { Request, Response, NextFunction } from "express";
+import News from "../../models/NewsSchema";
+
+const addNews = () => {
+  return (req: Request, res: Response, next: NextFunction) => {
+    const news = new News();
+    news.title = req.body.title;
+    news.text = req.body.text;
+    news.publishedAt = new Date().toDateString();
+
+    news.save(err => {
+      if (err) {
+      } else {
+        res.status(201);
+        res.data.newsObject = news;
+      }
+      next();
+    });
+  };
+};
+
+export default addNews;
diff --git a/src/middlewares/news/deleteNews.ts b/src/middlewares/news/deleteNews.ts
new file mode 100644
index 0000000000000000000000000000000000000000..7f6330375840761cfd595786688d62310018fc38
--- /dev/null
+++ b/src/middlewares/news/deleteNews.ts
@@ -0,0 +1,17 @@
+import { Request, Response, NextFunction } from "express";
+import News from "../../models/NewsSchema";
+
+const deleteNews = () => {
+  return (req: Request, res: Response, next: NextFunction) => {
+    News.findByIdAndDelete(req.params.id, (error, result) => {
+      if (!error) {
+        res.status(204);
+        res.json({});
+      } else {
+        console.warn(error);
+      }
+    });
+  };
+};
+
+export default deleteNews;
diff --git a/src/middlewares/news/getNews.ts b/src/middlewares/news/getNews.ts
new file mode 100644
index 0000000000000000000000000000000000000000..e48a3d6cf7a8d2cbb4bd54b035369a1785a63ef6
--- /dev/null
+++ b/src/middlewares/news/getNews.ts
@@ -0,0 +1,18 @@
+import { Request, Response, NextFunction } from "express";
+import News from "../../models/NewsSchema";
+
+const getNews = () => {
+  return (req: Request, res: Response, next: NextFunction) => {
+    News.findById(req.params.id, (error, result) => {
+      if (!error) {
+        res.status(200);
+        res.data.newsObject = result;
+      } else {
+        console.warn(error);
+      }
+      next();
+    });
+  };
+};
+
+export default getNews;
diff --git a/src/middlewares/news/getNewsList.ts b/src/middlewares/news/getNewsList.ts
new file mode 100644
index 0000000000000000000000000000000000000000..c55aa8a23b87205f6940ffb38a2de4f947944c15
--- /dev/null
+++ b/src/middlewares/news/getNewsList.ts
@@ -0,0 +1,15 @@
+import { Request, Response, NextFunction } from "express";
+import News from "../../models/NewsSchema";
+
+const getNewsList = () => {
+  return (req: Request, res: Response, next: NextFunction) => {
+    News.find({}, (err, news) => {
+      if (!err) {
+        res.data.news = news;
+      }
+      next();
+    });
+  };
+};
+
+export default getNewsList;
diff --git a/src/models/NewsSchema.ts b/src/models/NewsSchema.ts
new file mode 100644
index 0000000000000000000000000000000000000000..36a42fe0651bfa9d638275e0cc6089ff66c62845
--- /dev/null
+++ b/src/models/NewsSchema.ts
@@ -0,0 +1,31 @@
+import { Document, Schema, model } from 'mongoose';
+
+export interface INews extends Document {
+    title : string
+    text : string
+ /*    author : {
+       // id: IUser["_id"],
+        userName: string,
+    },
+    editedBy?: {
+       // id: IUser["_id"],
+        userName: string,
+    }, */
+    publishedAt: string
+}
+
+const NewsSchema = new Schema({
+    title : { type: String, required: true },
+    text : { type: String, required: true },
+    /* author : {
+        id: { type: Schema.Types.ObjectId, required: true },
+        userName: { type: String, required: true }
+    },
+    editedBy: {
+        id: { type: Schema.Types.ObjectId, required: true },
+        userName: { type: String, required: true }
+    }, */
+    publishedAt: { type: String, required: true }, 
+});
+
+export default model<INews>('News', NewsSchema);
\ No newline at end of file
diff --git a/src/routes/.gitkeep b/src/routes/.gitkeep
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/src/routes/news.ts b/src/routes/news.ts
new file mode 100644
index 0000000000000000000000000000000000000000..a2a54bf1966bf02eb6192c8c5333c445866b7e8a
--- /dev/null
+++ b/src/routes/news.ts
@@ -0,0 +1,35 @@
+import { Application, Response } from "express";
+import getNewsListMiddleware from "../middlewares/news/getNewsList";
+import addNews from "../middlewares/news/addNews";
+import getNews from "../middlewares/news/getNews";
+import deleteNews from "../middlewares/news/deleteNews";
+
+export default (app: Application): void => {
+  app.get("/news", getNewsListMiddleware(), (req, res: Response) => {
+    if (res.data.news) {
+      res.json(res.data.news);
+    } else {
+      throw Error("Cant get the news list");
+    }
+  });
+
+  app.post("/news", addNews(), (req, res: Response) => {
+    if (res.data.newsObject) {
+      res.json(res.data.newsObject);
+    } else {
+      throw Error("Cant add news");
+    }
+  });
+
+  app.get("/news/:id", getNews(), (req, res: Response) => {
+    if (res.data.newsObject) {
+      res.json(res.data.newsObject);
+    } else {
+      throw Error("Cant get the news");
+    }
+  });
+
+  app.post("/news/:id");
+
+  app.delete("/news/:id", deleteNews());
+};
diff --git a/src/utils/declarations/request.d.ts b/src/utils/declarations/request.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..5875527d11d1137dd1246d257abc2da7ee722ec3
--- /dev/null
+++ b/src/utils/declarations/request.d.ts
@@ -0,0 +1,3 @@
+declare namespace Express {
+  export interface Request {}
+}
diff --git a/src/utils/declarations/response.d.ts b/src/utils/declarations/response.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..fb2d7ee4b3aaea8c4fd741748c86631e764b969f
--- /dev/null
+++ b/src/utils/declarations/response.d.ts
@@ -0,0 +1,12 @@
+import { INews } from "../../models/NewsSchema";
+
+declare global {
+  namespace Express {
+    export interface Response {
+      data: {
+        news?: INews[] | null;
+        newsObject?: INews | null;
+      };
+    }
+  }
+}
diff --git a/tsconfig.json b/tsconfig.json
index fe19797508bb8cee6a58c85b0a8024c493e9da63..8b2d85389cfbd32bd092a3f62fec934b340519bc 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -1,8 +1,9 @@
 {
   "files": [
-    "./src/utils/declarations/session.d.ts"
+    "./src/utils/declarations/response.d.ts",
+    "./src/utils/declarations/request.d.ts",
+    "./src/utils/declarations/session.d.ts",
   ],
-
   "compilerOptions": {
     "module": "commonjs",
     "strict": true,