- Gautam Gottipatti
Our system has 6 components:
- Client side Seller
- Client side Buyer
- Server side Seller
- Server side Buyer
- Product and
- Customer Databases
We have used dynamodb for storing item, buyer, seller, shopping cart and transactions data. Communication between client and server front end is done using REST APIs and is implement using spring framework in Java. and Communication between server front and backend is done using GRPC. and for make Purchase function, we have soap protocol to check the transaction status. for performance measures we have deployed our front end and backend of seller and buyer servers in 4 different virtual machines in google cloud with 4 different ip addresses and port numbers.
- While creating account for buyer and seller, we are checking if already an account is present with given username, and creating the account only if it is not present.
- For login, we are checking if user has already registered or not, and also checking if passwords matches with the one given at time of registration.
- Seller rating is calculated based on average of feedbacks (+1 thumbs up and -1 thumbs down).
- For creating item, unique id is generated in the serverprogram and along with other attributes, item is stored in database.
- For updating item price and remove item methods, first check is done for given itemid, price is updated only if it is present and only given no of quantities are reduced
- In display item functions, all the items with sellerid equal to given seller id are displayed.
- Created a table for shopping cart, where buyer id is the primary key for this table and it has list of items.
- For remove and clear shopping cart, the items list will be updated and removed to reflect the changes for the given buyer id.
- When a buyer provides feedback, corresponding seller record will be updated.
- For Make Purchase, all items in current shoping cart will be considered, if the soap provides response as true, a new transaction will be created with these items and their corresponding quantities will be reduced(updated) in the inventory.
- for purchase history,
User will provide item category and five search keywords. then, All the items from this category will be filtered and check is done, if any of the search keywords match with the keywords given at the time of item creation. Only those items which have atleast one match will be returned.
- Create an account
- Login
- Logout
- Get seller rating
- Put an item for sale
- Change the sale price of an item
- Remove an item from sale
- Display items
- Create an account
- Login
- Logout
- Search items for sale
- Add item to the shopping cart
- Remove item from the shopping cart
- Clear the shopping cart
- Display shopping cart
- Provide feedback
- Get seller rating
- Make purchase
- Get buyer purchase history
Refer perfomance-report.pdf file
-
Create jar file using mvn package.
-
Run the seller server and buyer server using following commands:
java -cp rpc.jar ecommerce.GrpcSeller
java -cp rpc.jar ecommerce.GrpcBuyer
java -jar rest.jar ecommerce.EcommerceApplication
java -jar soap-transactions.jar com.javatechie.spring.soap.api.SpringBootSopaWsApplication
- Similarly for clients
java -cp rpc.jar ecommerce.RestBuyerClient buyer.txt http://34.173.218.61: 8080 $i
java -cp rpc.jar ecommerce.RestSellerClient seller1.txt http://35.225.95.26: 8080 $i