Giter Club home page Giter Club logo

repeatcard's Introduction

Repeatcard

Build Status Quality Gate Status Android CI License Discord

An Android app to create and memorize Flashcards.

What's a Flashcard?

Quoting from Wikipedia

A flashcard or flash card is a card bearing information on both sides, which is intended to be used as an aid in memorization. Each flashcard bears a question on one side and an answer on the other. Flashcards are often used to memorize vocabulary, historical dates, formulas or any subject matter that can be learned via a question-and-answer format. Flashcards can be virtual (part of a flashcard software), or physical.

The main goal of this app is to help users memorize vocabulary using Flashcards.

Imagine you want to memorize the English word Banana. You can create a Flashcard with a banana picture, using the word banana as the title. So each time you open that Flashcard you see a picture of a banana associated with the word banana. Eventually you can add an optional description to help you memorize the word.

That's why each Flashcard has an image, a title and an optional description.

OK, what should I do with those Flashcards?

You repeat them, that's the point! Because practice makes perfect ๐Ÿš€!

Each Flashcard belongs to a Directory. As you download the app for the first time you get a default Directory to store your Flashcards. But it's highly recommended that you create your own Directories based on which type of Flashcards you are going to store in those. A Directory named Fruits can contain Flashcards of fruits, for instance.

In each Directory you can add Flashcards or repeat your existing Flashcards.

If you have more than 4 Flashcards, you can take a quiz to test your knowledge. At the end of each quiz, you will see your results which gives you a feedback of your learning level.

Download

You can download the application from PlayStore.

Get it on Google Play

Contributing

This app welcomes first time contributors with all levels of experience. You don't like something or the app has a problem? Please file an issue! Would you like to work on an issue? Just ask for it to see if someone is already working on it or not. Afterwards, make a PR.

If you are opening a Pull Request, you should run Detekt and Lint. To do so run these commands:

./gradlew detekt
./gradlew lint

You can join the Discord channel to discuss or ask for further info: Discord

Contributors

Following the list of amazing people that contributed to this project in historical order:

repeatcard's People

Contributors

guuilp avatar ilkeraslan avatar illusionfpv avatar kardelio avatar lingarajsankaravelu avatar mantas84 avatar renanrbs avatar stuie avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

repeatcard's Issues

Remove logs

We should remove the logs as it's not a requested feature.

Feature/Add Photos

We should use CameraX in order to permit user to take a photo and create a Flashcard from that photo.

Disable Save Button

When user tries to create a Flashcard without a title or an image, we should disable the "Save" button and show a Toast which tells that the user can't create a Flashcard without a title or an image.

fix/buttons

We should have the same styling (margins, dimensions etc..) for all buttons in the app.

As a reference it would be nice to have the style of the save button that we have in QuizScreen.

For the buttons in the QuestionDetailScreen maybe we can create a separate style as they are horrible right now ๐Ÿคฃ

AddCard Image Selection

Users should be able to pick an image from the gallery in order to add it to the associated Flashcard.

Create Stats in HomeScreen

We should create a section to show the statistics in HomeScreen. The section should be a Composable.

In particular, stats should include:

  • Number of flashcards created
  • Latest quiz score

Migrate Directories to Compose

We should migrate the existing DirectoriesScreen to Jetpack Compose.

In this task we should:

  • Create a Directories composable which is capable of rendering existing directories

Fix "No Flashcards Yet" Error

When we're in a directory that has no Flashcards and we add one, "No Flashcards Yet" text is still visible instead of becoming invisible. Might be a problem with StateFlow that we used in the corresponding ViewModel.

Improve Onboarding

For the time being, the onboarding process is not clear. It does not explain what is the purpose of the app and how users can create a Flashcard, repeat them and take a quiz.

Thus, we should improve the onboarding process using clear images and explanations.

We should have max 5 screens for the onboarding as we actually have.

Results UI Enhancements

Actually we are just showing the correct answers, wrong answer, and total questions in numbers. We should create a decent UI to show the results.

Save and show the latest Quiz results

We should serialize and save the latest quiz results and show them in HomeScreen as stats (5 questions, 3 correct answers, 2 wrong answers etc...)

Can't change a Flashcard directory

When the user adds a Flashcard in a directory, it's not possible to move that Flashcard in another directory. The user has to first remove it, and than recreate it in another directory.

We should add a method in the corresponding Repository that consents changing the Flashcard directory.

ListAdapter positions

In the ListAdapters we use in the app, we should get the positions from the holder directly.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.