GithubHelp home page GithubHelp logo

project-easter / flutter-ui Goto Github PK

View Code? Open in Web Editor NEW
41.0 1.0 43.0 5.49 MB

A flutter app where users can exchange books within their nearby location range.

Home Page: https://www.figma.com/file/uhWQuE4EKDHR8AqH4p3eFK/Books-App?node-id=0%3A1

License: Apache License 2.0

Kotlin 0.06% Swift 0.18% Objective-C 0.02% Dart 99.09% Makefile 0.02% Ruby 0.61% Groovy 0.03%
flutter dart hacktoberfest2021 digitalocean hacktoberfest open-source community-project flutter-ui firebase api-rest firebase-database firebase-chat firebase-auth android contributors-welcome provider-state-management flutter-app booksapi good-first-issue

flutter-ui's People

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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

flutter-ui's Issues

Dark Theme

Description

Implement Dark Theme in the Settings Page

Additional data

See Figma for reference

Remove the location slider widget from User Preferences Dialog

Description

  • Remove the location bar slider from the user preferences dialog (See the screenshot)
  • This slider is already present in the settings screen.

Current Screenshots

image

##Additional
Do not delete this widget from the entire app (Just remove it from the user_preferences.dart file).

Linting check (Remove Warnings)

Description

  • Remove all the warnings as shown in the screenshot below.

Screenshots

image

Steps to Reproduce

Please provide detailed steps for reproducing the issue.

  1. See analysis_options.yaml for all the linting rules
  2. Remove all the unused imports.
  3. Update all the deprecated widgets.
  4. Rectify all other kinds of warnings by following standard practices.

Additional data

I'll check whether the Github actions for linting get passed or not after that.

Dashboard screen freezes due to shuffle method

Description

Sometimes, the dashboard page gets stuck due to this shuffle method of the booklist

Current Screenshots

image
image

Additional data

If anyone finds the same issue and knows how to fix it, then comment below. Also, add your screenshots of this issue.

Display nearby books in Explore Nearby Screen

Description

  • Write code so that we can find all the users in a 5 km radius.
  • We should be able to do it by calculating distance via a lat long field of users.
  • We should then be able to fetch all books that belong to all the users within a 5 km radius.
  • Similarly, we need to do for 5-10 km, and 10-20 km (The dummy UI is shown below)

Screenshots

image

Steps to Reproduce

Please provide detailed steps for reproducing the issue.

  1. Firebase files: lib/services/database_service.dart
  2. Explore Nearby Screen: lib/screens/explore_nearby.dart
  3. UserData is created whenever the User gets signed in. (See lib/services/auth.dart)
  4. So the book should contain all the book and owner info ( See #92 )
  5. Add the code in both the files using Firebase code and Firebase ML (if required)
  6. Do not remove the Empty Page Widget, just keep it for the case when no books are available.

Additional data

If there's something related to ML, then you can always discuss it with @ankitoscar here.
Share relevant app screenshots of your before committing any changes.

Null Safety Migration

Description

Migrate the app to null safety with the latest flutter version: 2.5.2 and check which dependencies are incompatible.

Screenshots

None

Steps to Reproduce

Please provide detailed steps for reproducing the issue.

  1. See https://dart.dev/null-safety/migration-guide
  2. See how to fix the partially migrating dependencies
  3. Make sure to follow the Linting rules ( analysis_options.yaml )
  4. Resolve all the conflicts after null safety migration before making any commit.

Additional data

What changes can we make in linting after null safety migration?

Integrate Quotes API

Display Quotes at the very first line in the dashboard section. Currently, the quotes get changed whenever we switch between tabs. We can either keep this feature or close this issue after further discussion.

Email Authentication using Provider and Firebase

Description

  • Setup Email Signup using Firebase and Provider State management
  • #56 has already been created for removing the confirmation code page
  • Auth user flow is shown below

Screenshots

image

Steps to Reproduce

Please provide detailed steps for reproducing the issue.

  1. Make an auth provider dart file in lib\providers
  2. All the auth screens are in lib\screens\auth
  3. Firebase Auth has been set up in lib\services\auth.dart

Additional data

Auth User flow: https://www.figma.com/file/uhWQuE4EKDHR8AqH4p3eFK/Books-App?node-id=0%3A1
Maybe we can reset the password in a better way. Let's discuss it here

Email Login and Logout

Description

To implement Email Login in the Initial Screen. Currently, it's resulting in null uid as shown below.

Screenshots

Steps to Reproduce

Please provide detailed steps for reproducing the issue.

  1. Initial screen : lib\screens\initial_screen.dart
  2. Auth files: lib\services\auth.dart
  3. Also implement the email log out when the user taps on the logout button.
  4. Private profile: lib\screens\profile\private_profile.dart

Additional data

None

Get Book Genre from Books API

Description

  • Retrieve the book genres from Books API in the dashboard page and when a user adds a book to the Library page.
  • The dummy data is shown in the screenshot.
  • Currently we are using Google Books API for retrieving books, but you can use other APIs like Goodreads, etc (See #97)

Screenshots

Steps to Reproduce

Please provide detailed steps for reproducing the issue.

  1. Book description file: lib\screens\book_desciption.dart
  2. Book provider file: lib\providers\books.dart
  3. API file: lib\config\api.dart
  4. Add your book file: lib\screens\add_book.dart

Additional data

Attach the working screenshots in the pull request.

Remove Confirmation Code Screen

Description

  • Remove the confirmation code page and directly navigate the register screen to the dashboard.
  • Remove the confirm_email.dart file, and set the routing accordingly. (Register Page is a dummy right now, we'll make it functional through creating another issue)
  • Also remove all the functions related to the above file, like ConfirmationCodeTextField(), etc from the app as shown in the screenshot.

Screenshots

image
image

Additional data

We can discuss this here further before making a major change.

Edit Profile and Owner's Info tab not working (Provider State Management)

Description

  • The Edit Profile Page isn't opening. The error is as shown below.
  • Same error occurs in the book description page when tapping on Owner's Info
  • Try it in your local system first

Screenshots

image
image

Steps to Reproduce

This has occurred because the provider hasn't been registered in main.dart.

  1. So either replace the Provider with Stream Provider (Initialized in home.dart)
  2. OR Extend the UserData function with ChangeNotifiers with relevant functions(If required)
  3. User Model : lib/providers/user.dart
  4. Book Description page: lib/screens/book_desciption.dart

Additional data

What better solution can be there to fix this issue? Go through the entire codebase for more clarity.

Dashboard Recommendation System Integration

We need to complete the following things:

  • Integrate with REST API and delete dummy data
  • Alternate text of 'No books to display ' instead of the whole Discover New and other sections
  • Search bar and filter functionality

Bookmark not working (Provider State Management)

Description

The Books should get saved in the Saved Books section, once the user bookmarks them but it's not functional right now.

Screenshots

Steps to Reproduce

Please provide detailed steps for reproducing the issue.

  1. Check the book provider file: lib\providers\books.dart
  2. Book description file: lib\screens\book_desciption.dart
  3. Other provider files: lib\providers
  4. Try out by adding a Book from Google Books API then saving it as a bookmark for testing.
  5. For that checkout: lib\screens\add_book.dart

Additional data

Add the screenshots of the saved books while making the pull request.

Retrieve Owner's book data from Books API other than Google

Description

Currently, books are being retrieved from Google Books API, but not all books are present there.

Screenshots

Steps to Reproduce

Please provide detailed steps for reproducing the issue.

  1. Once the owner taps Add your book, the book data is being updated in the Cloud Firestore.
  2. But for books not present in Google Books API we need to use some other API like Goodreads API.
  3. For eg: The Alchemist shown in the above screenshot was not present, but the other book was.
  4. We need to store the following data: See #92 for books.

To Discuss

  • So is there any other way to get the book description other than API because not all books will be present in any free API?
  • Or maybe we can just go for Book Description through any API and rest everything we can input from the user.
  • Everything else other than Book Description can be retrieved from the user.
  • If you decide to input the book photo from the owner, then use the Image_picker package which is already present in the project.

We can clarify this more in Feature Discussion

Additional data

  • Add you book: lib/screens/add_book.dart
  • Private profile: lib/screens/profile/private_profile.dart
  • Library page: lib/screens/bookshelf.dart

Implement Google Sign-out

Description

  • The user should log out when tapped on the Logout button as shown in the screenshot.
  • Currently, the user directly gets navigated to the initial screen without getting logged out.

Screenshots

Steps to Reproduce

Please provide detailed steps for reproducing the issue.

  1. Private profile: lib/screens/profile/private_profile.dart
  2. Google Firebase Auth: lib/services/auth.dart
  3. Initial Screen: lib/screens/initial_screen.dart
  4. Check for the access token expiry because the user should again login after a certain period of time (Like - a few days after logging in)

Additional data

Google Firebase auth is already setup, you just need to implement google signout.

Dark Theme mismatch

Description

Screenshots

image
image
image

Steps to Reproduce

You can change the color schemes according to Figma design

  1. You can add a few colors by yourself if something is in your mind.
  2. Path: lib\common\themes.dart
  3. Check for more such mismatches in other files.

Additional data

Feel free to discuss your design ideas here.

To Use Media Query to make APP more dynamic

Description

The app needs to be user friendly when the orientation and sizes of mobile devices differ, it also needs to be responsive and adaptive to both android and IOS which might be a problem with some segments of code used

Screenshots

image

Steps to Reproduce

Please provide detailed steps for reproducing the issue.

  1. Use the above-mentioned file (size_config.dart) to add MediaQuery to all the required files
  2. Comment the names of the files here before adding MediaQuery
  3. Check for the Renderflex issue (It will be device-specific) before adding the MediaQuery feature

Additional data

You can post the screenshot of the renderflex page or the dart file to have a discussion here.

Profile Tab not loading

Description

When we click on the profile button in the bottom navigation bar it doesnt loaf

Screenshots

Screenshot 2021-10-03 at 2 57 28 PM

Steps to Reproduce

Click on the profile tab in the bottom navigation bar

  1. Check the provider folder - lib\providers
  2. Profile page: lib\screens\profile\private_profile.dart
  3. Auth files: lib\services\auth.dart

Additional data

None

Splash Screen

The very first screen with the app logo before the signup screen appears

Delete all the commented files

Description

Delete all the files that are fully commented. An example has been shown in the screenshot.

Screenshots

image

Additional data

List the names of all the files you deleted and write them in your pull request.
Feel free to ask anything in the comments and do not delete any folder before asking here.

Change Light Theme Color scheme

Description

As you can see in the screenshot, the user choice chip and personalize button is not visible and without borders respectively.

Screenshots

image
image

Steps to Reproduce

Please provide detailed steps for reproducing the issue.

  1. Change the border and color scheme accordingly
  2. Path: lib\common\themes.dart
  3. Check for more such mismatches in other files and fix them in themes.dart file.

Additional data

Book Exchange verification with an autogenerated Email message

Description

Verify whether the exchange has been completed or not. Like a message by the Autobot asking like 'Has the book transaction been completed? ' with Yes/No option and then send an autogenerated Email that the book transaction has been done successfully.

Remove Facebook Login

Description

Completely remove the Facebook Authentication functionalities from the app.

Screenshots

None

Steps to Reproduce

Please provide detailed steps for reproducing the issue.

  1. Auth files: lib/services/auth.dart
  2. Remove all Facebook login commands if present in the UI.

Additional data

None

Firebase Chat

Description

All our chats with different individuals should be visible to us just like in WhatsApp which we can go to by clicking the logo at the navigation panel present at the bottom of the home screen. See the Screenshots.

One way of initiating chat would be (See Chat Userflows shown below): -

  • Any user can tap on the displayed books which will take them to the Book description
  • Then the user will go to the Owner's info tab which will show the owner details
  • After tapping the Exchange this book button we should be able to start chatting with them.

Chat Userflows

image

Chat Features

All our chats with different individuals should be visible to us just like in Whatsapp which we can go to by clicking the logo at the navigation panel present at the bottom of the home screen.

Screenshots

image

Steps to Reproduce

Please provide detailed steps for reproducing the issue.

  1. File location: lib/screens/chat.dart
  2. You can make a chat folder for all the files

Additional Content

Open to suggestions for any other Chat UI as nothing has been implemented yet.
Design: https://www.figma.com/file/uhWQuE4EKDHR8AqH4p3eFK/Books-App?node-id=0%3A1

Setting Screen Data

Description

Complete the full Setting Screen . Issues related are #48
We need to implement the following

  • Dark Theme
  • About Us, Terms and Conditions data
  • User Genre Selection

Additional data

We need to discuss the modalities of the Push Notifications (Whether to keep it in the Setting Screen or not) and how to implement them.

@HARSHBHUDOLIA @PiotrBlachnio @wick3ds0ul just have a discussion and see how it can be done

Revamp Book and User Collections

Description

We need to make two Collections

  1. Books
  • Book ISBN Number (unique identification),
  • Book Name,
  • Book Author,
  • Book Genre,
  • Book Owner (Will contain uid of user who is inputting the book),
  • Book Description
  • Book Photo

Apart from ISBN and Book Owner all fields can be null

  1. User
  • User name,
  • Location (lat,long),
  • User photo,
  • User bio,
  • User Genre Preference (top 3 preference)

If there are other things then add in case of user

Screenshots

None

Steps to Reproduce

Please provide detailed steps for reproducing the issue.

  1. Database files: lib/services/database_service.dart
  2. User and Book Providers: lib/providers

Additional data

We can have a discussion on Code Refactoring if required.

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.