-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
6525d82
commit 18efc36
Showing
2 changed files
with
92 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.