- multi-layered architecture: app > router > controller > service
- back-end uses TypeScript
- tenant resolved by subdomain
- MongoDB, collection per tenant (e.g. postfix
_t1for tenant 1,subdomain1) - JWT authentication
- CORS, whitelist of domains
- hashing password with salt & pepper
usedIdandtenantIdis bound toRequestobject
- front-end is based on React, uses JavaScript
- basic login / sign up functionality
- demo functionality
- redirects to login page after session expires
- Redux store keeps user data
- holds user and tenant data after login
- redirects to homepage when
useris provided - redirects to login when
useris not found
add to hosts:
127.0.0.1 mtexpress
127.0.0.1 subdomain1.mtexpress
127.0.0.1 subdomain2.mtexpress
run back-end and front-end apps using npm start or yarn start
front-end
http://subdomain1.mtexpress:4000
http://subdomain2.mtexpress:4000
records that you create are only available for current tenant (subdomain)