Inspiration
For this project, I wanted to take advantage of the core functionality of Gemini AI: processing language and generating text. With Gemini's advanced reasoning, I took the idea of language processing to the next level: teaching language, specifically the English language.
I used Gemini in Google's AI studio to simulate English conversations, and it seemed to do that very well. Then I used it to ask me English proficiency test exercises -- it did that very well, too. THEN I asked it to tailor these exercise questions to a certain proficiency level, which I found it could also accurately do. Finally, I asked it to generate these exercises in a consistent JSON format. So far, I haven't found any problems.
With these in mind, I moved forward to creating Ever English, to create a web app able to generate unique and dynamic English exercises on the go using Google's Gemini AI.
I aimed to allow users to be given exercises befitting their proficiency. I would also track their progress, and, thanks to AI, adapt the generated exercise to match their increasing proficiency.
What it does
Ever English is an online English learning platform. Users start from zero and level up their proficiency through participating in fun English exercises and quizzes to gain enough experience to get to each next level. These exercises are dynamic because they are generated through Gemini and takes into account the user level and appropriate concepts that someone at a particular level should learn.
There are currently 4 types of exercises users can do (I will provide a quick link to try each exercise type, but you have to be logged in first):
Comprehension Exercise
Users will be given a block of text. Then there will be a question asking about the text. Users will be given multiple choices and be prompted to choose the correct one. This will test a users ability to read and comprehend reading material.
Conversation Exercise
Gemini will generate an unfinished dialog between two people. The last line will be blank. It's up to the user to complete the dialog with the most appropriate answer.
Sentence Arrangement Exercise
Gemini will generate a sentence fitting the user's current level. Then the sentence will be scrambled. The user will have to unscramble the sentence into the correct order.
Parts of Speech Match Exercise
Gemini will generate a list of words and a list of parts of speech. The user will have to match each word to the correct part of speech or vise versa.
How we built it
I built this using a selection of technologies working together to provide the desired features I had outlined during the planning phase, which are:
Gemini AI
The core of this application. Gemini was used to query for JSON objects representing the different kinds of exercise based on appropriate concepts and the user's level. This JSON is then used to render the quizzes the user will view.
Appwrite
Appwrite provides seamless authentication as well as needed data storage and event responses. For example, upon user registration, Appwrite functions will generate a corresponding userLevel row in the database to store each user's level to track their progress.
NextJs
NextJs sticks the whole thing together to make one app. It's used as the frontend. The app router's route handlers were used to call upon Gemini to generate exercises without exposing API keys.
Challenges we ran into
Perfecting each prompt to generate the appropriate exercises for each type took a while, but eventually I got each request to Gemini to generate the right format of JSON.
Accomplishments that we're proud of
I'm really glad to be able to put all of this together. It's my first time using an AI in my web apps through API keys, and I'm proud of what has been built.
What we learned
There was a really good article by Google about prompting. It was for beginners, but I referenced it a lot and found it to be useful.
What's next for Ever English
At time of writing, there are a few features in mind that I would love to implement before the deadline arrives:
- Allow users to have friends
- Leaderboard among friends
- Exercise involving images
Log in or sign up for Devpost to join the conversation.