Backend AND CLOUD DEPLOYMENT

Technology :

In this project ,all three entities i.e. Smart Shopping Cart , Mobile/Web App and Desktop App all share the same backend during their operations. When deciding on the backend technologies to be used for the project, several requirements were taken into consideration.

Backend Requirements:

-Requires scalability

-Flexibility


Considering those, Firebase was used for this project.

Why Firebase?


  • Firebase's Firestore is a NoSQL database, which can be used to store large unstructured data which in our case helps to acquire the expected scalability.

  • The flexibility it offers. (eg: Changes in data models are expected and unlike a relational database , this is easier to modify).

  • Reliable and a secured framework.

  • Google Analytics provided by Firebase ( User patterns helps improving the app in the future).

Backend Design:

For the database , cloud Firestore which is a NoSQL database of cloud Firebase was used. Use of a NoSQL database provides the required flexibility and the scalability for the app.

Authentication:

Sample Database:

The following images are from our sample database and it shows the document hierarchy of the NoSQL database.

  • "Customers" collection carries the data regarding the app users . When a user create/edit the user profile using the app, a document is added/updated in this collection.

  • The App has a feature for the user to view their recent shopping activities. The data on recent shopping activity is in the sub-collection "recent activities" of each user. Each activity is similar to a detailed bill of a past shopping transaction.

  • "Products" collection carries the data regarding the products in the super-market.

  • The App provides the features for the customer to do online shopping like placing delivery orders . The collection "delivery orders" contains documents with the uid(current user's id defined at the authentication) . Each order by a specific user would be added to sub-collection "orders".