https://github.com/mikeleo03/chatgpt-clone-string-matching
Tugas Besar 3 Strategi Algoritma IF2211 - Simple ChatGPT Clone using KMP and Boyer-Moore String Matching Algorithms
https://github.com/mikeleo03/chatgpt-clone-string-matching
boyer-moore-algorithm chatgpt kmp-algorithm regex web-based
Last synced: 9 months ago
JSON representation
Tugas Besar 3 Strategi Algoritma IF2211 - Simple ChatGPT Clone using KMP and Boyer-Moore String Matching Algorithms
- Host: GitHub
- URL: https://github.com/mikeleo03/chatgpt-clone-string-matching
- Owner: mikeleo03
- Created: 2023-04-13T10:08:46.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2023-05-05T15:25:13.000Z (over 2 years ago)
- Last Synced: 2025-01-23T08:43:09.855Z (11 months ago)
- Topics: boyer-moore-algorithm, chatgpt, kmp-algorithm, regex, web-based
- Language: JavaScript
- Homepage:
- Size: 5.44 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Simple ChatGPT Clone using KMP and Boyer-Moore String Matching Algorithms
> *Source Code* ini dibuat oleh kami, Kelompok GatauNamanya, untuk memenuhi Tugas Besar 3 Strategi Algoritma yaitu mengaplikasikan
> String Matching dan Regular Expression dalam Pembuatan ChatGPT Sederhana. Telah dilakukan *deployment* pada aplikasi web yang dibangun pada tautan [berikut](https://johaneslee.me/)
## Daftar Isi
- [Author](#author)
- [Deskripsi Singkat](#deskripsi-singkat)
- [Sistematika File](#sistematika-file)
- [Requirements](#requirements)
- [Cara Mengkompilasi dan Menjalankan Program](#cara-mengkompilasi-dan-menjalankan-program)
- [Cara Mengoperasikan Program](#cara-mengoperasikan-program)
- [Screenshots](#screenshots)
## Author
| NIM | Nama | Github Profile |
| -------- | ---------------------------|----------------------------------------------|
| 13521108 | Michael Leon Putra Widhi | [mikeleo03](https://github.com/mikeleo03) |
| 13521148 | Johanes Lee | [Enliven26](https://github.com/Enliven26) |
| 13521172 | Nathan Tenka | [Nat10k](https://github.com/Nat10k) |
## Deskripsi Singkat
Dalam tugas besar ini, dibangun sebuah aplikasi ChatGPT sederhana dengan mengaplikasikan pendekatan QA yang paling sederhana. Pencarian pertanyaan yang paling mirip dengan pertanyaan yang diberikan pengguna dilakukan dengan algoritma pencocokan string Knuth-Morris-Pratt (KMP) dan Boyer-Moore (BM). Regex digunakan untuk menentukan format dari pertanyaan (akan dijelaskan lebih lanjut pada bagian fitur aplikasi). Jika tidak ada satupun pertanyaan pada database yang exact match dengan pertanyaan pengguna melalui algoritma KMP ataupun BM, maka gunakan pertanyaan termirip dengan kesamaan setidaknya 90% Apabila tidak ada pertanyaan yang kemiripannya di atas 90%, maka chatbot akan memberikan maksimum 3 pilihan pertanyaan yang paling mirip untuk dipilih oleh pengguna.
Perhitungan tingkat kemiripan dibebaskan kepada anda asalkan dijelaskan di laporan, namun disarankan menggunakan salah satu dari algoritma Hamming Distance, Levenshtein Distance, ataupun Longest Common Subsequence.
## Sistematika File
```bash
.
├─── doc
├─── src
│ ├─── backend
│ │ ├─── node_modules
│ │ ├─── src
│ │ │ ├─── algorithms
│ │ │ ├─── authz
│ │ │ ├─── models
│ │ │ ├─── routes
│ │ │ ├─── Database.js
│ │ │ └─── index.js
│ │ ├─── package-lock.json
│ │ └─── package.json
│ └─── frontend
│ ├─── dist
│ ├─── node_modules
│ ├─── public
│ ├─── src
│ │ ├─── assets
│ │ ├─── components
│ │ ├─── pages
│ │ ├─── requests
│ │ ├─── App.css
│ │ ├─── App.js
│ │ ├─── index.css
│ │ └─── index.js
│ ├─── .gitignore
│ ├─── package-lock.json
│ ├─── package.json
│ ├─── postcss.config.js
│ ├─── README.md
│ └─── tailwind.config.js
├─── .gitignore
└─── README.md
```
## Requirements
- React.js (versi 18.2.0)
- Tailwind CSS (versi 3.3.1)
- express.js (versi 4.18.2)
- express-jwt (versi 8.4.1)
- mongoDB (versi 5.3.0)
## Cara Mengkompilasi dan Menjalankan Program
Lakukan *clone repository* melalui terminal dengan *command* berikut
``` bash
$ git clone https://github.com/mikeleo03/Tubes3_GatauNamanya.git
```
### Menjalankan *Frontend*
1. Lakukan pemindahan direktori ke `src` milik sisi *frontend* dengan *command* berikut
``` bash
$ cd src/frontend
```
2. Lakukan kompilasi dan unduh beberapa modul yang diperlukan dengan menjalankan *command* berikut
``` bash
$ npm install
$ npm start
```
### Menjalankan *Backend*
1. Lakukan pemindahan direktori ke `src` milik sisi *backend* dengan *command* berikut
``` bash
$ cd src/backend
```
2. Lakukan kompilasi dan unduh beberapa modul yang diperlukan dengan menjalankan *command* berikut
``` bash
$ npm install
$ npm run start-dev
```
## Cara Mengoperasikan Program
1. *Login* ke *website* dengan akun Auth0 atau gunakan autentikasi Google. Jika proses *login* berhasil, maka pengguna akan dihadapkan pada layar utama program.
2. Pilih algoritma pencarian yang diinginkan pada bagian bawah kanan aplikasi.
3. Ketikkan pertanyaan pada kolom masukan yang tersedia dan tunggu beberapa saat hingga Anda memperoleh jawaban dari *chatbot*
4. Untuk menambahkan *chat* baru, tekan tombol ```New Chat +``` di sebelah kanan atas.
5. Untuk menghapus *chat*, tekan tombol tempat sampah di sebelah kanan chat yang ingin dihapus.
6. Untuk memberi nama sebuah halaman *chat*, tekan kolom nama yang tersedia di sebelah kanan atas.
## Screenshots
