Skip to content
This repository has been archived by the owner on Jun 22, 2020. It is now read-only.

๐ŸŽ“ Hybrid app that allows students to better prepare for exams built with React-Native, Expo, Redux, and Kitten-UI

License

Notifications You must be signed in to change notification settings

ihoudjedje/mobile-flashcards

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

28 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Logo

Mobile Flashcards

The funny way to prepare for tests and exams!
Udacity's React Nanodegree 3rd Project

Report Bug ยท Request Feature

Table of Contents

About The Project

Screenshots

alt text

User Experience

Mobile Flashcards is an app that helps you study. For each subject or category you are studying, you create a deck. Each deck (category) will contain questions (cards) you want to asnwer.

The app comprises of "Decks" containing "Cards". Each deck you create will contain questions (cards) for a particular category (deck). For each card you create a question and an answer.

Once you have a deck with cards, you can start a quiz to test your knowledge. As you go through the quiz, you will mark your answers as "Correct" or "Incorrect". At the end of your quiz you will get a final score.

Happy Studying ;)

Built With

  • React Native - A framework for building native apps with React.
  • Redux - Predictable state container for JavaScript apps
  • Expo - An open-source platform for making universal native apps with React.
  • Kitten UI/Eva Design - Design system based UI library

Getting Started

Prerequisites

This is an example of how to list things you need to use the software and how to install them.

  • yarn or npm, I highly recommand the former!
sudo apt update && sudo apt install yarn
npm install npm@latest -g

Installation

  1. Clone the repo
> git clone https://github.com/ilyeSudo/mobile-flashcards.git
  1. Install project packages
> yarn install OR npm install
  1. Start the emulator or connect a physical device and check with adb devices command

  2. Launch the local server, Open debugger-ui to view it in the browser

> yarn start OR npm install
  1. Launch the app on simulator or a connected device
> yarn android/ios OR npm run android/ios

Local Testing

Platform Simulator Device
Android โœ”๏ธ โœ”๏ธ
iOS โœ”๏ธ โœ–๏ธ

App Features

  • Add New Deck: Option to create new decks/categories

  • Add New Card: Option to add a new card to the deck. Card contains a question and answer.

  • Quiz Result: When all questions have been asked and marked as correct or incorrect a results view displays with a score.

  • Notifications: User receives a local notification at 9pm if they haven't opened the app that day.

Data

This is a React Native app and as such the project was started using create-react-native-app. The code base is rather straight forward and a standard React component model is used. Redux is used for state management and React Native AsyncStorage is used for persistence. The data structure used relies on a deck_title_id being generated for each deck, and the data for each deck being stored accordingly:

deck_title_id: {
  id: deck_title_id,
  name: name_of_deck,
  questions: [
    {question , answer},
    {question , answer},
    {question , answer}
  ]
},
deck_title_id: {
  id: deck_title_id,
  name: name_of_deck,
  questions: [
    {question , answer},
    {question , answer},
    {question , answer}
  ]
}

This application could certainly be enhanced (such as enabling deletion support for decks and cards), but as of right now, it delivers on the requirements for the Udacity React Nanodegree.

Author

Acknowledgement

License

This project is licensed under the MIT License - see the LICENSE.md file for details

About

๐ŸŽ“ Hybrid app that allows students to better prepare for exams built with React-Native, Expo, Redux, and Kitten-UI

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published