Skip to content

A Gamified Language Learning App. (NOTE: Images doesnt load currently properly on the live deployment. Aditionally App may be slow to load sometimes )

License

Notifications You must be signed in to change notification settings

mrtechtroid/Lingo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


Lingo
Lingo
Live Preview

A free, fun, playful and effective way to learn a language! Lingo is available on Github under the FSL-1.1-MIT License.

Tech Stack

React MongoDB TailwindCSS NextJS NodeJS Google Gemini

Problem Statement

Make a Gamified Language Learning Application, which helps users learn new languages easily.

Current Features

User Management and Authentication (/login, /register)
  • Users can register a new account, login to their existing account and sync their progress with the cloud.
Onboarding (\onboarding)
  • Upon the first signup of the user, basic questions are asked like their skill level, and which language they want to know. For a more tailored experience, and it allows the user to skip initial basic sections if needed.
Dashboard (\dashboard)
  • LEARN: See the entire curated learning path, their current progress and all units that are going to come.
  • RANKINGS: View the entire leaderboard, based on the Crown Points(XP) generated by the users.
  • SHOP: Currently we allow trading of Crown Points for Hearts. (If the heart points of the users goes to zero, he is unable to attempt the lessons/levels for 15mins)
  • PROFILE: View the current users profile.
Lesson (\lesson)
  • Each lesson consists of a set of questions and help in teaching the user basic concepts.
  • In the database, we store a list of keywords as a rubaric for the person to learn in that lesson. Then on the fly using Gemini, we generate new sentences, phrases, related words and also all of their translations. This is then parsed in the correct format, and then a set of questions is by the client of which a random set of questions are chosen to be shown to the user.
  • Currently there are 4 types of questions allowed: NEW_WORD, FILL_BLANK, TRANSLATE, MCQ. Each correct submission awards 10XP, and each wrong attempt deducts a heart.
  • All the keywords are stored in the MongoDB.

Installation and Deployment

  • Make sure to have git and npm installed.
  • Use git clone https://github.com/mrtechtroid/lingo.git to clone the project.
  • Alternatively download this github repository as ZIP, Extract the zip file.
Setting up Frontend
  • do cd frontend and do npm install
  • Incase you encounter any errors in the previous step run the command npm config set legacy-peer-deps true and then redo npm install
  • To start the frontend, do npm dev
Setting up Backend
  • do cd backend and do npm install
  • Create a new .env file inside the backend folder, and add the following Secret variables.
PORT = 8080
MONGO = <MONGO_CONNECTION_URL>
JWT_SECRET = secret
API_KEY=<GOOGLE_GEMINI_API_KEY>
  • You can get the two api keys from Mongo, and Gemini respectively.
  • Once both the front end and backend is running, you can now start using the application.

Challenges Encountered

  • The time constraint of a single day was a major constraint for both of us.
  • Aditionally learning how to use express and google-gemini api's while making sure to keep the site running as smoothly as possible with the least amount of lag.

Further Planned Improvements

  1. Challenges between two users/players where they can wage some portion of Experience, and do a language battle.
  2. Addition of an interactive chat bot which tries to correct all grammar mistakes in the learning language.

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  • Fork the Project
  • Create your Feature Branch (git checkout -b feature/AmazingFeature)
  • Commit your Changes (git commit -m 'Add some AmazingFeature')
  • Push to the Branch (git push origin feature/AmazingFeature)
  • Open a Pull Request

Credits

By Team Tech Duo
Released under FIT-1.1-MIT License.

About

A Gamified Language Learning App. (NOTE: Images doesnt load currently properly on the live deployment. Aditionally App may be slow to load sometimes )

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •