What is the Bookstore App?

A new and exciting way to visit your favourite bookstore from anywhere. The Bookstore app is a virtual trip to the bookstore. You can browse, check prices, reserve books, and a lot more. Download it on the Android Play store today!

Our Vision Statement

The Bookstore App is an inventory management tool for physical bookstores that is primarily targeted to bookstore staff. The application contains a library of the bookstore’s inventory along with the books’ details such as title, author, ISBN, publisher, publishing date, genre, page count, and price, which its user can view anytime and anywhere. Its main purpose is to offer a modern and easy-to-use version of existing bookstore software that runs completely from a smartphone. This will allow managers and employees to efficiently and conveniently keep track of their inventory. Running on a smartphone allows better managing of inventory through in-app stock counts and notifications for important information. In addition, the app would also allow regular customers to quickly check the inventory before heading to the store.

continue reading...
The three levels of users are: management, employees, and customers. Customers have the most basic features that allow finding and viewing book information, like price and genre. They can also reserve a book for in-store pickup. Employees will have the additional ability to see the remaining stock of each book. Managers will have the ability to change prices and order more inventory.

Users will be able to find books by title, author name, and ISBN. This can also be expanded to include other important information in the future. Once a book is found, the user can select a book from the resulting list to see a new page containing all the details of that book.

A trending page will show the customer all the popular purchases and new releases in the last few weeks. Discounted items will also be shown, helping the customer find an interesting book in the shortest amount of time. Also, when looking up books, popular searches will be displayed. The goal of these features is to make the customer’s experience with the app as stress-free as possible.

While the app will not have online purchasing, customers can use the information provided in the “Contact Us” page to contact the bookstore staff and reserve a book for up to three days, giving them time to pick it up in person.

The speed and convenience of having all these features in their pocket will allow managers to better maintain their inventory and track sales. The notification feature will help prevent items from getting sold out. The user-friendly interface will help all levels of users find exactly what book they are looking for. To summarize, this app will provide a more usable and modern way of running a bookstore compared to the complex systems that only run on a desktop computer. If successful, this application will provide swift and easy inventory management on a smartphone. Additionally, success requires an increase in customer satisfaction due to helping them find books that they enjoy. And finally, through better management and customer-friendliness, an increase in sales is expected.


Post Mortem

What would you do differently, if you had the chance to start over?

Using our new-found understanding of software development, we would plan everything in much greater detail. We used a minimal number of interfaces, not enough to fully plan out the app. Due to this, we regularly ran into situations where we needed code that wasn't written yet. This slowed down development as we waited for the code to be written but someone else.

We also would have committed to TDD. We had stretches at the end of each iteration where we wrote a bunch of tests, which revealed bugs that all needed to be fixed before the approaching deadline. TDD would have prevented this, and caused us fewer headaches.

What did you learn about team or large project development?
What will you start doing, keep doing, or stop doing next time?

What will we start doing? - From our current experience in this course, we would make sure that we have a plan ready as soon as the iteration begins. Keep doing? - Have meetings regularly in order to keep everyone updated on who is doing what, this keeps everyone focused on the same problem. And we will stay active on gitlab’s boards. Stop Doing? - We have to stop sugarcoating the technical difficulty we encounter. Sometimes we wouldn’t want to let others know we’re in trouble with the task on hand but we later found out, it is better to rearrange workload and have the whole team to work on the tough issue together before it’s too late. Also as a team it does not help to put blame on others as the first response to issues, instead of thinking about solutions.

Velocity

Iteration 1: We overestimated our velocity as we were ambitious on envisioning how the project would go. We implemented logic for most planned features and have the overall structure organized, but without including the time we need to get familiar with the coding environment, we ultimately were not able to meet our original expectation.

Iteration 2: Despite the final result, we were actually effective when implemented features. All the planned features were implemented and ran fine with the fake database. However, we encountered great difficulty when implementing and injecting the real database which resulted us losing all velocity in the last week. Because of that we lacked time to get rid of code smells e.g. do proper layering and implement exceptions, and our final product did not meet our expectation.

Iteration 3: With the database working, our velocity increased greatly. We far exceeded our expectations.