diff --git a/ExpressAPI/src/managers/UserManager.ts b/ExpressAPI/src/managers/UserManager.ts
new file mode 100644
index 0000000000000000000000000000000000000000..81f129623f4f3f262f35c776762010cce05bc3fe
--- /dev/null
+++ b/ExpressAPI/src/managers/UserManager.ts
@@ -0,0 +1,40 @@
+import User from '../models/User';
+import db   from '../helpers/DatabaseHelper';
+
+
+class UserManager {
+    private static _instance: UserManager;
+
+    private constructor() { }
+
+    public static get instance(): UserManager {
+        if ( !UserManager._instance ) {
+            UserManager._instance = new UserManager();
+        }
+
+        return UserManager._instance;
+    }
+
+    createObjectFromRawSql(raw: any): User {
+        return User.createFromSql(raw);
+    }
+
+    async getByMail(mail: string): Promise<User | undefined> {
+        const raw = await db<User>(User.tableName).where('userMail', mail).first();
+
+        return raw ? this.createObjectFromRawSql(raw) : undefined;
+    }
+
+    async getById(id: number): Promise<User | undefined> {
+        const raw = await db<User>(User.tableName).where('userID', id).first();
+
+        return raw ? this.createObjectFromRawSql(raw) : undefined;
+    }
+
+    async getByIds(ids: Array<number>): Promise<Array<User>> {
+        return Promise.all(ids.map(userId => this.getById(userId)));
+    }
+}
+
+
+export default UserManager.instance;