Closed johnding1996 closed 6 years ago
From szhouan
Database
and Controller
needed when chatbot ask for users' weight everyday to get a list of all usersLogJSON
should have a better name since log
is too ambiguous. Suggested StateTransitionLogJSON
String
for state identification for more comprehensible code and efficient debugStateJSON
for logging, as it is done by LogJSON
alreadyRedis
?From wguoaa: Architecture: 1.MenuInput:
Incoming link
a. Data flow and control flow between TextParser
and FoodRetriever
: PartialFoodQuerier
/FuzzyFoodQuerier
b. data flow between IOInterface
and MealAsker
sub-module
Outgoing link
a.data flow FoodRetriever
to Redis Cache
: need to store the mapping of actual dish name for output message of recommandation
b. data flow between FoodCreater
and PartialFoodQuerier
/FuzzyFoodQuerier
: add new dish to SQL table Food-Nutrition
c. data flow between IOInterface
and MealAsker
sub-module
Other
a. about SizeAsker
: is it necessary in the MealAsker
module? Only in the Recorder
module may be enough, maybe we do not need user to input a size here. We could use the confirmed [FoodJSON] here and recommend the portion based on the food nutrition fact
2.Recorder:
Incoming link
a. data flow from RecommendationPoster
to MealRecorder
: IOInterface
for User Confirmation. Or maybe simplify this step and ignore the data flow line from RecommendationPoster
to MealRecorder
: only record the actual intake, ignore the recommendations
b. data flow between IOInterface
and MealAsker
sub-module
Outgoing link
a. data flow between IOInterface
and MealAsker
sub-module
Other
3.Miscellaneous:
Typos
:
SQL DB
: Food-Nutrition
Fuzzy Search
Recommend
: FoodNutritionRetriever
UserInfoRetriever
@thomaszhouan Thanks for your review. Here are some questions regarding your suggestions.
StateJSON
is just to manipulate the state kept in cache layer. Logging is another thing. We should keep StateJSON
relatively simple.SerializeWrapper
capable to do this.@WSGuo After a short discussion, all suggestions are clear to me. I've already updated the graph.
@johnding1996
controller
needs a full user list to perform the task daily.JSON
objects passing between different modules. In that case, the cache layer can simply keep a receiver
for all those JSON
s (see this link)@thomaszhouan
EventAnalyzer
right?Controller
architecture, plz tell me and I'll update the complete graph. You can draw a simple diagram for me.@johnding1996
UserQuerier
for fetching a list of all userId
. This is necessary for sending push message through LINE API.@thomaszhouan
Closed since out-of-dated. The version of structural diagram is fixed until releasing milestone 2. Before that, no new official releasing of structural diagram will be published