diff --git a/.env b/.env
deleted file mode 100644
index dcdbc79bbe9c762aded0995031f42ac2d7786922..0000000000000000000000000000000000000000
--- a/.env
+++ /dev/null
@@ -1,3 +0,0 @@
-MYSQL_USERNAME=root
-MYSQL_PASSWORD=mysql
-MYSQL_DB=repp_users
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
index 3c3629e647f5ddf82548912e337bea9826b434af..94e6eef0d245a53da7eb3cf6be13993454c6581e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,5 @@
 node_modules
+
+dist/
+
+.env
\ No newline at end of file
diff --git a/dist/Controllers/UserCotroller.js b/dist/Controllers/UserCotroller.js
deleted file mode 100644
index a1f9a2e78d21807583c13d28a0e93ea26478db52..0000000000000000000000000000000000000000
--- a/dist/Controllers/UserCotroller.js
+++ /dev/null
@@ -1,104 +0,0 @@
-"use strict";
-var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
-    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
-    return new (P || (P = Promise))(function (resolve, reject) {
-        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
-        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
-        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
-        step((generator = generator.apply(thisArg, _arguments || [])).next());
-    });
-};
-var __importDefault = (this && this.__importDefault) || function (mod) {
-    return (mod && mod.__esModule) ? mod : { "default": mod };
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-const express_1 = require("express");
-const UserService_1 = __importDefault(require("../Services/UserService"));
-const router = (0, express_1.Router)();
-const list = (req, res) => __awaiter(void 0, void 0, void 0, function* () {
-    try {
-        const users = yield UserService_1.default
-            .list(Number(req.query.limit), Number(req.query.offset));
-        return res.status(200).send(users);
-    }
-    catch (error) {
-        const e = error;
-        return res.status(400).json({ error: e.message });
-    }
-});
-const create = (req, res) => __awaiter(void 0, void 0, void 0, function* () {
-    try {
-        const user = yield UserService_1.default.create(req.body);
-        return res.status(200).send(user);
-    }
-    catch (error) {
-        const e = error;
-        return res.status(400).json({ error: e.message });
-    }
-});
-const update = (req, res) => __awaiter(void 0, void 0, void 0, function* () {
-    try {
-        const user = yield UserService_1.default.update(Number(req.params.id), req.body);
-        return res.status(200).send(user);
-    }
-    catch (error) {
-        const e = error;
-        return res.status(400).json({ error: e.message });
-    }
-});
-const password = (req, res) => __awaiter(void 0, void 0, void 0, function* () {
-    try {
-        const user = yield UserService_1.default.password(Number(req.params.id), req.body);
-        return res.status(200).send(user);
-    }
-    catch (error) {
-        const e = error;
-        return res.status(400).json({ error: e.message });
-    }
-});
-const approve = (req, res) => __awaiter(void 0, void 0, void 0, function* () {
-    try {
-        const user = yield UserService_1.default.approve(Number(req.params.id));
-        return res.status(200).send(user);
-    }
-    catch (error) {
-        const e = error;
-        return res.status(400).json({ error: e.message });
-    }
-});
-const cancel = (req, res) => __awaiter(void 0, void 0, void 0, function* () {
-    try {
-        const user = yield UserService_1.default.cancel(Number(req.params.id));
-        return res.status(200).send(user);
-    }
-    catch (error) {
-        const e = error;
-        return res.status(400).json({ error: e.message });
-    }
-});
-const active = (req, res) => __awaiter(void 0, void 0, void 0, function* () {
-    try {
-        const user = yield UserService_1.default.active(Number(req.params.id));
-        return res.status(200).send(user);
-    }
-    catch (error) {
-        const e = error;
-        return res.status(400).json({ error: e.message });
-    }
-});
-router.route('/')
-    .get(list)
-    .post(create);
-router.route('/:id')
-    .put(update)
-    .patch(active);
-router.route('/:id/password')
-    .put(password);
-router.route('/:id/approve')
-    .put(approve);
-router.route('/:id/active')
-    .patch(active);
-router.route('/:id/cancel')
-    .put(cancel);
-exports.default = router;
-//# sourceMappingURL=UserCotroller.js.map
\ No newline at end of file
diff --git a/dist/Controllers/UserCotroller.js.map b/dist/Controllers/UserCotroller.js.map
deleted file mode 100644
index 3da79560394d4b1e1ca365c6523783ec9accd5eb..0000000000000000000000000000000000000000
--- a/dist/Controllers/UserCotroller.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"UserCotroller.js","sourceRoot":"","sources":["../../src/Controllers/UserCotroller.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/dist/Controllers/index.js b/dist/Controllers/index.js
deleted file mode 100644
index 01717ee8e4f1ab088d2c74215f69a211904dddf5..0000000000000000000000000000000000000000
--- a/dist/Controllers/index.js
+++ /dev/null
@@ -1,9 +0,0 @@
-"use strict";
-var __importDefault = (this && this.__importDefault) || function (mod) {
-    return (mod && mod.__esModule) ? mod : { "default": mod };
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.UserController = void 0;
-const UserCotroller_1 = __importDefault(require("./UserCotroller"));
-exports.UserController = UserCotroller_1.default;
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/dist/Controllers/index.js.map b/dist/Controllers/index.js.map
deleted file mode 100644
index 541534dc73c3801bca937652bbd127725cc5da6d..0000000000000000000000000000000000000000
--- a/dist/Controllers/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Controllers/index.ts"],"names":[],"mappings":";;;;;;AAAA,oEAA6C;AAG3C,yBAHK,uBAAc,CAGL"}
\ No newline at end of file
diff --git a/dist/DTOs/UserDTO.js b/dist/DTOs/UserDTO.js
deleted file mode 100644
index 099e40206295b8931c6e4d0dc1aa8e1bb056b0d1..0000000000000000000000000000000000000000
--- a/dist/DTOs/UserDTO.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-//# sourceMappingURL=UserDTO.js.map
\ No newline at end of file
diff --git a/dist/DTOs/UserDTO.js.map b/dist/DTOs/UserDTO.js.map
deleted file mode 100644
index 8b5b4345c38cf9d8e16952bdd0b7fb7ff3f99898..0000000000000000000000000000000000000000
--- a/dist/DTOs/UserDTO.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"UserDTO.js","sourceRoot":"","sources":["../../src/DTOs/UserDTO.ts"],"names":[],"mappings":""}
\ No newline at end of file
diff --git a/dist/Services/UserService.js b/dist/Services/UserService.js
deleted file mode 100644
index 4e818fdf6716ffbad19a50017615d5164a3d4281..0000000000000000000000000000000000000000
--- a/dist/Services/UserService.js
+++ /dev/null
@@ -1,216 +0,0 @@
-"use strict";
-var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
-    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
-    return new (P || (P = Promise))(function (resolve, reject) {
-        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
-        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
-        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
-        step((generator = generator.apply(thisArg, _arguments || [])).next());
-    });
-};
-var __importDefault = (this && this.__importDefault) || function (mod) {
-    return (mod && mod.__esModule) ? mod : { "default": mod };
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-const bcrypt_1 = __importDefault(require("bcrypt"));
-const index_enum_1 = require("../enums/index.enum");
-const users_model_1 = require("../models/users.model");
-const list = (limit, offset) => __awaiter(void 0, void 0, void 0, function* () {
-    let options = {};
-    if (limit && offset) {
-        options = {
-            limit,
-            offset,
-        };
-    }
-    return users_model_1.User.findAndCountAll(Object.assign({ attributes: [
-            'id', 'name', 'email', 'organization', 'type', 'status', 'active', 'createdAt',
-        ], order: [
-            ['createdAt', 'ASC'],
-        ] }, options));
-});
-const create = (userDTO) => __awaiter(void 0, void 0, void 0, function* () {
-    return users_model_1.User.findOne({
-        where: {
-            email: userDTO.email,
-        },
-    }).then((user) => __awaiter(void 0, void 0, void 0, function* () {
-        if (user) {
-            throw new Error('email is taken');
-        }
-        else {
-            // se hace el checkeo antes porque luego se encripta
-            if (userDTO.password.length >= 6) {
-                const newUser = yield users_model_1.User.create({
-                    name: userDTO.name,
-                    email: userDTO.email,
-                    organization: userDTO.organization,
-                    password: bcrypt_1.default.hashSync(userDTO.password, 10),
-                    type: index_enum_1.profiles.client,
-                    status: index_enum_1.status.pending,
-                    createdBy: 1,
-                    createdAt: new Date(),
-                }).catch((error) => {
-                    console.log(error);
-                    throw new Error('create user error');
-                });
-                newUser.toJSON();
-                return newUser;
-            }
-            throw new Error('password too short');
-        }
-    })).catch((error) => {
-        console.log(error);
-        throw error;
-    });
-});
-const update = (userId, userDTO) => __awaiter(void 0, void 0, void 0, function* () {
-    return users_model_1.User.findOne({
-        attributes: [
-            'id', 'name', 'email',
-        ],
-        where: {
-            id: userId,
-        },
-    }).then((user) => __awaiter(void 0, void 0, void 0, function* () {
-        if (!user) {
-            throw new Error('user not found');
-        }
-        else {
-            const emailUser = yield users_model_1.User.findOne({
-                where: {
-                    email: userDTO.email,
-                },
-            });
-            if (!emailUser || emailUser.get('id') === user.get('id')) {
-                return user.update({
-                    name: userDTO.name,
-                    email: userDTO.email,
-                    organization: userDTO.organization,
-                    updatedAt: new Date(),
-                }).catch((error) => {
-                    console.log(error);
-                    throw new Error('user update error');
-                });
-            }
-            throw new Error('email in use');
-        }
-    })).catch((error) => {
-        console.log(error);
-        throw new Error('find user error');
-    });
-});
-const password = (userId, userDTO) => __awaiter(void 0, void 0, void 0, function* () {
-    return users_model_1.User.findOne({
-        attributes: [
-            'id', 'name', 'email',
-        ],
-        where: {
-            id: userId,
-        },
-    }).then((user) => __awaiter(void 0, void 0, void 0, function* () {
-        if (!user) {
-            throw new Error('user not found');
-        }
-        else {
-            return user.update({
-                password: bcrypt_1.default.hashSync(userDTO.password, 10),
-                updatedAt: new Date(),
-            }).catch((error) => {
-                console.log(error);
-                throw new Error('user update error');
-            });
-        }
-    })).catch((error) => {
-        console.log(error);
-        throw new Error('find user error');
-    });
-});
-const approve = (userId) => __awaiter(void 0, void 0, void 0, function* () {
-    return users_model_1.User.findOne({
-        attributes: [
-            'id', 'name',
-            'email', 'type',
-            'createdAt',
-        ],
-        where: {
-            id: userId,
-        },
-    }).then((user) => __awaiter(void 0, void 0, void 0, function* () {
-        if (!user) {
-            throw new Error('user not found');
-        }
-        else {
-            return user.update({
-                status: index_enum_1.status.approved,
-                updatedAt: new Date(),
-            }).catch((error) => {
-                console.log(error);
-                throw new Error('user update error');
-            });
-        }
-    })).catch((error) => {
-        console.log(error);
-        throw new Error('find user error');
-    });
-});
-const cancel = (userId) => __awaiter(void 0, void 0, void 0, function* () {
-    return users_model_1.User.findOne({
-        attributes: [
-            'id', 'name',
-            'email', 'type',
-            'createdAt',
-        ],
-        where: {
-            id: userId,
-        },
-    }).then((user) => __awaiter(void 0, void 0, void 0, function* () {
-        if (!user) {
-            throw new Error('user not found');
-        }
-        else {
-            return user.update({
-                status: index_enum_1.status.pending,
-                updatedAt: new Date(),
-            }).catch((error) => {
-                console.log(error);
-                throw new Error('user update error');
-            });
-        }
-    })).catch((error) => {
-        console.log(error);
-        throw new Error('find user error');
-    });
-});
-const active = (userId) => __awaiter(void 0, void 0, void 0, function* () {
-    return users_model_1.User.findOne({
-        where: {
-            id: userId,
-        },
-    }).then((user) => __awaiter(void 0, void 0, void 0, function* () {
-        if (!user) {
-            throw new Error('user not found');
-        }
-        else {
-            return user.update({
-                active: !user.get('active'),
-                updatedAt: new Date(),
-            }).catch((error) => {
-                throw new Error('user update error');
-            });
-        }
-    })).catch((error) => {
-        console.log(error);
-        throw new Error('find user error');
-    });
-});
-exports.default = {
-    list,
-    create,
-    update,
-    password,
-    approve,
-    cancel,
-    active,
-};
-//# sourceMappingURL=UserService.js.map
\ No newline at end of file
diff --git a/dist/Services/UserService.js.map b/dist/Services/UserService.js.map
deleted file mode 100644
index 2edf6f5b6e5f58e238f45b4e70aedf2f0c34763b..0000000000000000000000000000000000000000
--- a/dist/Services/UserService.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"UserService.js","sourceRoot":"","sources":["../../src/Services/UserService.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/dist/config/config.js b/dist/config/config.js
deleted file mode 100644
index 30a156ca8e7fda3f897f06d1fa8dd9ba4fefbe9f..0000000000000000000000000000000000000000
--- a/dist/config/config.js
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.development = void 0;
-require('dotenv').config();
-exports.development = {
-    username: process.env.MYSQL_USERNAME,
-    password: process.env.MYSQL_PASSWORD,
-    database: process.env.MYSQL_DB,
-    host: 'localhost',
-    dialect: 'mysql',
-    logging: false,
-};
-//# sourceMappingURL=config.js.map
\ No newline at end of file
diff --git a/dist/config/config.js.map b/dist/config/config.js.map
deleted file mode 100644
index 0b0ba5b771f7a0645f5698cd9e5a5f0efd6a35e6..0000000000000000000000000000000000000000
--- a/dist/config/config.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":";;;AAAA,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC;AAEd,QAAA,WAAW,GAAG;IACzB,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc;IACpC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc;IACpC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ;IAC9B,IAAI,EAAE,WAAW;IACjB,OAAO,EAAE,OAAO;IAChB,OAAO,EAAE,KAAK;CACf,CAAC"}
\ No newline at end of file
diff --git a/dist/enums/index.enum.js b/dist/enums/index.enum.js
deleted file mode 100644
index 239ba2c30ab4f684091f5fec72d13fd36cd424e2..0000000000000000000000000000000000000000
--- a/dist/enums/index.enum.js
+++ /dev/null
@@ -1,16 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.profiles = exports.status = void 0;
-var status;
-(function (status) {
-    status[status["pending"] = 0] = "pending";
-    status[status["approved"] = 1] = "approved";
-    status[status["rejected"] = 2] = "rejected";
-})(status = exports.status || (exports.status = {}));
-var profiles;
-(function (profiles) {
-    profiles[profiles["unassigned"] = 0] = "unassigned";
-    profiles[profiles["administrator"] = 1] = "administrator";
-    profiles[profiles["client"] = 2] = "client";
-})(profiles = exports.profiles || (exports.profiles = {}));
-//# sourceMappingURL=index.enum.js.map
\ No newline at end of file
diff --git a/dist/enums/index.enum.js.map b/dist/enums/index.enum.js.map
deleted file mode 100644
index 51129caae48ee68ef10ab21c5784808274f8f8a7..0000000000000000000000000000000000000000
--- a/dist/enums/index.enum.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.enum.js","sourceRoot":"","sources":["../../src/enums/index.enum.ts"],"names":[],"mappings":";;;AAAA,IAAY,MAIX;AAJD,WAAY,MAAM;IAChB,yCAAO,CAAA;IACP,2CAAQ,CAAA;IACR,2CAAQ,CAAA;AACV,CAAC,EAJW,MAAM,GAAN,cAAM,KAAN,cAAM,QAIjB;AAED,IAAY,QAIX;AAJD,WAAY,QAAQ;IAClB,mDAAc,CAAA;IACd,yDAAiB,CAAA;IACjB,2CAAU,CAAA;AACZ,CAAC,EAJW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAInB"}
\ No newline at end of file
diff --git a/dist/index.js b/dist/index.js
deleted file mode 100644
index 72c1ecf7ca6f2786c4d262731ac9205fd6524cdf..0000000000000000000000000000000000000000
--- a/dist/index.js
+++ /dev/null
@@ -1,48 +0,0 @@
-"use strict";
-var __importDefault = (this && this.__importDefault) || function (mod) {
-    return (mod && mod.__esModule) ? mod : { "default": mod };
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-/* eslint-disable no-console */
-const express_1 = __importDefault(require("express"));
-require("dotenv/config");
-const cors_1 = __importDefault(require("cors"));
-const swagger_jsdoc_1 = __importDefault(require("swagger-jsdoc"));
-const swagger_ui_express_1 = __importDefault(require("swagger-ui-express"));
-const routes_1 = __importDefault(require("./routes"));
-const app = (0, express_1.default)();
-const PORT = process.env.PORT || 3000;
-// swagger init
-const swaggerOptions = {
-    swaggerDefinition: {
-        openapi: '3.0.0',
-        info: {
-            title: 'REPP Rest API',
-            version: '1.0.0',
-            description: '',
-            servers: ['http://localhost:3000'],
-        },
-    },
-    apis: ['src/routes.ts'],
-};
-const swaggerDocs = (0, swagger_jsdoc_1.default)(swaggerOptions);
-// middlewares
-app.use('/api-docs', swagger_ui_express_1.default.serve, swagger_ui_express_1.default.setup(swaggerDocs));
-app.use(express_1.default.json({
-    limit: '50mb',
-}));
-app.use(express_1.default.urlencoded({ extended: false }));
-app.use((0, cors_1.default)({
-    origin: '*',
-    methods: 'GET,HEAD,PUT,PATCH,POST,DELETE',
-    preflightContinue: false,
-    optionsSuccessStatus: 204,
-}));
-app.use(express_1.default.raw({
-    limit: '50mb',
-}));
-app.use(routes_1.default);
-app.listen(PORT, () => {
-    console.log(`REPP Backend running here 👉 https://localhost:${PORT}`);
-});
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/dist/index.js.map b/dist/index.js.map
deleted file mode 100644
index 312ee3244f99af5e0351c6bbaa59142f95e35031..0000000000000000000000000000000000000000
--- a/dist/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;AAAA,+BAA+B;AAC/B,sDAA+C;AAC/C,yBAAuB;AACvB,gDAAwB;AACxB,kEAAsD;AACtD,4EAA2C;AAC3C,sDAA8B;AAE9B,MAAM,GAAG,GAAgB,IAAA,iBAAO,GAAE,CAAC;AACnC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC;AAEtC,eAAe;AACf,MAAM,cAAc,GAAY;IAC9B,iBAAiB,EAAE;QACjB,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE;YACJ,KAAK,EAAE,eAAe;YACtB,OAAO,EAAE,OAAO;YAChB,WAAW,EAAE,EAAE;YACf,OAAO,EAAE,CAAC,uBAAuB,CAAC;SACnC;KACF;IACD,IAAI,EAAE,CAAC,eAAe,CAAC;CACxB,CAAC;AACF,MAAM,WAAW,GAAG,IAAA,uBAAY,EAAC,cAAc,CAAC,CAAC;AAEjD,cAAc;AACd,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,4BAAS,CAAC,KAAK,EAAE,4BAAS,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;AAEpE,GAAG,CAAC,GAAG,CAAC,iBAAO,CAAC,IAAI,CAAC;IACnB,KAAK,EAAE,MAAM;CACd,CAAC,CAAC,CAAC;AACJ,GAAG,CAAC,GAAG,CAAC,iBAAO,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;AACjD,GAAG,CAAC,GAAG,CAAC,IAAA,cAAI,EAAC;IACX,MAAM,EAAE,GAAG;IACX,OAAO,EAAE,gCAAgC;IACzC,iBAAiB,EAAE,KAAK;IACxB,oBAAoB,EAAE,GAAG;CAC1B,CAAC,CAAC,CAAC;AAEJ,GAAG,CAAC,GAAG,CAAC,iBAAO,CAAC,GAAG,CAAC;IAClB,KAAK,EAAE,MAAM;CACd,CAAC,CAAC,CAAC;AAEJ,GAAG,CAAC,GAAG,CAAC,gBAAM,CAAC,CAAC;AAEhB,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,GAAS,EAAE;IAC1B,OAAO,CAAC,GAAG,CAAC,kDAAkD,IAAI,EAAE,CAAC,CAAC;AACxE,CAAC,CAAC,CAAC"}
\ No newline at end of file
diff --git a/dist/interfaces/paginator.interface.js b/dist/interfaces/paginator.interface.js
deleted file mode 100644
index 6dfb4f6a70415b4d24e7dd51690e2fd7f46bb965..0000000000000000000000000000000000000000
--- a/dist/interfaces/paginator.interface.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-//# sourceMappingURL=paginator.interface.js.map
\ No newline at end of file
diff --git a/dist/interfaces/paginator.interface.js.map b/dist/interfaces/paginator.interface.js.map
deleted file mode 100644
index afc4eef44a0f02ffdab5f1e281a080b737ebf81d..0000000000000000000000000000000000000000
--- a/dist/interfaces/paginator.interface.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"paginator.interface.js","sourceRoot":"","sources":["../../src/interfaces/paginator.interface.ts"],"names":[],"mappings":""}
\ No newline at end of file
diff --git a/dist/interfaces/user.interface.js b/dist/interfaces/user.interface.js
deleted file mode 100644
index 583c676ab28076a57a6551045792e2b92c18d71c..0000000000000000000000000000000000000000
--- a/dist/interfaces/user.interface.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-//# sourceMappingURL=user.interface.js.map
\ No newline at end of file
diff --git a/dist/interfaces/user.interface.js.map b/dist/interfaces/user.interface.js.map
deleted file mode 100644
index 24166bf8ef56f31bd5dd11b504353e2ffc9fd1b3..0000000000000000000000000000000000000000
--- a/dist/interfaces/user.interface.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"user.interface.js","sourceRoot":"","sources":["../../src/interfaces/user.interface.ts"],"names":[],"mappings":""}
\ No newline at end of file
diff --git a/dist/migrations/20200817181233-create-users.migration.js b/dist/migrations/20200817181233-create-users.migration.js
deleted file mode 100644
index d7768e4e42f3f8fb7fbe8e72a089c4850b463d3d..0000000000000000000000000000000000000000
--- a/dist/migrations/20200817181233-create-users.migration.js
+++ /dev/null
@@ -1,81 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.down = exports.up = void 0;
-const up = (queryInterface, Sequelize) => queryInterface.createTable('Users', {
-    id: {
-        type: Sequelize.INTEGER,
-        allowNull: false,
-        autoIncrement: true,
-        primaryKey: true,
-    },
-    name: {
-        type: Sequelize.STRING,
-        allowNull: true,
-        validate: {
-            notEmpty: true,
-            len: [3, 40],
-        },
-    },
-    email: {
-        type: Sequelize.STRING,
-        allowNull: false,
-        unique: true,
-        validate: {
-            isEmail: true,
-            max: 60,
-        },
-    },
-    organization: {
-        type: Sequelize.STRING,
-        allowNull: false,
-        validate: {
-            notEmpty: true,
-            max: 50,
-        },
-    },
-    password: {
-        type: Sequelize.STRING,
-        allowNull: false,
-    },
-    type: {
-        type: Sequelize.INTEGER,
-        allowNull: false,
-    },
-    token: {
-        type: Sequelize.STRING,
-        allowNull: true,
-    },
-    status: {
-        type: Sequelize.INTEGER,
-        allowNull: false,
-    },
-    active: {
-        type: Sequelize.BOOLEAN,
-        allowNull: false,
-        defaultValue: true,
-    },
-    createdAt: {
-        type: Sequelize.DATE,
-        allowNull: false,
-    },
-    updatedAt: {
-        type: Sequelize.DATE,
-        allowNull: true,
-    },
-    createdBy: {
-        type: Sequelize.INTEGER,
-        allowNull: false,
-    },
-    updatedBy: {
-        type: Sequelize.INTEGER,
-        allowNull: true,
-    },
-    deletedAt: {
-        type: Sequelize.DATE,
-        allowNull: true,
-    },
-});
-exports.up = up;
-const down = (queryInterface, Sequelize) => queryInterface.dropTable('Users');
-exports.down = down;
-//# sourceMappingURL=20200817181233-create-users.migration.js.map
\ No newline at end of file
diff --git a/dist/migrations/20200817181233-create-users.migration.js.map b/dist/migrations/20200817181233-create-users.migration.js.map
deleted file mode 100644
index fcd33fa6f4abb69c37c065f6677f81c483e06ff3..0000000000000000000000000000000000000000
--- a/dist/migrations/20200817181233-create-users.migration.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"20200817181233-create-users.migration.js","sourceRoot":"","sources":["../../src/migrations/20200817181233-create-users.migration.ts"],"names":[],"mappings":";;;AAAO,MAAM,EAAE,GAAG,CAAC,cAAmB,EAAE,SAAc,EAAE,EAAE,CAAC,cAAc,CAAC,WAAW,CAAC,OAAO,EAAE;IAC7F,EAAE,EAAE;QACF,IAAI,EAAE,SAAS,CAAC,OAAO;QACvB,SAAS,EAAE,KAAK;QAChB,aAAa,EAAE,IAAI;QACnB,UAAU,EAAE,IAAI;KACjB;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS,CAAC,MAAM;QACtB,SAAS,EAAE,IAAI;QACf,QAAQ,EAAE;YACR,QAAQ,EAAE,IAAI;YACd,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;SACb;KACF;IACD,KAAK,EAAE;QACL,IAAI,EAAE,SAAS,CAAC,MAAM;QACtB,SAAS,EAAE,KAAK;QAChB,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE;YACR,OAAO,EAAE,IAAI;YACb,GAAG,EAAE,EAAE;SACR;KACF;IACD,YAAY,EAAE;QACZ,IAAI,EAAE,SAAS,CAAC,MAAM;QACtB,SAAS,EAAE,KAAK;QAChB,QAAQ,EAAE;YACR,QAAQ,EAAE,IAAI;YACd,GAAG,EAAE,EAAE;SACR;KACF;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,SAAS,CAAC,MAAM;QACtB,SAAS,EAAE,KAAK;KACjB;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS,CAAC,OAAO;QACvB,SAAS,EAAE,KAAK;KACjB;IACD,KAAK,EAAE;QACL,IAAI,EAAE,SAAS,CAAC,MAAM;QACtB,SAAS,EAAE,IAAI;KAChB;IACD,MAAM,EAAE;QACN,IAAI,EAAE,SAAS,CAAC,OAAO;QACvB,SAAS,EAAE,KAAK;KACjB;IACD,MAAM,EAAE;QACN,IAAI,EAAE,SAAS,CAAC,OAAO;QACvB,SAAS,EAAE,KAAK;QAChB,YAAY,EAAE,IAAI;KACnB;IACD,SAAS,EAAE;QACT,IAAI,EAAE,SAAS,CAAC,IAAI;QACpB,SAAS,EAAE,KAAK;KACjB;IACD,SAAS,EAAE;QACT,IAAI,EAAE,SAAS,CAAC,IAAI;QACpB,SAAS,EAAE,IAAI;KAChB;IACD,SAAS,EAAE;QACT,IAAI,EAAE,SAAS,CAAC,OAAO;QACvB,SAAS,EAAE,KAAK;KACjB;IACD,SAAS,EAAE;QACT,IAAI,EAAE,SAAS,CAAC,OAAO;QACvB,SAAS,EAAE,IAAI;KAChB;IACD,SAAS,EAAE;QACT,IAAI,EAAE,SAAS,CAAC,IAAI;QACpB,SAAS,EAAE,IAAI;KAChB;CACF,CAAC,CAAC;AAzEU,QAAA,EAAE,MAyEZ;AAEI,MAAM,IAAI,GAAG,CAAC,cAAmB,EAAE,SAAc,EAAE,EAAE,CAAC,cAAc,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;AAAlF,QAAA,IAAI,QAA8E"}
\ No newline at end of file
diff --git a/dist/models/index.model.js b/dist/models/index.model.js
deleted file mode 100644
index 48b4a3d0d469833ab55aae1651d96ed3b0b6121f..0000000000000000000000000000000000000000
--- a/dist/models/index.model.js
+++ /dev/null
@@ -1,6 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.User = void 0;
-const users_model_1 = require("./users.model");
-Object.defineProperty(exports, "User", { enumerable: true, get: function () { return users_model_1.User; } });
-//# sourceMappingURL=index.model.js.map
\ No newline at end of file
diff --git a/dist/models/index.model.js.map b/dist/models/index.model.js.map
deleted file mode 100644
index 3fc03c562d0da63f2ac5599dfc6d80e6baea7186..0000000000000000000000000000000000000000
--- a/dist/models/index.model.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.model.js","sourceRoot":"","sources":["../../src/models/index.model.ts"],"names":[],"mappings":";;;AAAA,+CAAqC;AAGnC,qFAHO,kBAAI,OAGP"}
\ No newline at end of file
diff --git a/dist/models/users.model.js b/dist/models/users.model.js
deleted file mode 100644
index 8c034f171baf357b43cce85ff3d9a0362fbb4f2b..0000000000000000000000000000000000000000
--- a/dist/models/users.model.js
+++ /dev/null
@@ -1,128 +0,0 @@
-"use strict";
-var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
-    if (k2 === undefined) k2 = k;
-    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
-}) : (function(o, m, k, k2) {
-    if (k2 === undefined) k2 = k;
-    o[k2] = m[k];
-}));
-var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
-    Object.defineProperty(o, "default", { enumerable: true, value: v });
-}) : function(o, v) {
-    o["default"] = v;
-});
-var __importStar = (this && this.__importStar) || function (mod) {
-    if (mod && mod.__esModule) return mod;
-    var result = {};
-    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
-    __setModuleDefault(result, mod);
-    return result;
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.User = void 0;
-const sequelize_1 = require("sequelize");
-const index_enum_1 = require("../enums/index.enum");
-const environments = __importStar(require("../config/config"));
-const current = process.env.NODE_ENV || 'development';
-const config = environments[current];
-const sequelize = new sequelize_1.Sequelize(config.database, config.username, config.password, config);
-class User extends sequelize_1.Model {
-    toJSON() {
-        const values = Object.assign({}, this.get());
-        delete values.password;
-        delete values.updatedAt;
-        delete values.createdBy;
-        delete values.updatedBy;
-        delete values.deletedAt;
-        return values;
-    }
-}
-exports.User = User;
-User.init({
-    id: {
-        type: sequelize_1.DataTypes.INTEGER,
-        allowNull: false,
-        primaryKey: true,
-        autoIncrement: true,
-    },
-    name: {
-        type: sequelize_1.DataTypes.STRING(255),
-        allowNull: true,
-        validate: {
-            notEmpty: true,
-            len: [3, 40],
-        },
-    },
-    email: {
-        type: sequelize_1.DataTypes.STRING(255),
-        allowNull: false,
-        unique: true,
-        validate: {
-            isEmail: true,
-            max: 60,
-        },
-    },
-    organization: {
-        type: sequelize_1.DataTypes.STRING(255),
-        allowNull: false,
-        validate: {
-            notEmpty: true,
-            max: 50,
-        },
-    },
-    password: {
-        type: sequelize_1.DataTypes.STRING(255),
-        allowNull: false,
-    },
-    type: {
-        type: sequelize_1.DataTypes.INTEGER,
-        allowNull: false,
-    },
-    token: {
-        type: sequelize_1.DataTypes.STRING(255),
-        allowNull: true,
-    },
-    status: {
-        type: sequelize_1.DataTypes.INTEGER,
-        allowNull: false,
-        validate: {
-            isIn: {
-                args: [[
-                        String(index_enum_1.status.pending),
-                        String(index_enum_1.status.approved),
-                        String(index_enum_1.status.rejected),
-                    ]],
-                msg: 'invalid status',
-            },
-        },
-    },
-    active: {
-        type: sequelize_1.DataTypes.BOOLEAN,
-        allowNull: false,
-        defaultValue: true,
-    },
-    createdAt: {
-        type: sequelize_1.DataTypes.DATE,
-        allowNull: false,
-    },
-    updatedAt: {
-        type: sequelize_1.DataTypes.DATE,
-        allowNull: true,
-    },
-    createdBy: {
-        type: sequelize_1.DataTypes.INTEGER,
-        allowNull: false,
-    },
-    updatedBy: {
-        type: sequelize_1.DataTypes.INTEGER,
-        allowNull: true,
-    },
-    deletedAt: {
-        type: sequelize_1.DataTypes.DATE,
-        allowNull: true,
-    },
-}, {
-    sequelize,
-    modelName: 'User',
-});
-//# sourceMappingURL=users.model.js.map
\ No newline at end of file
diff --git a/dist/models/users.model.js.map b/dist/models/users.model.js.map
deleted file mode 100644
index d194d15fb72f32b6c065eb45f46437796ebb107d..0000000000000000000000000000000000000000
--- a/dist/models/users.model.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"users.model.js","sourceRoot":"","sources":["../../src/models/users.model.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,yCAAwD;AACxD,oDAA6C;AAE7C,+DAAiD;AAEjD,MAAM,OAAO,GAAW,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,aAAa,CAAC;AAC9D,MAAM,MAAM,GAAI,YAAoB,CAAC,OAAO,CAAC,CAAC;AAC9C,MAAM,SAAS,GAAc,IAAI,qBAAS,CACxC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAC1D,CAAC;AAEF,MAAa,IAAK,SAAQ,iBAAK;IAC7B,MAAM;QACJ,MAAM,MAAM,qBAAQ,IAAI,CAAC,GAAG,EAAE,CAAE,CAAC;QAEjC,OAAO,MAAM,CAAC,QAAQ,CAAC;QACvB,OAAO,MAAM,CAAC,SAAS,CAAC;QACxB,OAAO,MAAM,CAAC,SAAS,CAAC;QACxB,OAAO,MAAM,CAAC,SAAS,CAAC;QACxB,OAAO,MAAM,CAAC,SAAS,CAAC;QACxB,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAXD,oBAWC;AAED,IAAI,CAAC,IAAI,CAAC;IACR,EAAE,EAAE;QACF,IAAI,EAAE,qBAAS,CAAC,OAAO;QACvB,SAAS,EAAE,KAAK;QAChB,UAAU,EAAE,IAAI;QAChB,aAAa,EAAE,IAAI;KACpB;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,qBAAS,CAAC,MAAM,CAAC,GAAG,CAAC;QAC3B,SAAS,EAAE,IAAI;QACf,QAAQ,EAAE;YACR,QAAQ,EAAE,IAAI;YACd,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;SACb;KACF;IACD,KAAK,EAAE;QACL,IAAI,EAAE,qBAAS,CAAC,MAAM,CAAC,GAAG,CAAC;QAC3B,SAAS,EAAE,KAAK;QAChB,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE;YACR,OAAO,EAAE,IAAI;YACb,GAAG,EAAE,EAAE;SACR;KACF;IACD,YAAY,EAAE;QACZ,IAAI,EAAE,qBAAS,CAAC,MAAM,CAAC,GAAG,CAAC;QAC3B,SAAS,EAAE,KAAK;QAChB,QAAQ,EAAE;YACR,QAAQ,EAAE,IAAI;YACd,GAAG,EAAE,EAAE;SACR;KACF;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,qBAAS,CAAC,MAAM,CAAC,GAAG,CAAC;QAC3B,SAAS,EAAE,KAAK;KACjB;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,qBAAS,CAAC,OAAO;QACvB,SAAS,EAAE,KAAK;KACjB;IACD,KAAK,EAAE;QACL,IAAI,EAAE,qBAAS,CAAC,MAAM,CAAC,GAAG,CAAC;QAC3B,SAAS,EAAE,IAAI;KAChB;IACD,MAAM,EAAE;QACN,IAAI,EAAE,qBAAS,CAAC,OAAO;QACvB,SAAS,EAAE,KAAK;QAChB,QAAQ,EAAE;YACR,IAAI,EAAE;gBACJ,IAAI,EAAE,CAAC;wBACL,MAAM,CAAC,mBAAM,CAAC,OAAO,CAAC;wBACtB,MAAM,CAAC,mBAAM,CAAC,QAAQ,CAAC;wBACvB,MAAM,CAAC,mBAAM,CAAC,QAAQ,CAAC;qBACxB,CAAC;gBACF,GAAG,EAAE,gBAAgB;aACtB;SACF;KACF;IACD,MAAM,EAAE;QACN,IAAI,EAAE,qBAAS,CAAC,OAAO;QACvB,SAAS,EAAE,KAAK;QAChB,YAAY,EAAE,IAAI;KACnB;IACD,SAAS,EAAE;QACT,IAAI,EAAE,qBAAS,CAAC,IAAI;QACpB,SAAS,EAAE,KAAK;KACjB;IACD,SAAS,EAAE;QACT,IAAI,EAAE,qBAAS,CAAC,IAAI;QACpB,SAAS,EAAE,IAAI;KAChB;IACD,SAAS,EAAE;QACT,IAAI,EAAE,qBAAS,CAAC,OAAO;QACvB,SAAS,EAAE,KAAK;KACjB;IACD,SAAS,EAAE;QACT,IAAI,EAAE,qBAAS,CAAC,OAAO;QACvB,SAAS,EAAE,IAAI;KAChB;IACD,SAAS,EAAE;QACT,IAAI,EAAE,qBAAS,CAAC,IAAI;QACpB,SAAS,EAAE,IAAI;KAChB;CACF,EAAE;IACD,SAAS;IACT,SAAS,EAAE,MAAM;CAClB,CAAC,CAAC"}
\ No newline at end of file
diff --git a/dist/routes.js b/dist/routes.js
deleted file mode 100644
index 0ba287a218c3292e39de00ebe4f701419fdb2699..0000000000000000000000000000000000000000
--- a/dist/routes.js
+++ /dev/null
@@ -1,11 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-const express_1 = require("express");
-const Controllers_1 = require("./Controllers");
-const router = (0, express_1.Router)();
-router.get('/', (req, res) => {
-    res.send('Hey! This is REPP API, you can go to /api-docs to learn more!');
-});
-router.use('/users', Controllers_1.UserController);
-exports.default = router;
-//# sourceMappingURL=routes.js.map
\ No newline at end of file
diff --git a/dist/routes.js.map b/dist/routes.js.map
deleted file mode 100644
index a0471d184657ed8f7c3e4b0a3ad33c58f71d2499..0000000000000000000000000000000000000000
--- a/dist/routes.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"routes.js","sourceRoot":"","sources":["../src/routes.ts"],"names":[],"mappings":";;AAAA,qCAAoD;AACpD,+CAA+C;AAE/C,MAAM,MAAM,GAAG,IAAA,gBAAM,GAAE,CAAC;AAExB,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAY,EAAE,GAAa,EAAQ,EAAE;IACpD,GAAG,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAC;AAC5E,CAAC,CAAC,CAAC;AAEH,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,4BAAc,CAAC,CAAC;AAErC,kBAAe,MAAM,CAAC"}
\ No newline at end of file
diff --git a/src/Controllers/UserCotroller.ts b/src/Controllers/UserCotroller.ts
index 0432dd63ec183ed571fed934b4b365633dd988f7..09ce8e7d09bc7f67a242b5fd75da9de78d9d96b0 100644
--- a/src/Controllers/UserCotroller.ts
+++ b/src/Controllers/UserCotroller.ts
@@ -140,6 +140,16 @@ const active = async (req: Request, res: Response): Promise<Response> => {
   }
 };
 
+const login = async (req: Request, res: Response): Promise<Response> => {
+  try {
+    const logged: User = await UserService.login(req.body);
+    return res.status(200).send(logged);
+  } catch (error) {
+    const e = error as Error;
+    return res.status(400).json({ error: e.message });
+  }
+};
+
 router.route('/')
   .get(listAll)
   .post(create);
@@ -178,4 +188,7 @@ router.route('/:id/admin')
 router.route('/:id/client')
   .put(removeAdminPermission);
 
+router.route('/login')
+  .post(login);
+
 export default router;
diff --git a/src/Services/UserService.ts b/src/Services/UserService.ts
index 15149c6722228f5ccef439b8c52a9e61ef7032a6..6663071eb0cc987f38c49bdd05c6645e12372a1b 100644
--- a/src/Services/UserService.ts
+++ b/src/Services/UserService.ts
@@ -4,7 +4,7 @@ import { profiles, status } from '../enums/index.enum';
 import Paginator from '../interfaces/paginator.interface';
 import { User } from '../models/users.model';
 
-import { UserCreateDTO, UserDTO } from '../DTOs/UserDTO';
+import { UserCreateDTO, UserLoginDTO } from '../DTOs/UserDTO';
 
 const listPending = async (limit: number, offset: number,
   search: string): Promise<Paginator<User>> => {
@@ -393,6 +393,31 @@ const active = async (userId: number): Promise<User> => User.findOne({
   throw new Error('find user error');
 });
 
+const login = async (userDTO: UserLoginDTO): Promise<User> => User.findOne({
+  attributes: [
+    'id', 'name', 'email', 'organization', 'password',
+    'type', 'status', 'active', 'createdAt',
+  ],
+  where: {
+    email: userDTO.email,
+    status: status.approved,
+    active: true,
+  },
+}).then((user: User) => {
+  if (!user) {
+    throw new Error('user not found');
+  } else if (user && bcrypt.compareSync(userDTO.password, String(user.get('password')))) {
+    return user;
+  } else {
+    console.log('auth failed, credentials:', userDTO);
+    throw new Error('auth failed');
+  }
+}).catch((error: Error) => {
+  console.log(error);
+  console.log('credentials:', userDTO);
+  throw new Error('find user error');
+});
+
 export default {
   listAll,
   listPending,
@@ -407,4 +432,5 @@ export default {
   active,
   giveAdminPermission,
   removeAdminPermission,
+  login,
 };