/USERS GET TO USERS --> ROUTER --> QUERY MONGODB FOR COLLECTION --> REPLY TO CLIENT WITH JSON OR ERROR
POST TO USERS --> ROUTER --> [AUTHENTICATE] --> VALIDATE --> WRITE TO MONGODB --> REPLY TO CLIENT WITH REQUEST PAYLOAD AND 201
/USERS/{id} GET TO USERS/{id} --> ROUTER --> QUERY MONGODB FOR 'id' PARAMETER --> IF SUCCESSFUL QUERY, REPLY TO CLIENt WITH JSON. ELSE REPLY WITH NOT FOUND
PUT TO USERS/{id} --> ROUTER --> [AUTHENTICATION] --> VALIDATION --> WRITE TO MONGODB --> IF SUCCESSFUL WRITE TO DB, REPLY WITH UPDATED ENTRY JSON OBJECT, ELSE REPLY WITH ERROR MESSAGE
DELETE TO USERS/{id} --> ROUTER --> [AUTHENTICATION] --> DELETE FROM MONGODB --> IF SUCCESSFUL DELETE, REPLY WITH REDIRECT, ELSE REPLY WITH ERROR MESSAGE. / --------------
/POSTS GET TO POSTS --> ROUTER --> QUERY MONGODB FOR COLLECTION --> REPLY TO CLIENT WITH JSON OR ERROR
POST TO POSTS --> ROUTER --> [AUTHENTICATE] --> VALIDATE --> WRITE TO MONGODB --> REPLY TO CLIENT WITH REQUEST PAYLOAD ANF 201
/POSTS/{id} GET TO POSTS/{id} --> ROUTER --> QUERY MONGODB FOR 'id' PARAMETER --> IF SUCCESSFUL QUERY, REPLY TO CLIENT WITH JSON. ELSE REPLY WITH NOT FOUND
PUT TO POSTS/{id} --> ROUTER --> [AUTHENTICATION] --> VALIDATION --> WRITE TO MONGODB --> IF SUCCESSFUL WRITE TO DB, REPLY WITH UPDATED ENTRY JSON OBJECT, ELSE REPLY WITH ERROR MESSAGE
DELETE TO POSTS/{id} --> ROUTER --> [AUTHENTICATION] --> DELETE FROM MONGODB --> IF SUCCESSFUL DELETE, REPLY WITH REDIRECT, ELSE REPLY WITH ERROR MESSAGE. / --------------
/LOGIN GET TO LOGIN --> ROUTER --> [AUTHENTICATION] --> HTML PAGE WITH LOGIN FORM...
POST TO LOGIN --> ROUTER --> VALIDATION --> QUERY MONGODB FOR USERNAME --> IF SUCCESSFUL QUERY, CHECK PASSWORD (HASHED WITH SALT AGAIN) --> IF SUCCESSFUL MATCH, REPLY TO USER WITH TOKEN, COOKIE AND REDIRECT
/LOGOUT GET TO LOGOUT --> ROUTER --> [AUTHENTICATION] --> IF SUCCESSFUL AUTHENTICATION, DELETE USER SESSION AND REDIRECT TO HOMEPAGE, PERHAPS WITH SUCCESSFUL LOGOUT / --------------
/api /controllers controller.js /model model.js /routes routes.js config.js database.js server.js /views /test /controllers controller.js /model model.js /routes routes.js config.js database.js server.js app.js