Project Development in Java, Python, React/Node Bridge Boot Camp Tech Sessions Invoicing System Introduction: Your assignment is to design, then develop an Invoicing System. In the first (design) part, you will design the user interfaces of your application, UML design and database design which is worth 30% of the overall mark. In the second (development) part, you will create a working standalone application using Java language that corresponds to your designs, which is worth of 50% of the overall marks. You will be individually assed through a demonstration, for the next 20% of the overall marks. Scenario: The ABC Company needs to develop a computer system to manage the following Product details Customer details Invoicing System needs to facilitate managing all the product details and customer details including adding, updating, removing and searching. The system should manage the invoice generation process. The initial discussion with the intended users of the system the following details have been identified. The following are the important product details: (may not be limited to) Product id Product name Description Purchase price Selling price Quantity The following are the important customer details: (may not be limited to) Customer id Customer name Email Address Contact number Date of birth Gender 1 The system should be started with the following main menu 1. 2. 3. 4. Manage Products Manage Customers Invoice Generation Admin Tasks Under Manage Products the user should be able add, update, remove, search for a product and display all the product details. Under Manage Customers the user should be able add, update, remove, search for a customer and display all the customer details. Under Invoice Generation the user should be able to generate the invoice with the following details but may not be limited to. Invoice number Invoice Date Customer name Product names Units per product Unit price per product Total price per product Discount per product based on the quantity Also system must be able update the product available quantity when invoices are issued. The system should check the availability of the stocks of the products prior to invoicing. The user should be able to view all the generated invoices for a particular time duration and particular customer. Under Admin tasks the all database inserts and updates should be tracked with the created and last updated date. The necessary confirmation and error messages should be displayed accordingly You need write clean code and demonstrate the professional practice Submission You need to submit the following 1) 2) 3) 4) Working software project with the source code UML and ER model of the system User interface designs sketches Test cases with evidence of testing You will be assessed through a presentation of your designs and demonstration of your mobile implementation. 2 Assessment Criteria To attain a given level, you should normally have achieved all the preceding levels. The variation in the mark for a level will depend on how well you have done things (e.g. the quality of the user interface, evidence of bugs/problems during the demo). Design Part Criteria Created at least four designs conforming to the assignment specification each with an associated written description and presentation given. The UML diagram in relation to the system with identified classes and their attributes and methods, and the appropriate associations Illustrate the data requirement by using appropriate ER-Model by identifying the relations, attributes, constraints and relationships 0-10% 11-20% 21-30% System Implementation and testing Criteria Max(50) System Design and Architecture Formulating the system architecture by using object-oriented concepts. Proper identification of classes attributes and functions based on the precise identification of the user and technical requirements Design the system to perform the functionality in an efficient and extensible manner System used the user-experience guidelines appropriately 0-10% System Implementation Max (30) 11-35% Implementation of the Application according the design working correctly and using the appropriate OOP techniques During the demonstration the app runs successfully without any serious bugs. Proper implementation of product management Proper implementation of customer management Proper implementation of invoice generation Proper implementation of admin tasks System should tolerate to failures and handle exceptional situations appropriately Evidence of any additional functions to streamline their code Appropriate validation checks have been made Providing the user feedback using the appropriate messages Appropriate usage of existing APIs and components for system implementation System Testing Test the full system functionality using appropriate test cases 36-43% Clean code and professional practice All functions and variables have meaningful names and use correct camel notation Appropriate use of comments throughout the code Appropriate use of coding conventions – Adhering to the guidelines Keep it simple. Reduce complexity as much as possible. 44-50% 3 Presentation, demonstration and Viva Max (20) Present the essential components of the system Degree to which the demonstration was convincing and quality of discussion Displaying sufficient understanding about the system and concepts used Making the requested changes to the codding during the demonstration 0-20% System Demonstration The main evaluation criterion of the assignment is a demonstration of your system developed providing evidence that it meets the requirements specified, along with a Q & A session. The students are expected to prepare a presentation to describe the system, the architecture of the system, the technologies used, problems faced and how the problems were overcome. It is also essential to undestand that you should demonstrate sufficient understanding about system, implementation and concepts used during the viva. Otherwise some percentage of maks from the system design and implementation would also be peanalized. Further Enhancements: You should develop the same system using Python, React/Node and you can be creative to devleop the same system using any technological stream. The whole idea here is to add these proects to your portfolio. You will be able to showcase them in your internship interviews. 4