toychat

module
v0.0.0-...-ddf4e43 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 29, 2020 License: MIT

README

Project objective: Build a robust and reliable messaging application that can connect people to either automations or to people who can help them. The roles in the system are:

Super admin who can add admins to the system, activate or deactivate them. The super admin role is added by the offline application su through a CLI. At this time, deleting the admin must be done using mysql interface directly. To change the super admin password, for now, the super admin needs to be deleted using the MySQL direct interface and added back using the su application. At this time, I am contemplating only one super user but that can change.

Admin who can add agents, active or deactivate them and change his or her own password. There can be multiple admins. Admins can take action only if they are in the active state which is controlled by the super user.

Agent who can go online, go offline, and engage in a chat - maybe I will add telephony in the future - or change their own password only if they are in the active state.. There can be multiple agents. Agents are added, made active or inactive by the admins.

End users who can chat with the system.

Automations that can do useful work - whatever that might be.

Work in progress: current state of the project.

Nats messaging is install and working.
MySQL with the admins table is up and working. The front end is the first thing that I built, but it is just test functionality now. The backend is partially built. Super admin role is complete Admin role still needs change password Agent role only has login and logout working

In addition to completing the roles, there is a lot of boilerplate code that needs to be refactored, the packages need to be rationalized, and all code has to be reviewed for at least following the SOLID principals.

Older notes: I have been reading Alex Edwards book "Let's Go" and building this application. I have used it in the past to build other applications, but here, I am working to build something bigger and also learn more of the ideas in the book. I have also had my eye on doing something with the NATS server. So, I am combining some of the things that I have been looking to learn into this project.

As of now, this application is composed of five components: Web: which is the front end facing the end user. Chat: is a simple simulation that reverses the order of words in a sentence Mat: is both a simple and stupid application that replaces every word with mat dbmgr: is the database interface for the user database nats server: which connects the web, chat, mat and dbmgr together. mysql database: which provides a table for the session manager and a table for end user information.

Directories

Path Synopsis
backend
backendweb command
frontend
web command
pkg

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL