sandboxnu / flow-in-the-field Goto Github PK
View Code? Open in Web Editor NEWA language learning mobile app designed to study the relationship between mutual information and flow.
A language learning mobile app designed to study the relationship between mutual information and flow.
Make env variables for api keys
Right now, our app is not using a consistent font on all screens, which is far from ideal. Let's fix that.
The font that we've chosen is Montserrat, which is from Google Fonts (here's its page).
The Export screen on Figma uses Montserrat and can be used as a reference.
Body text has a weight of 400, while headers and buttons have a weight of 500.
This Expo doc on using a custom Google Font may be useful.
In the pairing game, players should be able to create pairings and view their score after submitting them.
Specs:
This ticket doesn't include sending information back to Firestore about sessions & rounds.
Participants will be in one of the following groups: matching game players or selecting game players.
The matching game will have the same number of English and Turkish words, and the participant will match them into pairs.
The selecting game will have one English word and a set of Turkish words, and the participant will select the Turkish word that completes the pair.
Specs:
In order to start a selecting game round, we need to be able to display a random set of word pairs.
Specs:
OnboardingScreens.tsx, OnboardingScreenProps has navigation: any
Specs:
In the Firebase interactor create a...
Backend brainstorm for reference on schemas.
IP
Currently we are still using the default splash screen. This guide should be helpful in implementing our own.
Restyle account settings to match figma wireframe.
Wireframe doesn't have the current password and new password inputs, they can match the inputs on the log in flow.
When typing password, the keyboard comes up and covers the input boxes. Instead, we should have the keyboard "push" the screen upwards so that the user can still see the input box.
The KeyboardAvoidingView may be helpful in fixing this.
Specs:
Users should be able to click the help button on the homescreen to view the onboarding screens (experiment instructions) again.
Specs:
Currently, it just displays some text that says loading, ideally the loading screen would look more intentional.
Stub bc requirements aren't detailed enough
Ideally the font size would be responsive to the size of the screen.
Button text should be 2 points greater than body text, and the smallest body text should be 16.
Possibly helpful links:
React Native docs - PixelRatio
stackoverflow about responsive font size
In the selecting game, players should be able to drag an English word to match with one of many Turkish words, then view receive feedback on whether they were correct and the correct English meaning for each Turkish word.
Specs:
This ticket doesn't include sending information back to Firestore about sessions & rounds.
Should we allow this behavior?
Organize files into subdirectories
need to add repro steps
We should prevent users from thinking nothing has happened and clicking the sign up button more than once, and then encountering an error.
IP
We need to upload the word pairs to Firestore, and ideally this would be a script that we can run.
This is what David gave us: turkishWords.txt
Here's a cleaned up version I made without usedNumber and nextPos: wordPairs.txt
Referencing vocabbuddy's approach may be helpful.
Entering the game screen should trigger a new session to be created, and exiting the game screen should trigger the current session to end.
Specs:
In the Firebase interactor create a...
For the entering and exiting the game screen:
Backend brainstorm for reference on schemas.
Currently, we have our Firebase Interactor set up, but we need to create a login, register, and password recovery screen so that users can actually do these tasks from the app.
Specs:
Drawer navigation doesn't really match our app's functionality, back buttons would make more sense.
Specs:
The styling for the button is not in the wireframes yet - for now we can use a placeholder, ie. a back arrow.
Researchers would like as little identifying information as possible, so we don't want to store a name.
Specs:
When a participant opens the app for the first time, they should be presented with some onboarding screens that present the instructions for the experiment.
Introductory text (split into 3 parts):
"Thank you for agreeing to participate in our study! For the next week, your goal is to learn as many Turkish words as possible."
"To achieve your goal, you'll be using this app! Here is how it works: You'll see a set of English words and a set of Turkish words. You'll try to match each English word to the correct Turkish word, then you'll receive feedback. The more you practice, the better you'll get!"
"Over the next week, you can use this app to practice as much or as little as you like. At the end of the week, you'll receive a vocabulary test. The better you do on the test, the more money you'll win!"
Specs:
If blocked, contact @emaela.
Right now, we don't have any users or authentication! Firebase Auth looks like a promising tool to implement that. For our purposes, we only need the ability to register with email.
Documentation:
[ ] Getting started with Firebase Auth
[ ] Firebase User Authentication on Expo docs
Specs:
If blocked, contact @emaela.
IP
Specs:
Repro steps:
IP
Specs:
In order to start a matching game round, we need to be able to display a random set of word pairs.
Specs:
stub - need to add repro steps
This may just be because we have the expiry time set too short
Entering the game screen should trigger a new session to be created, and exiting the game screen should trigger the current session to end.
Specs:
Backend brainstorm for reference on schemas.
Currently, our Firestore does not have any data about new users that are created using Firebase Auth.
We want a new user to be added to Firestore after registering them with Firebase Auth. When the user is created, they should be randomly assigned a testing group (2, 4, or 8 pairs of words) and given a test date that is 7 days after their registration day.
Specs:
If blocked, contact @emaela.
For a user to play a game, we must be able to get a random set of word pairs from the Firestore.
Specs:
Fix the icons for profile and help to match the wireframes.
Todo
When a player selects to play again, they should be able to play a new round for both the matching and selecting game.
Specs:
Set up a way to emulate Firebase locally for testing purposes
Documentation:
Connect to Firestore Emulator
Connect to Firebase Auth
Currently, the onboarding text is specific to the pairing game, and is shown to all users (regardless of their game type).
To properly inform participants, let's use different onboarding texts for pairing vs selecting games, and show the appropriate text to participants during onboarding.
The text should only differ in the second onboarding screen:
Pairing:
To achieve your goal, you'll be using this app! Here is how it works:
- You'll see a set of English words and a set of Turkish words.
- You'll try to match each English word to the correct Turkish word, then you'll receive feedback.
- The more you practice, the better you'll get!
Selecting:
To achieve your goal, you'll be using this app! Here is how it works:
- You'll see one English word and a set of Turkish words.
- You'll try to match the English word to the correct Turkish word, then you'll receive feedback.
- The more you practice, the better you'll get!
Add validation for user inputs in login/register and display feedback to users.
Specs:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.