Skip to content

Commit

Permalink
#6 doc: Readme and UI image
Browse files Browse the repository at this point in the history
  • Loading branch information
JiahuiChen99 committed Apr 28, 2021
1 parent 6525d82 commit 18efc36
Show file tree
Hide file tree
Showing 2 changed files with 92 additions and 0 deletions.
92 changes: 92 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
> ⚠️ **Targeted to students of my university - La Salle URL:** Refrain from copying this repository!
# 🎮 League of Legends Champion Selector

LoL Champ Selector is a chat bot about the world's most [famous]() eSport game. The baseline is to help **summoner**(users) find a new champion to play with, based on the preferred difficulty.
It also features like champions' description storytelling, items recommendations and much more, give it a try!

<p align="center">
<img src="" width="150">
</p>

## Architecture
This client is build using NodeJS & Electron :electron: framework.

It uses [gRPC](https://grpc.io/) protocol to communicate with the server. The underlying data sent to the back-end are Google's
Protocol Buffers.


> Structure for sending users' messages to the server. It is also used for champions' abilities retrieval.
```
// Simple message
message Message {
string message = 1;
}
```


> Fetch champions' abilities
```
// Request a champion's ability
message championAbilityRequest {
string champion = 1;
string ability = 2;
}
```

> Response from the server with the champion.
```
// Chatbot response
message chatbotResponse {
string message = 1;
string champion = 2;
}
```


Currently only 2 rpc are implemented

> Sends the user message, awaits chatbot's response
```
rpc send_message(Message) returns (chatbotResponse);
```

> Fetches champion' abilities, the champion name and the ability are required.
```
rpc getChampionAbility(championAbilityRequest) returns (Message);
```
## Supported tokens
- Champion recommendation based on **Difficulty**
- Champion recommendation based on **Roles**
- Items for **Roles**
- Champion Description Storytelling
- Greetings
- Bye
- Thanking

## Get it running
Run `npm install` to install all dependencies.

> ⚠️ **IMPORTANT: Please run the following**. The communication with the server won't work if it's not performed.
`electron-rebuild` to download core gRPC code and rebuild the library, due to Electron's nature. For more information
refer to this [site](https://grpc.github.io/grpc/node/).

## TODO
### Front-end

- [x] Chat Interface
- [x] Champion Information Section
- [x] gRPC calls
- [ ] Improve UI

### Back-end
- [x] gRPC services
- [ ] NLP (Natural Language Processing)
- [ ] Chat bot Memory
- [ ] More organic conversation
Binary file added assets/chatbot UI.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 18efc36

Please sign in to comment.