Hasset, Music streaming App

My Role

  • Developing the mobile application for both iOS and Android using Flutter.
  • Building the entire backend infrastructure using Node.js and Firebase.
  • Implementing all core features, including user accounts, music library, search, playlists, offline playback, subscription management, secure payment gateway integration (Stripe and Chappa), and the sermon section.
  • Deploying the Hasset application to the Google Play Store and the Apple App Store.
  • Providing ongoing technical support and maintenance for the platform.

Main Features of the platform

  • Extensive Music Library: Users can browse and search through a wide selection of music tracks.
  • Sermon Streaming: Access to a dedicated library of sermon recordings.
  • Audio Bible: Integrated audio recordings of the Bible for listening and study.
  • User Accounts: Secure user registration and login functionality.
  • Playlists: Ability for users to create, manage, and share personalized playlists.
  • Offline Playback: Download music for listening without an internet connection.
  • Subscription Model: Option for users to subscribe for ad-free listening and exclusive content.
  • Secure Payments: Integrated Stripe and Chappa payment gateways for secure subscription processing.
  • Search & Discovery: Robust search functionality to easily find music and sermons.
  • Supporting Ads (Free Tier): The platform supports advertisements for users who are not subscribed.

Achivements

The Hasset project resulted in several significant accomplishments including but not limited to:

Technical Stack

Challenges and How I Overcame Them

Throughout the development of Hasset, I encountered several key challenges that required strategic problem-solving:

  1. Efficient Audio Streaming:
  • Challenge: Ensuring smooth and buffer-free audio playback for a vast music library, even on varying network conditions, demanded careful optimization of streaming protocols and data handling.
  • How I Overcame It: I implemented adaptive bitrate streaming to adjust audio quality based on network availability, along with efficient caching mechanisms to minimize buffering and ensure a consistent listening experience.

2. Secure Subscription & Payment Integration:

  • Challenge: Implementing secure and reliable subscription management and integrating the Stripe and Chappa payment gateways required meticulous attention to security best practices and adherence to API documentation to protect user financial data.
  • How I Overcame It: I followed industry-standard security protocols, utilized the official SDKs provided by Stripe and Chappa, implemented robust error handling, and thoroughly tested the payment flow to ensure secure and seamless transactions.

3. Managing a Large Music Library:

  • Challenge: Designing an efficient database structure and implementing effective search and filtering mechanisms were crucial for allowing users to easily navigate and discover content within the extensive music and sermon libraries without performance degradation.
  • How I Overcame It: I optimized database queries, implemented indexing strategies, and utilized efficient search algorithms to ensure fast and accurate retrieval of content, even with a large dataset.

4. The Offline Data Challenge (Crashing and Storage Issues):

  • Challenge: The app’s extensive offline functionality, requiring local storage of significant song data, led to frequent crashes due to memory leaks and overall storage limitations. Loading all data at once also caused crashes.
  • How I Overcame It: To address the data loading crashes, I implemented lazy loading and pagination, ensuring data was fetched in manageable chunks only when needed. For the locally stored data issues, I also employed lazy loading, fetching data from local storage only when required, rather than loading everything into memory at once. This significantly reduced memory consumption and resolved the crashing, leading to a stable and efficient offline experience.