An Android app that lets you download free children's books in different languages from non-profit publisher Book Dash

Overview

Bookdash Android

BuddyBuild

Check out the blog post here: http://riggaroo.co.za/book-dash-android-app/

Download the app: https://play.google.com/store/apps/details?id=org.bookdash.android

Open Beta Testing Group: https://play.google.com/apps/testing/org.bookdash.android

Book Dash is an Android App for the NPO where you can download books in different languages for free.

Screenshots

phone image

phone image

phone image

What does this app do?

It is an open source Android application that allows people to download children's story books. The books are available in different languages such as English, Sepedi, Zulu, Afrikaans etc. The books are free to distribute and translate.

Read more about Book Dash here: http://bookdash.org/

Libraries this app uses:

  1. MaterialHelpTutorial - https://github.com/spongebobrf/MaterialIntroTutorial
  2. FabButton - https://github.com/ckurtm/FabButton
  3. Firebase - https://firebase.google.com/
  4. Fabric - https://fabric.io/dashboard
  5. Glide Image Loading - https://github.com/bumptech/glide

Setup

  1. Clone or download this repo.
  2. This app runs off a Firebase backend. You will need to generate your firebase backend. To do this, navigate to https://firebase.google.com/ and sign up. Create a project called "Book Dash" (or what ever you want to call it).
  3. Navigate to "Database", select the three dots and then select "Import JSON". Select the file server/book-dash-a93c3-export.json. Allow Firebase to import the data. You will also then need to place books in the storage container on firebase. You can find an example book located here: server/simaandsiza-en.zip. Navigate to your Firebase console, and click storage, create a folder for the books and place them in there. You can then set the download URL of one of the books to use the book you have just uploaded to firebase storage in the STORAGE_PREFIX object. Within each zip file for a book, there is a file called bookdetails.json, this file is used to describe the images used and the number of pages in a book. In FirebaseConfig class you will need to change the base url of your book storage in the variable named -
  4. The database rules and storage rules can also be imported into Firebase, those files are also located in the server folder. (For more info on getting your own server up and running, check out https://github.com/bookdash/bookdash-backend-admin-portal
  5. You will need to generate your own google-services.json file to use with the app. Navigate to the Firebase project settings dashboard. You should see an option to download the google-services.json file. This must then be placed into the app folder of this project.

[OPTIONAL setup]

  1. If you wish to build a release version you will need to create your own keystore file and edit the password values in the following file - (create a version of the file without the .sample extension): release-keystore.properties.sample
  2. Setup a Fabric Account. https://fabric.io/dashboard
  3. Get your Fabric API Key and Client key, change it in the file: /app/fabric-sample.properties and rename the file to fabric.properties

Contributions

Contributions are welcome. Please read the contributions guide for more information.

License

Copyright 2016 Book Dash.

Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Comments
  • App crashes after the splash screen on the Nexus 9

    App crashes after the splash screen on the Nexus 9

    This may also be happening on the Pixel-C, had a crash after the first run, but I got it to work after restarting it.

    With the Nexus 9 (with all current updates applied), if you have a fresh install of the application, you can make it through the intro splash screens, but then the app exits. Had a look through the log files and didn't see anything that sticks out during the crash even with a fresh build of the app.

    We have tested it on the Nexus 10, Nexus 7 (2013), Nexus 7(2012), and a Sinotec 7inch (wifi only) tablet along with the nexus 4-6p phones with no problem....guessing that it might be due to a native library and the chipset of the 9 but will need to dig.

    opened by lgleasain 7
  • issus with build android studio 3.0

    issus with build android studio 3.0

    Information:Gradle tasks [:app:generateMockDebugSources, :app:generateMockDebugAndroidTestSources, :app:mockableAndroidJar, :fabbutton:generateDebugSources, :fabbutton:generateDebugAndroidTestSources, :fabbutton:mockableAndroidJar]

    Error:Execution failed for task ':app:processMockDebugGoogleServices'.

    No matching client found for package name 'org.bookdash.android.qa'

    opened by MustaphaBounoua 5
  • Make the help tutorial available after first viewing.

    Make the help tutorial available after first viewing.

    Make the help tutorial available after first viewing. More info: We also wanted to know if it would be possible to make the tutorial screens available after the first time you open the app? Maybe a "Tutorial" option on the menu or added to the "About" section?

    opened by riggaroo 4
  • Enable page turning using Switch device or earbud jack switch.

    Enable page turning using Switch device or earbud jack switch.

    My name is [...] and I'm currently doing some research on switch-accessible apps! A switch is a device that someone can use to flip between pages of an eBook, or scroll through a PDF. Switches are usually used by disabled individuals that have trouble moving their hands to swipe between screens or hit buttons. I was wondering if your app was accessible to these kinds of devices? I'm mostly asking about bluetooth switches, but am also curious about switches that connect via earbud jack and USB ports,

    help wanted Hacktoberfest 
    opened by riggaroo 3
  • a hacky spike that adjusts for the final Firbase imported data format…

    a hacky spike that adjusts for the final Firbase imported data format…

    …. Will need to get rid of the hard coded url prefixes to clean this up.

    While this works as is, we will want to do this right and get the url from a Firebase storage reference rather than my hard coded approach with this. With the callbacks it's going to take a bit more thought and work to use that, but that is the right way to do this. Submitting this as a pull request to begin the discussion. I also did not run unit tests on this branch and it probably has broken a few tests....and oh yeah, We have the data migrated to the new data store :).

    opened by lgleasain 3
  • fixing pixel-c crashes....wrap content causing issues for book list -- Issue#5

    fixing pixel-c crashes....wrap content causing issues for book list -- Issue#5

    wrap_content in the cardView height appears to lead to a situation where a negative height value is being handed to OpenGLRenderer in certain orientations (which is probably internally because it is trying to determine the outside objects height before all of the inside ones are done.) This is probably a Lollipop issue only, but the fix is to go to fixed heights and then everything works.

    opened by lgleasain 3
  • Build fails

    Build fails

    I downloaded the project (zip) and opened the project main folder with Android Studio 2.0 Beta 2 (I think).

    Would like to be able to build and "step through/debug" things to learn from it.

    After quite a while, it gave this error message:

    Error:Execution failed for task ':app:processMockDebugGoogleServices'.

    File google-services.json is missing from module root folder. The Google Services Plugin cannot function without it.


    On the Gradle Sync tab were these messages. Note that I have all the project source at the E drive location listed. I believe I have all Android Studio settings correctly configured.


    Source folders generated at incorrect location Warning:Folder E:\Downloads\Android Development\BookdashAndroidApp-master\app\build\data-binding-info\mock\debug Warning:Folder E:\Downloads\Android Development\BookdashAndroidApp-master\app\build\data-binding-info\androidTest\mock\debug Information:3rd-party Gradle plug-ins may be the cause

    opened by tabletguy 3
  • Build Failed: Execution failed for task ':app:processMockDebugGoogleServices'.

    Build Failed: Execution failed for task ':app:processMockDebugGoogleServices'.

    Hello,

    I am experiencing an issue while trying to to open this project in Android studio, I tried everything, below is the gradle issue, can you please help me :

    Error: File google-services.json is missing from module root folder. The Google Services Plugin cannot function without it.

    Gradle Console: Executing tasks: [:app:generateMockDebugSources, :app:generateMockDebugAndroidTestSources, :app:compileMockDebugSources, :app:compileMockDebugAndroidTestSources, :fabbutton:generateDebugSources, :fabbutton:generateDebugAndroidTestSources, :fabbutton:compileDebugSources, :fabbutton:compileDebugAndroidTestSources]

    Parallel execution with configuration on demand is an incubating feature. google-services plugin could not detect any version for com.google.android.gms, default version: 8.3.0 will be used. please apply google-services plugin at the bottom of the build file. :app:preBuild UP-TO-DATE :fabbutton:preBuild :app:preMockDebugBuild UP-TO-DATE :fabbutton:preBuild UP-TO-DATE :app:checkMockDebugManifest :fabbutton:preReleaseBuild UP-TO-DATE :app:preProdDebugBuild UP-TO-DATE :fabbutton:compileReleaseNdk UP-TO-DATE :app:preProdReleaseBuild UP-TO-DATE :fabbutton:compileLint :app:generateMockDebugAssets UP-TO-DATE :fabbutton:copyReleaseLint UP-TO-DATE :app:generateMockDebugResValues :fabbutton:checkReleaseManifest :fabbutton:preDebugAndroidTestBuild UP-TO-DATE :fabbutton:preDebugBuild UP-TO-DATE :fabbutton:preDebugUnitTestBuild UP-TO-DATE :fabbutton:preReleaseUnitTestBuild UP-TO-DATE :app:generateMockDebugResValues UP-TO-DATE :fabbutton:prepareComAndroidSupportAppcompatV72220Library :app:processMockDebugGoogleServices FAILED :fabbutton:prepareComAndroidSupportAppcompatV72220Library UP-TO-DATE

    FAILURE: Build failed with an exception.

    • What went wrong: Execution failed for task ':app:processMockDebugGoogleServices'.

      File google-services.json is missing from module root folder. The Google Services Plugin cannot function without it.

    • Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

    BUILD FAILED

    Total time: 4.288 secs

    opened by farisalabed 3
  • Update circle.yml to fix run emulator on circle build

    Update circle.yml to fix run emulator on circle build

    when i run current code on your current master i have this error on circleci

    "echo no | android create avd -n emulatorwithgoogleapi22 -t 9 --abi google_apis/armeabi-v7a Error: Target id is not valid. Use 'android list targets' to get the target ids."

    so i made changes to add missed dependencies - i have no idea how it worked before without including this depencies tests still fail but for another reason

    opened by dmedov 2
  • airplane mode/offline access takes a long time to load.

    airplane mode/offline access takes a long time to load.

    If the tablet is in offline mode the app takes a long time to time out and load cached content. Probably should check to see if there is network connectivity before trying to make requests.

    opened by lgleasain 2
  • Fabric will be discontinued on March 31 2020

    Fabric will be discontinued on March 31 2020

    Google will discontinue Fabric and everything should be migrated to Firebase https://get.fabric.io/roadmap

    I see some project dependencies for Fabric.

    opened by sjmach 1
  • 2.9.2 Security Patch targetSdkVersion -> 33

    2.9.2 Security Patch targetSdkVersion -> 33

    Starting in November 2022, app updates must target API level 31 or above and adjust for behavioral changes in Android 12; except for Wear OS apps, which must target API level 30 or higher.

    https://developer.android.com/google/play/requirements/target-sdk

    opened by MandivdMerwe 0
  • Changes to

    Changes to "Read Me" and Button color

    I am writing this pull request to make a few changes to the Read Me section in order to assure clarity for the user. I am also requesting that the Black Button be changed to a green color to be more fun for the kids!

    opened by dannywerk 0
  • Factors Behind Updating Third-Party Libraries in Mobile Apps

    Factors Behind Updating Third-Party Libraries in Mobile Apps

    Hello Bookdash developers,

    I'm a master student studying third-party libraries update behavior, and trying to build a tool that can help app developers with 3rd party libraries update. The tool should provides insights to developers about libraries in their apps, hence, developers can make better decisions when updating those libraries. The following survey study factors that motivate the update decision.

    Please participate in our survey it should only take 4~8 minutes. Your contribution is very important, the answers are anonymously collected.

    Survey Link https://forms.office.com/r/mNp2tcYe7D

    Thank you for your time and feedback

    opened by arakhia 1
  • Please make the setup instruction clearer

    Please make the setup instruction clearer

    Please use screen shots to explain from step 3 to step 5 am completely lost help please, i really want to work on this project but setting it up is hell frustrating. Is making me feel like a novice programmer even though i have been writing android code for 2 years now.

    opened by Okezie 0
  • Default FirebaseApp is not initialized in this process org.bookdash.android.qa. Make sure to call FirebaseApp.initializeApp(Context) first

    Default FirebaseApp is not initialized in this process org.bookdash.android.qa. Make sure to call FirebaseApp.initializeApp(Context) first

    Am having the same issue even though i have generated my own google-services.json file and pasted in my project. It compiles and crash with the error report "Default FirebaseApp is not initialized in this process org.bookdash.android.qa. Make sure to call FirebaseApp.initializeApp(Context) first." Any help thank you

    opened by Okezie 0
Releases(2.8.0)
Owner
Book Dash
A volunteer-driven project to create children's books that anyone can print and distribute freely.
Book Dash
Saikou - An anilist only client, which lets you stream & download Anime & Manga

Saikou Saikou is crafted based on simplistic yet out-of-state elegancy. It is an

null 2.9k Jan 3, 2023
Download-manager - Boost AWS S3 file download for android

download-manager Boost AWS S3 file download What is DownloadManager? It is desig

Quique Ferraris 0 Feb 17, 2022
App to randomly translate word through different languages

App to randomly translate word through different languages

Grzybek 0 Jun 24, 2022
Hobby-keeping - Platform to record books that you read and games you played! Made with Kotlin and Spring Framework

Hobby Keeping API to record books that you read and games you played! Made with

William Barom Mingardi 1 Jan 29, 2022
Leisure is an Android App containing Zhihu Daily,Guokr Scientific,XinhuaNet News and Douban Books

闲暇(Leisure) 该项目将不再新增功能,仅做重构 Leisure is an Android App containing Zhihu Daily,Guokr Scientific,XinhuaNet News and Douban Books. 60应用市场下载地址: [http://m.a

Danielding 558 Dec 13, 2022
Kotlin Android app for cataloging books off home/office library.

MyLibrary App Kotlin Android app for cataloging books off home/office library. Features: Searching COBISS, Google Books and OpenLibrary by scanning IS

Marko Đorđević 0 Nov 29, 2021
Proof of concept of custom widgets and apps running on the Z Flip3 cover screen. Adds a widget to Z Flip3 cover screen that lets you launch a web browser-like app on the cover.

SubUI-browser Proof of concept of custom widgets and apps running on the Z Flip3 cover screen. Adds a widget to Z Flip3 cover screen that lets you lau

null 35 Dec 24, 2022
Aplicativo Android que consulta a Books API e exibe a lista dos livros mais vendidos.

NY Books API - The Books API provides information about book reviews and The New York Times Best Sellers lists. Aplicativo Android cuja proposta foi m

Marcelo Souza 0 Oct 25, 2021
Bookstore - online store with books, audiobooks and ebooks

Bookstore - online store with books, audiobooks and ebooks How to run After clon

Jakub Frączek 1 Jan 19, 2022
HyperUPnP is Android Application that lets you to Stream Media from PC, NAS or any other device running UPnP/DLNA compliant media server to your Android Device.

Hyper UPnP Android UPnP/DLNA client Stream Media from PC, NAS or any other device running UPnP/DLNA compliant media server to your Android Device. Int

Var Bhat 8 Jul 17, 2022
Endoscope lets you to stream live video between android devices over Wi-Fi! 📱📲

Endoscope - RTSP live video streamer for android devices via Wi-Fi. Project is no longer supported. Alternative solution is under development. Stay tu

Przemek 640 Dec 21, 2022
Ivy Wallet is an Open Source money manager app for android that you can either build or download from Google Play.

Ivy Wallet is an Open Source money manager app for android that you can either build or download from Google Play.

null 727 Dec 26, 2022
ForceField - A Plugin that lets all Players in a specific radius fly away from you

ForceField A Plugin to not get annoyed of other Players Commands /forcefield [Pl

Marcel Böcker 2 Oct 13, 2022
Book Parking is a demo application based on MVVM architecture. The app allows users to booking parking slots, the app uses firebase for the backend.

Book Parking is a demo application based on MVVM architecture. The app allows users to booking parking slots, the app uses firebase for the backend.

Dheeraj Gupta 5 Dec 24, 2022
Companion App for the book

Kotlin for Android Developers (the book) This is the code you can use to follow the book. https://antonioleiva.com/kotlin-android-developers-book/ Are

Antonio Leiva 2.6k Dec 14, 2022
Bookly -Library Book Management App

Android-Study-Jams Bookly -Library Book Management App Problem Statement: University libraries have a very vast collection of books from which student

null 2 Feb 24, 2022
ArchGuard Scanner for scan Git change history, scan source code by Chapi for Java, TypeScript, Kotlin, Go..、Java bytecode use for JVM languages, scan Jacoco test coverage.

Arch Scanner Requirements: JDK 12 Scanner: scan_git - Git commit history scan scan_jacoco - Jacoco scan scan_bytecode - for JVM languages known issues

ArchGuard 27 Jul 28, 2022
Project allowing to query products (languages, libraries, databases, etc) by their properties.

Products app This project allow to search products (mostly software products for now such as languages, libraries etc) based on their properties. For

null 1 May 1, 2022