Giter Club home page Giter Club logo

dantex's Introduction

Hi ๐Ÿ‘‹, I'm Martin

Co-Founder and CTO of VIABIRDS Technologies

  • ใŠ™๏ธ I'm currently working on a "Podcast Studio" (still a secret)

  • ๐Ÿค Iโ€™m looking for help with the Flutter implementation Dante

  • ๐ŸŒฑ Iโ€™m currently learning about Bitcoin, Blockchain and Cloud Native

  • ๐Ÿ‘จโ€๐Ÿ’ป Most of my projects are available here on Github

  • ๐Ÿ“ I (not so) regularly write articles on mescht93.medium.com

  • ๐Ÿ’ฌ Ask me anything about Mobile Development with Android and Flutter

  • ๐Ÿ“ซ Or reach out to me at [email protected]

  • โšก Fun fact: I do like C. Really! But don't tell anybody!

dart firebase flutter kotlin php realm

shockbytes

ย shockbytes

machm @mescht93

dantex's People

Contributors

lockierichter avatar shockbytes avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

dantex's Issues

Add timeline feature

Overview

Add a dedicated screen showing the timeline.

This is a 1:1 re-implementation of the existing feature on the legacy Dante app.

Implementation

Use any Flutter package that offers a similar timeline view as on the legacy app. Make sure that both sorting strategies (first started / finished) are implemented.

Contribution Guide

Hi Martin,

I really love the app and have been wanting to rebuild it in Flutter for some time! I would love to get involved with this project, do you have a contribution guide and/or roadmap of features that you want developed so that I can help out?

Thanks,
Lockie

Change bundle identifier for ios and Android

Change bundle identifier and package name from .dantex to .dante and update Firebase configuration file. This is important to make the new app compatible with the previous Android version.

Request password reset mail

Firebase allows requesting a password reset mail. Add a field when entering email & password that sends the password reset email to the entered email address

This ticket implements the following method from the Android App:

    fun sendPasswordResetRequest(mailAddress: String): Completable

Change the position of books within the state via drag/drop

Overview

A long press on the items in the main page should allow a drag-and-drop gesture. Each book can be repositioned to another position.

Implementation

If there is any other sorting strategy chosen than default, the default sorting strategy should be selected after updating the positions.

Add statistics feature

Add a dedicated screen showing the statistics. This is a 1:1 re-implementation of the existing feature on the legacy Dante app.

Dark mode support

Add support for dark mode, the color palette for light and dark themes can be found in the legacy Dante project.

Allow users to update the email password

Users who signed up with the email should be able to change their password in the menu.

This ticket implements the following method of the Android App.

    fun updateMailPassword(password: String): Completable

Add logging facility

Overview

Add a logging facility that offers a capable logging solution for debugging and production purposes, that can be used throughout the codebase.

Full login/signup functionality

Implement Firebase Auth in the same way as supported on the old Dante Android App. Users should be able to login with Google, Email and anonymously. Furthermore, anonymous users should be able to upgrade to an email account later on.

One special requirement is to use the Google Sign-In dependency for Google signup, as these credentials are later on required to access the Google Drive backups

  • Login with Google
  • Login anonymously
  • Login with Email
  • Upgrade from anonymous user to email user

Support Email Login

Support email login for customers. Customer can click on Login with Mail and they can then enter email address and their password. If the user hasn't created an account, then create one if the credentials. Furthermore, check if the email isn't already used for Google logins.

The following methods from the Android app should be implemented.

    fun fetchRegisteredAuthenticationSourcesForEmail(mailAddress: String): Single<List<AuthenticationSource>>

    fun createAccountWithMail(mailAddress: String, password: String): Completable

    fun loginWithMail(mailAddress: String, password: String): Completable

Show action overflow menu in book_item_widget

Overview

Show the action overflow menu when clicking on the 3 dots on each book_item_widget. The supported actions should be:

  • Move to read later
  • Move to read
  • Move to reading
  • Share
  • Suggest
  • Edit
  • Delete

Allow users to delete the account in the settings

Overview

Users should be able to delete their account and all their corresponding data with it. There should be an extra section in the settings which allows the users to do so.

Implementation

The firebase account, as well as all data on Firebase should be deleted. Just followed by a signout request of the customer.
Use the method FirebaseAuth.currentUser?.delete() for this.

Edit books

Use the Add books functionality to edit books from the book overflow menu.

Add wishlist book screen

Add a dedicated screen showing the user wishlist. This is a 1:1 re-implementation of the existing feature on the legacy Dante app.

Add Search Functionality

Make the Search bar clickable and open a search screen.

The SearchCriteria class abstracts the actual criteria that the SearchBloc needs to implement. For the first implementation a simple text search for title, subtitle and author is sufficient.

Track events that got previously tracked on Dante

Overview

Simply put, track all events that were previously tracked on Dante, which are located in this file: https://github.com/shockbytes/Dante/blob/develop/tracking/src/main/java/at/shockbytes/tracking/event/DanteTrackingEvent.kt

Implementation

The tracker should have a debug and a production implementation, just as done in Dante. For debug purposes, all should be tracked to the console. In production, Firebase Analytics should be used. https://github.com/shockbytes/Dante/tree/develop/tracking/src/main/java/at/shockbytes/tracking

Simply put, just port the Kotlin implementation to Dart.

Add books manually

Allow users to add all the information of a book manually and allow them to upload images to the Firebase Storage.

Use EasyLocalization package for translations

Overview

Introduce the package EasyLocalization for a better localization handling. The current localization is cumbersome at least. The new package will make translations easier and does neither require a context nor a generated class to perform the translation.

Use Firebase Database as book repository implementation

Use Firebase Database as the primary data source for saving and reading books from the storage. Each user should have their own database path, which only they can access.

For this, create a dedicated implementation of the BookRepository interface.

Show other book suggestion, if main book suggestion is wrong

When adding a book, only the main book suggestion is shown in the bottom sheet, although there are 10 more suggestion that are fetched within the same download call. These 10 other suggestions should be shown in a list when the user clicks on Not my book. The list can be either a dialog (as it is right now in the Android app) or it can be directly embedded within the bottom sheet (the preferred solution).

When clicking on another book, the main target should be replaced with the new book suggestion.

Add Pages per month statistics card

Overview

Add the pages per month statistics card INCLUDING setting a goal.

Implementation

When implementing the PagesPerMonthStatsItemBuilder consider the following subtasks:

  • Logic
  • UI
  • Dark Mode
  • Mobile Layout
  • Set a goal

Book Detail Page

Show all book details as in the legacy Android App.

Only implement the basic UI of this page and don't go into details of separate features, like Reading Behavior, Labels and edit book

[Request] Add a "Book I own" feature

Hir, I've seen that Dante is moving forward and it's awesome.

But I wanted to ask if you could use this refactoring to add a "book I own" tracker.

Maybe just a feature to rename tabs could make it (I don't use the tracking feature, so the "reading" is useless?) And configure Wich tab is opened by default.

Maybe even configure Wich tabs are displayed and Wich ones are hidden in the menu (I only use "Done" and "Wishlist" tabs)

Allow anonymous users to upgrade to an email account

Anonymous customers should be able to enter an email address and a password to upgrade to an email account.

This ticket implements the following Android app method:

    fun upgradeAnonymousAccount(mailAddress: String, password: String): Completable

Add Android Widget

Basically, port the Android Widget code from the legacy codebase and connect it to the new Firebase data source.

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.