Skip to content

Latest commit

 

History

History
117 lines (75 loc) · 4.97 KB

README.md

File metadata and controls

117 lines (75 loc) · 4.97 KB

Bookify

Bookify is a platform to provide immersive reading experience with ebooks. It has been built as the solution to Microsoft Engage Recommendation Engine Challenge 2022.

Test credentials used in demo : Test email: [email protected]

Test password: 123456

📌 Table of Contents

🚀 Features

  • Search Recommendations
  • User based recommendations
  • Signing In using email/password method.
  • Favorites list of books
  • Add more features...

💻 Tech Stack Used/ Dependencies

Flutter : Front-end framework for building user interfaces or UI components.

Firebase : Google-backed application development software. Specifically used here for user authentication

Python : Various libraries of python like vectorizer library for building the recommendation algorithm.

Flask : Micro web framework. Used for making API to transfer data between the frontend and backend

📖 Usage guide/ Application flow

Installation :

  • Clone the repo on to the local machine.
  • Open Bookify/bookify in android studio.
  • Run main.dart in emulator / device.

Sign Up Page

Enter all the fields for successful sign up. Make sure the password strength is strong. It requires a minimum of 6 characters

WhatsApp Image 2022-05-31 at 12 47 28 AM

Login Page

You can sign in using the email/password you used to sign yourself up previously.

WhatsApp Image 2022-05-31 at 12 47 28 AM(1)

After entering your email/password, pressing login and a successfull sign in, you will be directed to the Bookify app.

Post-Login HomePage

The default homepage appears as follows. It contains recomendations for user based on his/her favorites

WhatsApp Image 2022-05-31 at 12 47 28 AM(2)

Favorites Page

The following is the favorites page which shows list of books added to favorites

WhatsApp Image 2022-05-31 at 12 47 28 AM(3)

Explore Page

Search results for any search query is displayed here. The results are displayed even if there is small error in search query.

WhatsApp Image 2022-05-31 at 12 48 43 AM

Profile Page

The Profile Page displays some statistics and has the logout button for signing out of the page.

WhatsApp Image 2022-05-31 at 12 47 28 AM(4)

💡 Challenges faced and learnings

  • I had zero knowledge on Machine Learning Algorithms. Spent major time on learning basic ML concepts and learning how to implement them until I understood how recommender systems work and how to implement them
  • I had very basic knowledge about flutter before the program. Spent time on learning application architecture and state management through different methods and also small animations to make the UI better
  • I had never implemented any third party services before. Learnt how to use firebase for authentication service
  • I had no idea about dex limits on dependencies and therefore could not use cloud firestore service. This resulted in the app on missing out major features
  • Deployed a full stack app with frontend, backend and database for the first time. Struggled through it but documentations and tutorials came to the rescue as always.
  • Learnt about AGILE framework of development.

🚧 Future Scope/ What's next?

  • Dark theme toggler.
  • Password resetting and email verification on sign up.
  • More specific details for user and user model
  • Implementing genre specific recommendation
  • Rating feature for books
  • Freemium business model for premium content

🐛 Bug Reporting

Feel free to open an issue on GitHub if you find bugs.

⭐ Feature Request

  • Feel free to open an issue on GitHub to add any additional features you feel could enhance this project.
  • You can also discuss and provide suggestions to me on LinkedIn.