We’re approaching the midway point for our project and the Project Archive – Midpoint assignment is coming up in about a week. So for this post I thought I would get some of my thoughts down on where we are at on the project as a team as well as what there is left to do. In addition to the progress I thought I would map out my plan for the project demonstration so that I can get a two for one while also doing my blog.
According to our project tracking on Github we have completed as a 21 of our tasks and have 30 left to do. This is not taking into consideration the number of hours of total work just the number of tasks but I still think it’s a pretty good rough estimation of our progress. With a week before the midpoint I think we will definitely be able to complete ~5 more tasks as a team so that we’re at approximately 50% completed with our project. We’ve completed some of the preliminary set up of routes and the android app front end UI is definitely taking form. My main contribution has been getting the database set up and testing out the CRUD functionality as well as debugging any issues that arose while testing. The next steps for myself on the project is to implement the microservice that will encompass the database interactions. I still need to research the different patterns for this and determine all the user interactions that our app will be capable off to prevent erroneously deletion, creations, updates etc. to our database from the users side. Then I will map out the routes connected to the database so that the calls from the other microservices will return data to the front end microservices and display for the user. We also still need to implement the algorithms that will compare prices returned from the database queries and all the features specified in the requirements that our shopping app should do. I think the algorithms are going to be pretty time consuming and complicated to develop but luckily that is what the whole second half of our project time will be devoted to. So overall I’m happy with the progress we’ve made on our project and everything is still going according to plan.
For determining what I will be demonstrating in my midpoint demonstration I will be referencing the main functionality outlined in the project description. As mentioned earlier my main contribution to the project is the database containing all of the shopping data for our app. So what I will be demonstrating is queries to the database returning data pertaining to the functionality specified in the project description. I will list the requirements and the queries parameters I will use to achieve this that I will showcase in my demonstration:
- User can add products
- Simple insert that requires values for all columns in the table
- User can add tags to products
- This is a many to many relationship so insert happens on the intermediary table
- User can add reviews
- Simple insert that requires a text entry for the store review other data about user info and date of review is autogenerated
- User can add item to their shopping list
- Users can have multiple shopping lists so a shopping list will have to be created first and then an item can be added to it
- User can add a new store to the database
- Simple insertion into the store table where address and store name etc. are required
- User can compare price of products
- Multiple ways this can be done and is essentially the entire purpose of the app. Simplest way is return all data from the prices table where the product name is what the user specifies
- User can update price of product
- This is a more complicated interaction because we don’t want a product to have two different prices listed at the same store but then we can’t make the row unique because this will prevent updating the price so this is require a special query called an “upsert” which inserts if no data for that product exists at that store already otherwise it will update the price.
I believe these cover the basic interactions outlined in the project specifications that can be done from the database side. There are other interactions that will have to be handled but these will be the task of the comparison algorithms we’re yet to write that determine the best store for the user to shop at. I think that this will cover the 2-4 minute requirements for the assignment but I will have to do some test runs and add or reduce the number of queries I’m demonstrating accordingly. I’ve already done these commands just in creating the database and testing out the CRUD functionality but it will be good to have it recorded as it will also be a good demonstration for my teammates as well. Next progress check I will hopefully be showing this same functionality from the apps user interface!