Software architecture - 2109688/Market-place GitHub Wiki

# INTRODUCTION The Market-place an online store, designed to help people access products easier. This document will provide an overview of market-place, the functionalities of it, decisions made to make the it better and challenges faced when making the app

GOALS AND CONTRAINS

  • The web-based app needs to be able to create and save profiles, thus be able to capture and save login details. The passwords saved need to be encrypted so user accounts can be saved.
  • It needs to be have a cart so users can be able to add all the products they want to purchase and check the out at once.
  • It must have an online encrypted payment option, which might not be an easy task to achieve, so the it will stick to payment on delivery at the moment.
  • Having all variety of product is also not easy achievable, so we it will start will a small amount of product which will be added as time goes on.
  • Functionality that saves products user has checked before will be added provided there's time when the important functionalities are done.
  • It must be able to capture location and contact details.

THE MARKET PLACE FUNCTIONALITIES

  • Registration and Login
  • view product and add to cart
  • clear cart
  • add delivery location
  • add contact details
  • check-out product

Registration and Login

On registration, user must create profile, with an email address that does not exist in the system. The password entered by user upon registration must exceed a minimum number of characters which is the encrypted. The information is they saved on firebase. When user logs in, the information entered is compared to the information that was saved on firebase.

View product and add to cart

The user is able to view the product at hand, see the price and see product description if available. The user must then add the product to cart if they wish to purchase it.

Clear cart

removes all the products that were previously selected by the user upon click

Add delivery location

User location entered is saved for delivery of the product purchased. The user will select one of the pick-up points already saved or will enter their own delivery location which will be saved in the database for future use

Add contact details

Adds the contact number that will be used to contact user when product is being delivered or has arrived at pick-up point. Alternatively an email can be sent to the user.

check-out product

Upon selection, order is added to database, on list of products in line for delivery. An email is them sent to user to alert them when products leaves warehouse for delivery.

Architecture overview

  • User Interface layer
  • Process layer
  • Storage layer

The User interface is where the user interacts with the web-based app. The classes in the user interface are used to communicate with the system. The classes that exist support entering and saving user information, viewing products that are available for purchase, adding and checking out selected products.

The process layer has all the classes that executes all the information retrieved to the system with the database, that is, placing the orders, sending and retrieving user details, encrypting password.

The Storage layer has the classes that saves the user information, the list of products that are available and the list of orders made.

Architecture diagram