[x] Create shared types between the front and the backend
[x] Add eslint and package to enforce conventional commits
[x] Move the direct database access to custom models
[x] Update admin/super admin verification middlewares on the back-end so that they can verify the user authentication instead of relying on requireAuth
[x] Change folder structure, split code that can be shared and be independent