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.
Demo video link : https://www.youtube.com/watch?v=O2Ul1a1d1lU
Test credentials used in demo :
Test email: [email protected]
Test password: 123456
- Features
- Tech Stack Used/ Dependencies
- Usage Guide/ Application flow
- Challenges faced and learnings
- Future Scope/ What's next?
- Bug Reporting
- Feature Requests
- Search Recommendations
- User based recommendations
- Signing In using email/password method.
- Favorites list of books
- Add more features...
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
- Clone the repo on to the local machine.
- Open Bookify/bookify in android studio.
- Run main.dart in emulator / device.
Enter all the fields for successful sign up. Make sure the password strength is strong. It requires a minimum of 6 characters
You can sign in using the email/password you used to sign yourself up previously.
After entering your email/password, pressing login and a successfull sign in, you will be directed to the Bookify app.
The default homepage appears as follows. It contains recomendations for user based on his/her favorites
The following is the favorites page which shows list of books added to favorites
Search results for any search query is displayed here. The results are displayed even if there is small error in search query.
The Profile Page displays some statistics and has the logout button for signing out of the page.
- 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.
- 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
Feel free to open an issue on GitHub if you find bugs.
- 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.