Uploaded by Gayan Tissera

Proect Development - Bridge Boot Camp Tech Sessions (1)

advertisement
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
Download