Android Quiz App (Spaced Repetition) made with Material Design; features categories, statistics and different question modes

Overview

BrainPhaser

Build Status

Android Quiz App in Material Design made with Java. Designed for tablets in landscape or smartphones in portrait.

Launcher Icon

Features

  • Different Categories
  • 3 Different Types of Questions ("Challenges"): Multiple Choice, Self-Check, Text Entry
  • Material Design
  • Import of Challenges/Categories via XML
  • Multiple Users
  • Statistics
  • Settings
  • Supported Langauages: English, German and Spanish

Screenshots

User Selection Category Selection Challengemc Selfcheck SC2 FreeEntry Statistics Settings

License

Brain Phase Android Quiz App Copyright (C) 2016 Daniel Hoogen, Lars Kahra, Christian Kost, Thomas Stückel, Valentin Funk

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.

EN & ES translations by ordago

Comments
  • Your values/strings.xml is not in English

    Your values/strings.xml is not in English

    Hey there, I stumbled upon your repo after browsing @ordago's (cloned) repositories. I am opening this issue for a couple of reasons, but I will attempt to fix them while I write this issue.

    Leaving your original strings.xml file in German can have a very negative impact on the user experience of your application (see this article about it).

    Also, not to bash on @ordago, but some of the translations in strings-en.xml are too generic or should use other words when you read them. I'm guessing he is Spanish since he translated my app to it, so it's not a big deal.

    You can see a pull request with my name on it within the next few minutes.

    opened by cytodev 8
  • Issues with Build

    Issues with Build

    @CytoDev @ordago could you give me some info on troubles you were having with the build? Would like to fix these to allow easy adaption/customization of the app. I know documentation is very sparse at the moment - would love to improve.

    opened by Kamshak 6
  • NulPointer in CompletionDataSource aus DueChallenge bei spielen der Activity

    NulPointer in CompletionDataSource aus DueChallenge bei spielen der Activity

    Bekomme ab und zu Error:

    java.lang.RuntimeException: Unable to start activity ComponentInfo{de.fhdw.ergoholics.brainphaser/de.fhdw.ergoholics.brainphaser.activities.main.MainActivity}: android.view.InflateException: Binary XML file line #10: Error inflating class fragment

    Caused by: java.lang.NullPointerException at de.fhdw.ergoholics.brainphaser.database.CompletionDataSource.findByUserAndStage(CompletionDataSource.java:63) at de.fhdw.ergoholics.brainphaser.logic.DueChallengeLogic.addDueChallengesByCategory(DueChallengeLogic.java:87) at de.fhdw.ergoholics.brainphaser.logic.DueChallengeLogic.getDueChallenges(DueChallengeLogic.java:62) at de.fhdw.ergoholics.brainphaser.logic.DueChallengeLogic.getDueChallengeCounts(DueChallengeLogic.java:43) at de.fhdw.ergoholics.brainphaser.activities.CategorySelect.SelectCategoryPage.refreshChallengeCounts(SelectCategoryPage.java:86) at de.fhdw.ergoholics.brainphaser.activities.CategorySelect.SelectCategoryPage.sortCategories(SelectCategoryPage.java:94) at de.fhdw.ergoholics.brainphaser.activities.CategorySelect.SelectCategoryPage.onCreate(SelectCategoryPage.java:58) at android.support.v4.app.Fragment.performCreate(Fragment.java:1939)

    opened by CruOzer 6
  • Keine Challenges fällig wird nicht behandelt

    Keine Challenges fällig wird nicht behandelt

                                                                                Process: de.fhdw.ergoholics.brainphaser, PID: 31878
                                                                                java.lang.RuntimeException: Unable to start activity ComponentInfo{de.fhdw.ergoholics.brainphaser/de.fhdw.ergoholics.brainphaser.activities.Challenge.ChallengeActivity}: java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0
                                                                                    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2658)
                                                                                    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2723)
                                                                                    at android.app.ActivityThread.access$900(ActivityThread.java:172)
                                                                                    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1422)
                                                                                    at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                                    at android.os.Looper.loop(Looper.java:145)
                                                                                    at android.app.ActivityThread.main(ActivityThread.java:5832)
                                                                                    at java.lang.reflect.Method.invoke(Native Method)
                                                                                    at java.lang.reflect.Method.invoke(Method.java:372)
                                                                                    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399)
                                                                                    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)
                                                                                 Caused by: java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0
                                                                                    at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:255)
                                                                                    at java.util.ArrayList.get(ArrayList.java:308)
                                                                                    at de.fhdw.ergoholics.brainphaser.activities.Challenge.ChallengeActivity.onCreate(ChallengeActivity.java:62)
                                                                                    at android.app.Activity.performCreate(Activity.java:6221)
                                                                                    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119)
                                                                                    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2611)
                                                                                    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2723) 
                                                                                    at android.app.ActivityThread.access$900(ActivityThread.java:172) 
                                                                                    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1422) 
                                                                                    at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                                    at android.os.Looper.loop(Looper.java:145) 
                                                                                    at android.app.ActivityThread.main(ActivityThread.java:5832) 
                                                                                    at java.lang.reflect.Method.invoke(Native Method) 
                                                                                    at java.lang.reflect.Method.invoke(Method.java:372) 
                                                                                    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399) 
                                                                                    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194) 
    
    opened by Kamshak 5
  • Adding images to challenges

    Adding images to challenges

    Hi! I am very new to Android development and I was wondering how I could add images to the challenges? So something like "What is the object in the image below?", followed by an image and then followed by 4 multiple choice options. I understand that I would need to add an ImageView but would appreciate some guidance!

    Would really appreciate your help!

    opened by manuchopra 4
  • Farben in Kuchen

    Farben in Kuchen

    Die Farben im Kuchen "Am häufigsten richtig/beantwortet/falsch" sollte jeweils die Farbe der Challenge haben (zB "Wie lautet das Ohmsche Gesetz?" in Klasse 4 am öftesten falsch, dann Kuchenstück mit Farbe von Klasse 4)

    opened by Kamshak 4
  • Statistik stürzt ab

    Statistik stürzt ab

    Beim öffnen einer Statistik scrollt man nach ganz unten. Scrollt man wieder hoch und wieder herunter, sieht die Chart komisch aus und beim drauf klicken auf eine Pie stürzt die App ab.

    opened by CruOzer 2
  • FinishScreen kann nicht geladen werden

    FinishScreen kann nicht geladen werden

    FATAL EXCEPTION: main java.lang.IllegalStateException: Could not find CoordinatorLayout descendant view with id de.fhdw.ergoholics.brainphaser:id/challenge_fragment to anchor view android.support.design.widget.FloatingActionButton@41d5ae28 at android.support.design.widget.CoordinatorLayout$LayoutParams.resolveAnchorView(CoordinatorLayout.java:2548) at android.support.design.widget.CoordinatorLayout$LayoutParams.findAnchorView(CoordinatorLayout.java:2491) at android.support.design.widget.CoordinatorLayout.prepareChildren(CoordinatorLayout.java:619) at android.support.design.widget.CoordinatorLayout.onMeasure(CoordinatorLayout.java:670) at android.view.View.measure(View.java:15288) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4876) at android.widget.FrameLayout.onMeasure(FrameLayout.java:310) at android.support.v7.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:135) at android.view.View.measure(View.java:15288) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4876) at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1396) at android.widget.LinearLayout.measureVertical(LinearLayout.java:681) at android.widget.LinearLayout.onMeasure(LinearLayout.java:574) at android.view.View.measure(View.java:15288) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4876) at android.widget.FrameLayout.onMeasure(FrameLayout.java:310) at android.view.View.measure(View.java:15288) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4876) at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1396) at android.widget.LinearLayout.measureVertical(LinearLayout.java:681) at android.widget.LinearLayout.onMeasure(LinearLayout.java:574) at android.view.View.measure(View.java:15288) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4876) at android.widget.FrameLayout.onMeasure(FrameLayout.java:310) at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2397) at android.view.View.measure(View.java:15288) at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:1974) at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1217) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1390) at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1113) at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4481) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:725) at android.view.Choreographer.doCallbacks(Choreographer.java:555) at android.view.Choreographer.doFrame(Choreographer.java:525) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:711) at android.os.Handler.handleCallback(Handler.java:615) at android.os.Handler.dispatchMessage(Handler.java:92) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:4867) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1007) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:774) at dalvik.system.NativeStart.main(Native Method)

    opened by CruOzer 2
  • FloatingButton not visible

    FloatingButton not visible

    Der FloatingButton ist nicht sichtbar bei TextChallenge und Self-Check-Challenge (bzw. der RecyclerView nimmt den ganzen platz ein) SelfTestChallenge ist nun implementiert

    opened by CruOzer 2
  • Fixes gradle errors and removes gitignored files from the project

    Fixes gradle errors and removes gitignored files from the project

    This should also fix #50. It builds on my machine and seems to run quite allright. More testing is needed on your part though, I have not ran your unit tests.

    opened by cytodev 1
  • Crash bei EU

    Crash bei EU

    java.lang.ArrayIndexOutOfBoundsException: length=3; index=3 at de.fhdw.ergoholics.brainphaser.activities.Challenge.MultipleChoiceFragment.onCreateView(MultipleChoiceFragment.java:49) at android.support.v4.app.Fragment.performCreateView(Fragment.java:1974) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1067) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1252) at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:738) at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1617) at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:570) at de.fhdw.ergoholics.brainphaser.activities.Challenge.ChallengeActivity.loadChallenge(ChallengeActivity.java:268) at de.fhdw.ergoholics.brainphaser.activities.Challenge.ChallengeActivity.access$600(ChallengeActivity.java:42) at de.fhdw.ergoholics.brainphaser.activities.Challenge.ChallengeActivity$1.onClick(ChallengeActivity.java:164) at android.view.View.performClick(View.java:3511) at android.view.View$PerformClick.run(View.java:14110) at android.os.Handler.handleCallback(Handler.java:605) at android.os.Handler.dispatchMessage(Handler.java:92) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:4424) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) at dalvik.system.NativeStart.main(Native Method)

    @CruOzer

    opened by Kamshak 1
  • F-Droid

    F-Droid

    Hi @Kamshak

    Since Brain Phaser is licensed under GNU GPL v3, can you consider adding this app to the F-Droid repository? I can give you documentation and links if you need it ;)

    opened by Poussinou 2
  • Adding new Questions

    Adding new Questions

    When adding new questions to the challenges.bpc and submitting an update to the play store, it does not show the new questions for the user. I had to go into my app settings and clear the data. Only then did it show the new questions. Is there someway to show the new questions without having to do this? Also for some reason Import doesn't show in the production version of the app in the play store but when I run it in the emulator it does

    pr welcome 
    opened by AbanoubG 14
Owner
Funk
Funk
This is the kotlin-based android application. In this you can solve upto 100 flag-quiz question and enhance your skill.

Flag Quiz App - DOWNLOAD APP Enhance your knowledge by taking part in this Quiz - 100 Questions in 30 minutes It is based on the Kotlin language. You

Suryansh Prajapati 5 Dec 19, 2022
Pop!Quiz is a quiz building and self study app.

PopQuiz Project Description Pop!Quiz is a quiz building and self study app. Users can create their own quizzes or download them from the server. Creat

null 2 Apr 13, 2022
An android app that use food API to display different categories of food

TheMealApp An android app that use food API to display different categories of food The food api is https://www.themealdb.com/api.php. What I used in

null 8 Jun 17, 2022
AptiBit is an android application that uses Firebase firestore to store the questions and categorize different types of aptitude questions into their categories

AptiBit is an android application that uses Firebase firestore to store the questions and categorize different types of aptitude questions into their categories. It also uses firebase authentication service that allows you to sign in to the app using your custom credentials.

Ashish Gupta 3 Jun 13, 2022
An android app that displays statistics about covid-19 vaccinations and enables the user to make a dummy appointment.

AndroidApp An android app that displays statistics about covid-19 statistics and enables the user to make a dummy appointment. This a simple android a

Thodoris Kanellopoulos 7 Oct 2, 2022
A news app made using android studio in Java with features like favourite news, Location detector for local news, and especially made with HUAWEI APIs

HuaweiGlobalNewsApp A news app made using android studio in Java with features like favourite news, Location detector for local news, and especially m

Christian Imanuel Hadiwidjaja 1 Oct 30, 2021
Simple configurable Twitch Chat Bot for Emote Repetition 😎

DopaminChatter Dopamin is the happiness hormone. What's better than a Twitch Chat with great Emote Usage and Emote Chains (same Emotes after another).

Jakob 2 Dec 9, 2022
Arjun Naik 1 Apr 16, 2022
A quiz app built with trivia api. This app was built with mvvm architecture, dagger-hilt, retrofit, room database, and navigation components.

A quiz app built with trivia api. This app was built with mvvm architecture, dagger-hilt, retrofit, room database, and navigation components.

Stephen Odumirin 3 Dec 19, 2022
Quiz-App - An Android app which have some basic questions

Quiz-App An Android app which have some basic questions Start page Questions pag

Gururaj KL 3 Apr 21, 2022
An android Quiz App in kotlin framework and uses Appwrite as backend

Quiz App Intro An android Quiz App in kotlin framework and uses Appwrite as backend How to clone and run the project: Cloning : git clone https://gith

null 2 Oct 22, 2022
A simple app to showcase Androids Material Design and some of the cool new cool stuff in Android Lollipop. RecyclerView, CardView, ActionBarDrawerToggle, DrawerLayout, Animations, Android Compat Design, Toolbar

#Android-LollipopShowcase This is a simple showcase to show off Android's all new Material Design and some other cool new stuff which is (new) in Andr

Mike Penz 1.8k Nov 10, 2022
App made using Kotlin to retrieve data from an API and show in a recyclerview with Login and SignUp features

App made using Kotlin to retrieve data from an API and show in a recyclerview with Login and SignUp features.

Altair Wallace 1 Feb 17, 2022
ASJ-Quix - A quiz app developed for Android Study jams sessions

ASJ-Quix A quiz app developed for Android Study jams sessions

Vishnuxx 4 Jan 30, 2022
QuizAppKotlinAndroid - Quiz Android App Written In Kotlin

Quizer - QuizAppKotlinAndroid Homepage Result Page Quiz Page

Akshay Rajput 17 Oct 27, 2022
A simple word quiz app to prepare for English proficiency tests

Vocab-Buddy Vocab Buddy is a simple, free, and ad-free word quiz app that is designed to help users exercise/improve their vocabulary for globally rec

Dishant Behera 8 Jun 11, 2022
A work-in-progress quiz app I started developing for a client but got paused.

quiz-app A work-in-progress quiz app I started developing for a client but got paused. Background This app was intended to be a trivia app where users

Ahmet Safa Orhan 7 Oct 18, 2022
Tork is a quiz Application done in android

Tork(Quiz game app) A simple mini quiz game app about programming languages. About The app is a sample quiz with integration of Firebase. The categori

Pooja Shaji 2 Sep 7, 2022
Rolling Scopes School - Android 2021 - Stage 1 - Task 2 - Quiz

rsschool2021-Android-task-quiz Rolling Scopes School - Android 2021 - Stage 1 - Task 2 - Quiz ☝️ Во втором практическом задании создадим приложение-кв

null 0 Jan 13, 2022