Skip to content

itsPeetah/polimi-mdproject-2024-teachme

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

logo

TeachMe

Your favorite english conversational partner.

Contributors last update forks stars open issues license


📔 Table of Contents

🌟 About the Project

Second language acquisition (SLA) is a complex process influenced by several factors, including motivation, learning environment, and practice opportunities. Traditional SLA methods often lack sufficient opportunities for interactive conversation practice, which is crucial for fluency development.

TEACHme aims to address these challenges by providing accessible and cost-effective conversational practice opportunities. The system will utilize Large Language Models (LLMs) embedded in embodied agents to facilitate language learning, specifically targeting Italian native speakers learning English.

👥 Team Members

Name Email Github profiles
Andrea Federici andrea3.federici@mail.polimi.it
Alireza Yahyanejad alireza.yahyanejad@mail.polimi.it
Mahdi Valadan mohammadmahdi.valadan@mail.polimi.it
Paolo Pertino paolo.pertino@mail.polimi.it
Pietro Moroni pietroguglielmo.moroni@mail.polimi.it

📷 Screenshots

screenshot

👾 Tech Stack

Client
Server
Database
Misc

🎯 Features

Teachers have the following functionalities:

  • Register/login to the platform
  • Create conversation rooms and invite students to join them.
  • Customize the register, topic, time limits of the activity, and level of difficulty of conversation agents to ensure they are tailored to the students' needs.
  • Track their students' activities and visualize the conversations they are engaging with on the platform.

Students have the following functionalities:

  • Register/login to the platform
  • Join conversation rooms created by teachers and assigned to them.
  • Engage in conversations with the conversational agents.
  • Receive feedback on their performance during a specific conversation.
  • Visualize their conversation history.

🔑 Environment Variables

To run this project, you will need to add the following environment variables to your .env file inside the backend folder:

OPENAI_API_KEY=<YOUR OPENAI API KEY>
MONGODB_URI=<YOUR MONGODB ATLAS URI>

For running the frontend you will need to add the following environment variables to your .env.local file inside the ui folder:

NEXT_PUBLIC_SPEECH_KEY=<YOUR AZURE TTS API KEY>
NEXT_PUBLIC_SPEECH_REGION='westeurope'
NEXT_PUBLIC_BACKEND_URL_BASE=<URL FOR THE BACKEND>

🧰 Getting Started

🐳 Installation with Docker

To install the project using Docker, you must have Docker installed on your machine. You can find the installation instructions here. Additionally, you need to install docker-compose to run the project. You can find the installation instructions here.

Once Docker and docker-compose are set up, follow the instructions in the wiki of the project to install the project using Docker.

‼️ Prerequisites (no docker)

This project runs on a Node.js environment. Make sure you have Node.js installed on your machine. You can install it from here. Moreover, it uses npm as package manager. The application is built using Next.js. If you don't have npm installed, you can install it from here. If you don't have Next.js installed, you can follow the installation instructions here.

Regarding the backend, it is built using Python 3. You can install it from here. It uses pip packet manager. You can install it following the guide here.

⚙️ Installation

The full installation guide can be found in the wiki of the project.

Frontend installation Backend installation Docker installation

🚀 Run Locally

Find the instructions to run the project locally in the wiki of the project.

🚩 Deployment

The deployment of the project is not yet available.

🧭 Roadmap

Feature name Description Status
Registration and Login Users, students and teachers, must sign up and log into the platform to use it
Teacher conversation creation Teachers can create conversations specifying topic, difficulty, and length
Student and teacher dashboard Students and teachers have a dashboard containing the conversations they created/have been assigned respectively
Speech-to-text Speech-to-text functionality to transcribe the user's speech during the conversation
Conversational Agent LLM implementation for handling the conversation between students and conversational partner
Text-to-speech Text-to-speech functionality for allowing the conversational partner to speak
Viseme for facial position The artificial agent must look like an avatar and make reasonable mouth movements while talking according to visemes
Post-conversation feedback Once a conversation has ended, the platform must provide feedback to students regarding the conversation itself
Post-conversation challenges The platform must provide additional challenges (synonyms, pronunciation, ...) to students once the conversation ends
Pilot-test Test the system and its functionalities with external people
Final report Write the final report of the project
Deployment Deploy the platform on a cloud service

KEY: Done Not done yet

❔ FAQ

Which language models are used in the project?
  • We leverage OpenAI's GPT-3.5 model for generating conversational responses. feedbacks and challenges. The chatbot structure has been defined using the Langchain library so that other solutions can be easily integrated over the existing one in the future.
Why are the endpoints in the backend not properly secured?
  • The project is a prototype and the focus was on the conversational agent and the interaction with the user. The backend is a simple Flask server that serves the front end and handles the conversation with the OpenAI API and other conversation-related features. For a production-ready version, a more secure authentication system should be implemented to handle correctly both the user data and the privileges to perform certain requests.

📚 Resources

Code Wiki Report

🤝 Contact

You can contact us by email. You can find all the information regarding our contacts in the 👥 Team Members section.

Project Link: https://github.com/itsPeetah/polimi-mdproject-2024-teachme

💎 Acknowledgements

All the animated icons used in this repository are provided by Lordicon.com.