BookLord
Buy and sell used books app with chat facility, push notifications and location tracking
Install / Use
/learn @ishanknijhawan/BookLordREADME
Download the app from here
[TOC]
Motivation
The need of buying a brand new book is decreasing day by day as people studying for a college semester or those who are preparing for competitive exams don’t need books for that long. Some avid readers just want a book for few weeks and return them instead of purchasing it. Booklord is a mobile app which helps people buy, sell or rent used books online.
People who buy new books find it difficult to sell it for a good price. They either ending up giving up their books to newspaper sellers to free up space in their cupboard, or sell them at a local stationery shop at a really low price. Furthermore, those people who are looking for used books have no choice but to go to stationery shops where the shopkeeper sells those used books at a very high price.
Booklord considers the above situations and allows one on one interaction between buyer and seller without any intermediary. People can sell their used books at the price they find it reasonable and those who are looking for a used book have a variety of options to choose from, based upon book condition, price and seller location. Through this app, we try to ease up the process of buying or selling a used book by moving the whole process online. People can browse books, sort them by price, or distance. And once they want to purchase it, they can directly chat with the buyers for further details.
About the product
The app is made in Flutter, which is to say that it can work in both Android and iOS with one single codebase. I was only able to test it with an Android device because I don't have a Mac machine, but it will work on any iOS device just as good. For backend I've used Firebase, and all the below mentioned tools for making this application.
<u>Technologies Used</u>
- Google Flutter SDK for the frontend part.
- Flutter packages like Location, Provider, firebase and camera.
- FirebaseAuth for authentication and Google Sign in
- FirebaseStorage for storing user's profile pictures, image messages in chats and images of user's posted ads
- Firebase Cloud Firestore for storing user's, product's and chat data and
- Firebase Cloud messaging for push notifications
- Firebase Cloud Functions for deploying notification code to server side.
- Google Cloud platform for showing maps and place names
The app starts with an Authentication screen as shown below
| Sign in screen | Login screen | Google sign In | | ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | | <img src="https://user-images.githubusercontent.com/45118110/99714820-0fb2c080-2acc-11eb-94bb-87531f909d57.jpg" style="zoom:25%;" /> | <img src="https://user-images.githubusercontent.com/45118110/99714838-13dede00-2acc-11eb-9d58-68275b7e1c1d.jpg" style="zoom:25%;" /> | <img src="https://user-images.githubusercontent.com/45118110/99714852-18a39200-2acc-11eb-9e05-0946bd303654.jpg" style="zoom:25%;" /> |
Once the user is logged in, he/she is greeted with 5 tabs, viz
- Home Screen
- MyAds Screen
- Posted Ads
- Favourite Ads
-
Add a book screen
-
Chat Screen
-
Profile screen
All the screens are shown below
| Home Screen | Posted Ads Screeen | Favourite Ads Screeen | | ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | | <img src="https://user-images.githubusercontent.com/45118110/99715513-fc542500-2acc-11eb-9244-3a6974d1f62f.jpg" style="zoom:25%;" /> | <img src="https://user-images.githubusercontent.com/45118110/99716666-66b99500-2ace-11eb-9daf-d31439c99bf3.jpg" style="zoom:25%;" /> | <img src="https://user-images.githubusercontent.com/45118110/99715528-037b3300-2acd-11eb-81db-0a999b468373.jpg" style="zoom:25%;" /> | | Add new ad Screen | Chat Screen | Profile Screen | | <img src="https://user-images.githubusercontent.com/45118110/99715543-070eba00-2acd-11eb-9b0e-1c80a990223e.jpg" style="zoom:25%;" /> | <img src="https://user-images.githubusercontent.com/45118110/99902922-19fcd680-2ce7-11eb-8b6e-b7ab9041145a.jpg" style="zoom:25%;" /> | <img src="https://user-images.githubusercontent.com/45118110/99715571-10982200-2acd-11eb-8ba6-63a8c873eafa.jpg" style="zoom:25%;" /> |
<u>Home Screen followd by Product detail Screen</u>
Starting from home screen, there are multiple things which user can do. He can mark/unmark ads as favorites. He can open the ads for more information like how far the person lives from his location, what is the condition of the book. He can also chat with the user from the app itself. If the user is opening his own ad, he can delete the ad or mark his ad as Sold. Below are the screens for the same.
| Asking for location | Product Info Screen | Search Screen | | ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | | <img src="https://user-images.githubusercontent.com/45118110/99717497-7ab1c680-2acf-11eb-8b8f-7423b7f1fe71.jpg" style="zoom:25%;" /> | <img src="https://user-images.githubusercontent.com/45118110/99717509-7dacb700-2acf-11eb-8122-5c3d6c97faa7.jpg" style="zoom:25%;" /> | <img src="https://user-images.githubusercontent.com/45118110/99902924-1c5f3080-2ce7-11eb-8e18-6d72fcfd8df2.jpg" style="zoom:25%;" /> | | Sort products | Mark ad as Sold | Delete ad | | <img src="https://user-images.githubusercontent.com/45118110/99902926-1f5a2100-2ce7-11eb-83ab-15df167dc392.jpg" style="zoom:25%;" /> | <img src="https://user-images.githubusercontent.com/45118110/99717580-95843b00-2acf-11eb-9d20-e5292202223b.jpg" style="zoom:25%;" /> | <img src="https://user-images.githubusercontent.com/45118110/99717586-987f2b80-2acf-11eb-9b74-2bdfd4c431b4.jpg" style="zoom:25%;" /> |
<u>Add Product Screen</u>
From this screen, user can follow the steps for posting an ad. The first 2 screens asks what kind of books the user wants to sell. The next two screens asks the user about the book details and some images he wants to share. User can add upto 3 images either from the camera or from his gallery. The final screens asks the price the user wants to set and the location where the user lives. There are two options are, first is user can choose current location by just tapping the current location button, second option allows user to select any location by pinning his location on the map (shown below) User can also Donate ❤ the book by pressing at the heart icon. Once the user has posted his ad, it will appear on the home screen of every other user.
| Add Books Screen | Further Categories Screen | Book details | | ------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------
Related Skills
node-connect
350.1kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
109.9kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
350.1kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
350.1kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
