This repository contains the frontend for the Luxembourgish Language Learning (LLL) web application. The app helps users learn and practice the Luxembourgish language through interactive and engaging features, providing a smooth and modern user experience.
- Overview
- Features
- Technologies Used
- Prerequisites
- Installation*
- Running the Application*
- Setup with Yarn
- Screenshots
- Future work
- Contact
All the credit from the backend goes to the following contributors: -Titouan Guerin -Meryem Elfatimi The backend originally comes from the official ELL-MMA repository.
The Luxembourgish Language Learning (LLL) web application is a React-based project that assists users in learning Luxembourgish through various language learning modules. The app offers interactive features and responsive design, making it suitable for use on multiple devices.
- Interactive Language Learning Modules: Choose from reading, conversation, and listening practices.
- Responsive Design: Fully optimized for mobile, tablet, and desktop devices.
- User-Friendly Interface: Simple and intuitive UI built with Material-UI.
- Audio Features: Record and send audio messages to practice pronunciation.
- Backend Integration: Communicates with backend APIs for fetching recommendations and AI-generated responses.
This project uses a variety of modern web technologies:
- React: A JavaScript library for building user interfaces.
- Material-UI: A component library for React that offers sleek and customizable UI components.
- Axios: A library for making HTTP requests.
- MediaRecorder API: For handling audio recording within the browser.
- React Router: For handling routing within the web application.
- Emotion (CSS-in-JS): Used for applying styles to components.
Before you begin, ensure you have met the following requirements:
- Node.js: Version 14.x or higher.LINK
- npm: The package manager for JavaScript.
- Visual Studio Code: A powerful code editor for developing the project.
Follow these steps to set up the project locally:
-
Clone the repository:
git clone https://github.com/parsavares/WebApplication-lux-chatbot.git
-
Install the dependencies:
npm install
-
Open the project in Visual Studio Code:
code .
-
Start the development server:
In the integrated terminal of Visual Studio Code, run the following command:
npm start
-
Access the app in your browser:
Once the development server is running, open your browser and go to http://localhost:3000 to see the app in action.
To install dependencies and run the project using Yarn, follow these steps:
-
Install Yarn (if not already installed):
npm install -g yarn
-
Install dependencies: Navigate to the project directory and run:
yarn install
-
Start the application: Run the application (replace
yarn start
with the actual start command for your project):yarn start
-
Other useful Yarn commands:
- Build the project for production:
yarn build
- Run tests:
yarn test
- Build the project for production:
For more information on using Yarn, visit the official Yarn documentation.
-
Mixed Lockfiles:
Your project contains bothyarn.lock
andpackage-lock.json
. Since you're using Yarn, it's recommended to stick with one package manager to avoid resolution inconsistencies. You can safely delete thepackage-lock.json
file to prevent conflicts:rm package-lock.json
-
Deprecated Packages:
During installation, some packages showed warnings about being deprecated (e.g.,workbox-webpack-plugin
,rimraf
). While they still function, it's a good idea to eventually replace or update them for long-term compatibility. Check the package documentation for alternatives. -
Unmet Peer Dependencies:
Some packages have unmet peer dependencies, which were noted during the installation. These warnings do not break the build, but if you experience issues, you can install the missing peer dependencies manually. For example:yarn add typescript @babel/plugin-syntax-flow
-
Running the Application:
To start the application, run the following command:yarn start
The following list of tasks that still need to be completed or improved:
- Connect the progress tracking functionality from the backend with the frontend
- Implement dynamic images
- Address prompt engineering issues in the backend (such as Markdown in messages, and User Response displayed by the chatbot)
- Fix the issue with the messages between the communicator and orchester agents being displayed as messages to the user
- Resolve prompt engineering issues between the tracker and tutor agent, as well as the tutor agent's content retrieval tool (an issue previously occurred with Meryem and Titouan; consider fine-tuning the tutor agent as Meryem already suggested)
- Implement database on the backend to replace the current localStorage used to persist history at the browser level.
If you have any questions or need further assistance, please feel free to contact us:
- Othmane Mahfoud: othmane.mahfoud.001@student.uni.lu
- Parsa Vares: parsa.vares@uni.lu
- Hedi Tebourbi: hedi.tebourbi.001@student.uni.lu
Thank you for using the Luxembourgish Language Learning web application!