VocalVocab is the interactive way to master spelling and expand your vocabulary! Designed for learners of all levels, VocalVocab transforms your mobile device into a personal spelling tutor. Whether you're studying for a spelling bee, learning a second language, or just brushing up on your word skills, VocalVocab offers a unique and engaging educational experience.
- Category: Education
- Mobile: Uses Audio, Real-Time, Notifications(maybe)
- Story: Learners, Competitive Spellers. Allows users to improve the spelling of words that they hear. Users might find this application engaging if they are interested in self-improvement, education, or language mastery
- Market: Educational Institutions, Individual Learners, Global Non-English Speakers (more languages can potentially be added)
- Habit: Daily Practices, Progress Tracking. Can track the user's progress. Users can open this application daily to improve their language skills. The average user consumes the content.
- Scope: It may be challenging to build a perfect version of this app. It would still be interesting to build a stripped-down version of this app.
Required Must-have Stories
- User can hear the given word
- User can hear the description of the given word
- User can adjust how many letters they want the word to be
- User can see which words they have answered previously
- User can retry the word if they get it wrong
- User can delete a word from correct answers by swiping left
Optional Nice-to-have Stories
- User gets 3 tries to get the spelling correctly
- User can see their streak of correct answers
- User can change the speed of the playback audio
- Play Screen
- Press play to listen to the word
- Press play to listen to the description of the word
- Replay Screen
- Users can retry the word if they get it wrong
- User gets notified if they get it wrong and can try as many times as they wish
- Settings Screen
- Users can adjust how many letters they want the word to be
- Completed Screen
- User can see which words they have answered correctly
Tab Navigation (Tab to Screen)
- Home Screen
- Settings Screen
- Completed Screen
Flow Navigation (Screen to Screen)
- Play Screen
- => Completed
- Replay Screen
- => Play Screen or
- => None
- Completed Screen
- => Home
- Settings
- => None
Property | Type | Description |
---|---|---|
word | String | The word itself |
nounDefinition | String? | The definition of the word when used as a noun |
verbDefinition | String? | The definition of the word when used as a verb |
WordClass
: Represents a word with its possible noun and verb definitions.WordDataModel
: Collection ofWordClass
instances, including saving and loading from UserDefaults.
- (GET) Query Word
func fetchWords(completion: @escaping ([String]) -> Void) { let randomWordsURL = URL(string: "https://random-word-api.herokuapp.com/word?length=\(wordLength)")! }
- (GET) Query Word Definition
func fetchDefinitions(for word: String, completion: @escaping (WordClass, Bool) -> Void) { let definitionURLString = "https://api.dictionaryapi.dev/api/v2/entries/en/\(word)" }