1. Homepage
  2. Programming
  3. Coursework CSC8016 Project 2: Virtual Shopping system

Coursework CSC8016 Project 2: Virtual Shopping system

Engage in a Conversation
UKNCLCSC8016Advanced ProgrammingVirtual Shopping systemJava

Use Case Scenario

We want to implement a virtual shopping system, whether the threads are either clients using the web app, or clients buying products on the physical shop using the mobile app. The lifecycle of any client interaction is summerised by ClientLifecycle: Each client interacts with the shop through the RainforestShop via the login method, through which each client can add items to its basket and perform re-shelving operations (moving the items back to the physical/virtual shelf from the basket). Each client can get a list of available items at the time of the query, basket a given product by name, (re)shelf the product (thus removing it from the basket), checkout and proceed with the payment (thus either buying all the items on the basket or none of those entirely), and logging out of the system while losing the information of all the items being previously put in the basket from the real/virtual shelf (thus entailing implicit re-shelving). CourseNana.COM

Each time an allowed user logs in, a non-empty transaction will be created with an unique transaction ID. The unavailability of the product shall be confirmed not while basketing the items, rather than after purchasing those. At this stage, the shop supplier (SupplierLifecycle) might be notified that some products are missing (getNextMissingItem) and refurbish the show with a non-zero amount of products of the same type (refurbishWithItems). For simplicity sake, the refurbishWithItems method will be in charge of creating the number of desired product and to place them on the shelf. CourseNana.COM

As in any industrial setting where teams split up the duties, you are assigned an API that you need to implement. Such an API is provided both on Canvas and at https://github.com/jackbergus/NCL_CSC8016/tree/main/src/main/java/uk/ncl/CSC8016/jackbergus/coursework/project2. This will then require to finalise the implementation of RainforestShop and the integration of concurrency mechanisms in ProductMonitor; the Transaction class shall not be changed! The Testing solves a twofold task: showing how Clients, Suppliers, and the Shop system are communicating, as well as providing some preliminary guidelines on how the coursework is going to be assessed. The student is free to choose whichever is the best way to pass the tests (not fully disclosed to the students) in the Testing class. E.g., the RainforestShop could be either modelled as a finer-grained monitor, but inside this monitor at least one thread per logged user should be running; also, such a RainforestShop could be also implemented as a consumer threads handling all of the clients’ messages. CourseNana.COM

Assumptions

Submission Requirements

  1. RainforestShop and ProductMonitor should be finalised, as the current implementation does not pass the provided tests! CourseNana.COM

  2. Submit the code as a zipped Maven project. with no jar and classes. The source code will be recompiled from scratch, and no jar/class is going to be run. CourseNana.COM

  3. If you want to use an external Java library, please consider the following: CourseNana.COM

    • The Java library should be explicitly described as a <dependency> in the pom.xml file, and should only access the libraries from the default Maven Central Repository. CourseNana.COM

    • A library might provide single concurrency mechanisms primitives, but not ready-made solutions already composing those: semaphores, monitors, locks, just logs, thread barriers, thread pools, passing le baton mechanisms are allowed. Code reuse from the exercises and examples seen in class is permitted. CourseNana.COM

    • Systems completely solving the coursework for you are strictly prohibited: e.g., any kind of (data) management system having concurrency control (ensuring safe concurrent thread access to any data representation) and supporting concurrent transactions (implementing any kind of transaction protocol, either pessimistic or optimistic) must be avoided, as they both implement commit/aborts and thread-safe operations on data. CourseNana.COM

    • None of the (direct or indirect) dependencies of the coursework should rely on external servers or processes to run or to be installed. CourseNana.COM

    • The solution should not include external jar files. CourseNana.COM

    • If unsure whether the solution might be exploited, please ask before submitting. CourseNana.COM

  4. Attached to the source code, please provide a short report motivating the compliance of the source code to each point and sub-point of the marking scheme. Providing such report in form of comments in the implementation is also fine. New classes might be created for supporting the implementation, but existing classes should be neither renamed or moved to a different package. CourseNana.COM

Get in Touch with Our Experts

WeChat WeChat
Whatsapp WhatsApp
UK代写,NCL代写,CSC8016代写,Advanced Programming代写,Virtual Shopping system代写,Java代写,UK代编,NCL代编,CSC8016代编,Advanced Programming代编,Virtual Shopping system代编,Java代编,UK代考,NCL代考,CSC8016代考,Advanced Programming代考,Virtual Shopping system代考,Java代考,UKhelp,NCLhelp,CSC8016help,Advanced Programminghelp,Virtual Shopping systemhelp,Javahelp,UK作业代写,NCL作业代写,CSC8016作业代写,Advanced Programming作业代写,Virtual Shopping system作业代写,Java作业代写,UK编程代写,NCL编程代写,CSC8016编程代写,Advanced Programming编程代写,Virtual Shopping system编程代写,Java编程代写,UKprogramming help,NCLprogramming help,CSC8016programming help,Advanced Programmingprogramming help,Virtual Shopping systemprogramming help,Javaprogramming help,UKassignment help,NCLassignment help,CSC8016assignment help,Advanced Programmingassignment help,Virtual Shopping systemassignment help,Javaassignment help,UKsolution,NCLsolution,CSC8016solution,Advanced Programmingsolution,Virtual Shopping systemsolution,Javasolution,