Inspiration

COVID-19 has hurt many parts of society and seriously impacted the way we go to school and learn. As a French Immersion student who grew up in an incredibly Anglophone community, I was upset to learn that many French Immersion students in my hometown have been forced to drop out since the program is not available online there.

The idea behind the app is to offer a way to practice some French skills from home or remotely, similarly to the drills we did in my French classes growing up.

What it does

This app is a game to help students learn French verb conjugations. Users can select one of four verb tenses (Présent, Passé composé, Imparfait, and Futur) and a chosen time limit (1, 2, or 5 minutes).

During the game, the app provides verbs and pronouns to use for conjugation (for example, conjugate "demander" for "il"). The user must input the correct answer to earn points. My idea is that this could occur in a group setting, with the student that gets the most points in a time period winning.

The game also tracks users' performance on each tense locally. Their results are viewable on a stats page that allows a user to see their performance change over time as they develop each tense.

How I built it

The game is developed on Android Studio in Java. It uses a series of .CSV files I prepared for each verb tense that include the verb and its conjugations for each pronoun, pulling verbs and choosing pronouns pseudo-randomly from the files.

Testing of the app was performed on two emulators (a Google Pixel 2 phone and Pixel C tablet) run through Android Studio.

Challenges I ran into

There were a variety of challenges throughout the project. For me, the first issue to overcome was creating a good idea. I was most interested in addressing the COVID-19 Education challenge, but in the weeks prior to the hackathon I had a difficult time coming up with exactly what I wanted. I only came up with this idea a few hours before the hackathon started, which may have set me back compared to other teams that planned far in advance.

The first roadblock was crashing issues when selecting the verb from the CSV file. A built-in function I was going to use was constantly returning an empty string array, rather than correctly splitting each row. I ended up having to create my own CSV reader class that was able to fix this issue.

Another issue was with the timer. When a user would leave the game (i.e return to the main screen), the timer would continue to run and the puzzle would remain active until they returned. I learned about the lifecycle of an Activity, and was able to override this behaviour with the onPause() and onResume() methods that I had never really used before.

Accomplishments that I'm proud of

This is my first Hackathon, so I'm very proud that I was able to come up with and create an idea, then fully implement it. I'm normally not a super creative person, but thinking about the challenges that face French Immersion students in COVID-19 helped me to create this idea that I was passionate about.

I'm very proud with the result, especially considering it took about 24 hours to produce. With further refinement, I'm sure this app can continue to improve and be something useful for some people.

What I learned

I learned more about mobile development for Android, such as how to use a Handler to run commands in the future and to enqueue actions to be performed on other threads. This helps to make mobile applications more versatile than they normally would be. This could be used to introduce a timeout ability, for example.

I learned about the Android OS as well, and how we can store data in the system. I used an agile method for storing user's attempts and correct answers that would make it very easy to expand the game in the future.

What's next for Con-jeu-guez!

The game can continue to be expanded by adding new verb tenses and verbs. The user experience could also be improved by adding sound effects, such as when a user inputs a correct/wrong answer. I think some Kahoot music would also be a nice touch...

It may also be a good idea to replace the SharedPreferences method of storing data to using Firebase, that way the data could still be stored if a user uninstalls and reinstalls the program.

I currently intend on releasing this to Google Play in the near future and can then share it with my network, some of whom are studying to become French teachers.

Share this project:

Updates

posted an update

Final Update

I've wrapped up my final tweaks and changes to the app and decided to call it here, after a morning of testing. I prepared my demo video late last night and have submitted.

This has been a fun project to work on during uOttaHack, and I'm proud about the work I've done. I look forward to participating in future hackathons and continuing to work on this over the next few weeks.

Log in or sign up for Devpost to join the conversation.

posted an update

Evening Update

I've got all of the functionality I planned to get out of it. Since Lunch, I added in a points system that gives or revokes points for each correct or incorrect answer (+10 for correct, -5 for incorrect). I've also added in a timer that counts down from the chosen time and locks the game at the end.

The last major addition is the stats page, which shows a user their completed puzzles, attempted puzzles, and correct rate for each of the verb tenses.

I've still got a video demo of the app to complete (and improving the devpost), and some more testing. If I come up with a particularly inspiring idea I can add it as well, but I'm not sure if I will.

Log in or sign up for Devpost to join the conversation.

posted an update

Lunch Break Update

I spent last night mostly planning (including some coolish graphics) and only got to work on the app itself early this morning. The core functionality of the game is complete and has a pretty UI to go along with it. I also registered the domain name http://conjeuguez.com/ from GoDaddy to try to qualify for that prize.

The app chooses a verb from a CSV file and then a corresponding pronoun to get something it corresponds with.

This afternoon I have to set up the timer so it counts down while the user plays, as well as figure out how I want to do points (probably derived from puzzles solved / minutes). I'd also like to do a stats page, if time permits, that lets users see how many questions they've solved of each tense and their general success rate.

Log in or sign up for Devpost to join the conversation.