/Astrotak_Bloc

Astrotak app implementation using bloc

Primary LanguageDart

Contributors Forks Stargazers Issues MIT License LinkedIn


Logo

Astrotak

App to find and talk with well-known astrologers

By

Krish Bhanushali

PANDIT DEENDAYAL ENERGY UNIVERSITY ,GANDHINAGAR

The journey of building this app was amazing and I learned a lot.


Explore the docs »

View Demo · Report Bug · Request Feature

Table of Contents

  1. About The Project
  2. Getting Started
  3. Roadmap
  4. Contributing
  5. License
  6. Contact

About The Project

Goals Achieve in the Project

Use of Bloc architecture is demonstrated and consist of two screens: - Panchang Screen : that is home page by default takes today's date or can be altered, Supports a suggestion box for location autocomplete made using custom overlay. Results in Panchang and displays beautifully

  • Talk to Astrologer Screen: Fetches Astrologers on the app start. Functionalities:
    1. Search : User Can Search an astrologer from name, skills, language
    1. Filter : Here I have assumed only static filters as no documentation or end point was provided for the languages or skills so I have assumed English,Hindi as Languages and Falit Jyotish,Astrology as skills
    1. Sort : Sort Functionality is implement based on price and experience from high to low or low to high

Difficulties Faced

  • I spent most of the time figuring about type_ahead package as it dealt with only futures no way possible to display the search results as blocs returned stream which only got updated when it got data so autocomplete was having a lag (Solved using a custom overlay and building using streams(nice Idea for a package))

  • Bloc is bit lengthy but its super assuring as although there are lots of boilerplate stuff its just states and events that would only happen no unpredictable things

  • Failed to manage time but I will make this as a task and improve my code as well

  • It was at first difficult to transfer from getx to bloc as my whole code needed an architecture and thinking I also spent a lot of time to how I can mitigate the custom error with response from base layer to bloc and display on the ui

Getting Started

To get a local copy up and running follow these simple steps.

Things that can be improved upon

  • UI can be improved, as I only focused on functionality
  • App Size can be reduced by use of SVGs
  • Catched Network Image Can be used for Astrologer Images
  • Pull to refresh for Astrologer fetching
  • Documentation can be improved
  • Profile of astrologer can be shared using share_plus
  • Deeplinking can be done to go to astrologer profile directly that is a astrologers can then generate qr codes for this
  • Many Corner Cases are pending and can be handled easily as we now know all the states
  • Tests are to be written
  • Internet states can also be handled
  • local caching can be done for search when there is no internet
  • push notifications, feedbacks and updates features can be introduced

Installation

  1. Clone the repo

    git clone https://github.com/krish-bhanushali/Astrotak_Bloc.git
  2. cd to the folder

  3. sh code .

  4. sh flutter pub get

  5. Fix Imports

  6. sh flutter run

Roadmap

See the open issues for a list of proposed features (and known issues).

Contributing

Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

If you become a Collaborator Please Refer Collaborator for more information

License

Distributed under the MIT License. See LICENSE for more information.

Contact

I solve doubts at Stack overflow - Ping Me whenever you need Your Name - @twitter_handle - bhanushali123krish@gmail.com

Project Link: https://github.com/krish-bhanushali/Astrotak_Bloc