Langbuddy is a web application tailored for English as a Foreign Language (EFL) learners. Leveraging the capabilities of ChatGPT, LangBuddy aims to enrich the English learning experience and facilitate effective study journal management. The chatbots integrate translation, voice recognition, and voice synthesis functions with a learning progress monitoring system using the spaced repetition strategy.
Please find the introduction video here: https://youtu.be/dorQoczBExk
I am currently continuing the refactoring of the backend.
Study Plan System: The user can create study items with tailored schedules.
Review System with spaced repetition strategy: When the study items are finished, they can be transformed into review items in a selected spaced repetition pattern to consolidate the learning outcome.
Chatbots with translation and voice function: Four chatbots powered by ChatGPT are built with translation, voice recognition and voice synthesis functions.
Integration among study systems and chatbots: The above three systems are integrated seamlessly. The study item can be transferred to review items with a selected pattern. Furthermore, there is another learning area which gives users opportunities to view the study task and review tasks scheduled for today and interact with the Chatbots at the same time. The chat content can also be added to the review systems when needed.
-
npm
- Install the latest version of npm globally:
npm install npm@latest -g
- Install the latest version of npm globally:
-
PostgreSQL
- Ensure PostgreSQL is installed and running on your machine.
-
You also need the OpenAI API Key, Azure translator API key and Azure speech synthesis API key.
-
Clone the Repository
- Use the following command to clone the repo:
git clone https://github.com/TianshengC/Langbuddy.git
- Use the following command to clone the repo:
-
Install NPM Packages
- Install npm packages in both the frontend and backend folders:
cd frontend npm install cd ../backend npm install
- Install npm packages in both the frontend and backend folders:
-
Create .env Files
- Create
.env
files in both the frontend and backend folders.
- Create
-
Set Up Environment Variables in Backend
-
In the backend
.env
file, set the following variables:PORT=8000 DB_USERNAME=postgres DB_PASSWORD=yourpassword HOST=localhost DB_PORT=5432 JWT_SECRET=yoursecret NODE_ENV=development OPENAI_API_KEY= yourkey TRANSLATOR_API_KEY= yourkey SYNTHESIS_API_KEY= yourkey ```
-
In the frontend
.env
file, set the following variables:REACT_APP_BACKEND_URL=http://localhost:8000
-
Adjust these variables based on your setting.
-
To start the project:
-
Frontend
- In the frontend directory, run:
npm start
- In the frontend directory, run:
-
Backend
- In the backend directory, run:
npm start
- In the backend directory, run:
-
Access the App
- Open your browser and go to:
http://localhost:3000/
- Open your browser and go to:
To stop the project:
- Use
Ctrl + C
in the terminal.
To develop the Langbuddy app, the following stack of technologies are used:
- Not Deployment yet. But you can run locally :)
- Assistant API: Because OpenAI has announced the new Assistant API in November 2023 which may be more suitable for this project. I am investigating how this change can improve the performance of chatbots.
- User Experiences: Some of the user experiences can be improved including pagination, displaying articles, account settings and etc..