Skip to content

arefabouhamdan/Lingo-Quest

Repository files navigation



The goal of LingoQuest is to keep the process of learning a new language fun and easy. We believe that the method of learning should feel like an adventure itself: users explore, they interact, they develop their abilities in a natural fashion. The goal of LingoQuest is to keep the process of learning a new language fun and easy. We believe that the method of learning should feel like an adventure itself: users explore, they interact, they develop their abilities in a natural fashion. In short, LingoQuest is designed to inspire users to enjoy language learning by giving them both the tools and realistic practice they need to succeed.

User Stories

Student

  • As a student, I want to select my learning level, so I can begin lessons that match my proficiency.
  • As a student, I want to participate in interactive stories, so I can practice the language in real-life scenarios.
  • As a student, I want to access vocabulary translations by tapping objects, so I can learn words in context.

Tutor

  • As a tutor, I want to correct learner exams and provide detailed feedback, so learners can improve their skills.
  • As a tutor, I want to track the exams I’ve corrected, so I can manage my workload and ensure timely payment.
  • As a tutor, I want to receive notifications when learners submit their exams, so I can prioritize corrections and provide timely feedback.

Admin

  • As an admin, I want to ensure the AI-generated prompts are accurate and culturally appropriate, so users have a high-quality experience.
  • As an admin, I want to track tutor performance, so I can ensure the quality of mentorship provided.
  • As an admin, I want to manage and update levels content easily, so the platform remains up-to-date and relevant for learners.



Lingo Quest is built using the following technologies:

  • This project uses the React Native framework with TypeScript for cross-platform mobile app development. React Native, combined with TypeScript, ensures a unified codebase for both iOS and Android, providing type safety and efficient development.
  • For persistent storage, the app uses AsyncStorage to locally store user data, while React Query is used to manage data fetching and synchronization with the backend.
  • The backend is powered by Bun and Hono, providing a fast and lightweight server framework, while MongoDB is used as the database for flexible and scalable data management. TypeScript is used throughout the backend for robust and maintainable development.



We designed Lingo Quest using wireframes and mockups, iterating on the design until we reached the ideal layout for easy navigation and a seamless user experience.

  • Project Figma design figma

Mockups

Home screen Levels Screen Profile Screen
Landing fsdaf fsdaf



Architecting Data Excellence: Innovative Database Design Strategies:

User Model 1/3 User Model 2/3 User Model 3/3
Landing fsdaf fsdaf
Test Model Results Model Level Model
fsdaf fsdaf Landing



User Screens (Mobile)

Create Avatar Screen Student Home Screen Vocab List Screen
fsdaf fsdaf fsdaf
Levels screen Level 1 Start Level 1 End
Landing fsdaf fsdaf
Hint Modal Test Screen Top 50 Screen
Landing fsdaf fsdaf
Profile screen Test Correction Tutor Home screen
Landing fsdaf Landing



Enhancing user's learning experience with prompt engineering:

  • This project utilizes advanced prompt engineering methods to enhance the interaction between learners and AI-powered language models. It is powered by Gemini 2.0 Experimental, which provides the dialogue with the user in JSON format.

  • The AI is provided with the user's input, prompt and chat history so that the conversation remains relevant to the user's previous responses. The prompt is designed to simulate the scenario and match the student's level, it is given number of stages to ensure that the conversation continues until all stages of the level are completed. It ensures that the user avoids grammar mistakes, stays on topic, sends status updates (success = next stage, fail = lose 1 heart), and, lastly, provides hints and translations for the AI's responses.



Backend deployed on an AWS server to ensure reliability and scalability:

  • This project leverages AWS deployment strategies to seamlessly integrate and deploy natural language processing models. With a focus on scalability, reliability, and performance.
Login API Fetch Prompt API
Landing Landing
Submit Test API Fetch Student Results API
fsdaf fsdaf



To set up Lingo Quest locally, follow these steps:

Prerequisites

This is an example of how to list things you need to use the software and how to install them.

  • bun (Windows)
    powershell -c "irm bun.sh/install.ps1|iex"
  • bun (Mac / Linux)
    curl -fsSL https://bun.sh/install | bash

Installation

Below is an example of how you can run Lingo Quest locally. Below is an example of how you can run Lingo Quest locally.

  1. Get a free Gemini API Key at Google AI Studio

  2. Clone the repo git clone github

  3. To set up the front end

  4. To set up the front end

    cd Lingo-Quest-App
    cd Lingo-Quest-App
    bun install
  5. Enter your IP Address in assets/utils/baseUrl

  6. Enter your IP Address in assets/utils/baseUrl

    export const BASE_URL = "http://YOUR IP ADDRESS:3000";
  7. Run the App with

  8. Run the App with

    bun start
  9. To set up the backend end(in a new terminal)

    cd Lingo-Quest-Server
    bun install
  10. Enter your API in Lingo-Quest-Server/.env

    const GEMINI_API_KEY = "ENTER YOUR API KEY";
  11. Enter your MongoDB URL

    const MONGODB_URL = "ENTER YOUR URL";
  12. Run the Server with

  13. To set up the backend end(in a new terminal)

    cd Lingo-Quest-Server
    bun install
  14. Enter your API in Lingo-Quest-Server/.env

    const GEMINI_API_KEY = "ENTER YOUR API KEY";
  15. Enter your MongoDB URL

    const MONGODB_URL = "ENTER YOUR URL";
  16. Run the Server with

bun dev

Now, you should be able to run Lingo Quest locally and explore its features.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors