Question
Assignment Overview In the real-world, your job as a software engineer is to solve unsolved problems. Below, you will find details of a desired software
Assignment Overview
In the real-world, your job as a software engineer is to solve unsolved problems. Below, you will find details of a desired software application for which a solution does not yet exist. In Assignments 2, 3 and 4 therefore, each of which is closely related, you will apply the skills and knowledge you have acquired from the unit materials to model, build and present a prototype solution to fulfill a set of application specifications that have been provided to you.
To this end, you are to imagine that you run a small software engineering house that specialises in the development of Software as a Service (SaaS) web applications built on the ASP.Net/C#/SQL stack.
You have recently received an invitation from a potential client to design a prototype/proof-of-concept for a time tracking and client invoicing web application for small IT services companies that is to be named InvoiceIT if and when released. The InvoiceIT web application will allow users to record how much time they spend on specific tasks for a specific client and then generate invoices for specific clients based on nominated date ranges.
For speed of prototype development, you have decided to construct it as an ASP.NET Web Forms/C# project using Microsoft Visual Studio. Should you be successful in getting the development contract, you would probably opt to develop the full application based on ASP.NET Core MVC, but this option will not be used for the prototype.
The client has provided you with the following information:
1. A partial database schema and test data
2. A System Requirement Specification (SRS) and user role capabilities table
3. A listing of general systems requirements and business rules
Your prototype is to implement the functionality below:
Client Module:
This module will allow the Administrator role to manage clients within the system which includes adding, updating, deleting and viewing clients at the list and individual levels
The Client ID will also be required by the Work Item and Invoice modules [hint this suggests a number of relationships]
See Database Schema above for required fields
Task Module:
A Task is a particular service provided by the users of the InvoiceIT application.
You will find a list of sample tasks in the accompanying Excel file named table_data.xlsx that you will use to populate the Task table of the database
The Task ID will also be required by the Work Item module [hint this suggests a relationship]
See Database Schema above for required field
Work Item Module:
This contains all of the particulars of a specific task performed by a specific staff member for a specific client, the being:
Date (the work was done)
Start Time (24hr format)
End Time (24hr format)
Status (Paused, Ongoing, Completed, Discontinued)
Comment
The Work Item ID will also be required by several other modules in the system [hint this suggests a number of relationships]
Staff Member Module
This module will allow the Administrator role to manage staff within the system which includes adding, updating, deleting and viewing staff members at the list and individual levels
The Staff ID will also be required by the Work Item module [hint this suggests a relationship]
See Database Schema above for required fields
Invoice Module
This module will allow the Administrator role to generate, update, delete and view invoice according to a set of business rules.
An invoice requires the following information:
An invoice number
The business name of the recipient
The start date of the invoice line item period
The end date of the invoice line item period
The date the invoice was generated or updated
The date the invoice was sent
The date payment is dues
The status of the invoice (generated, sent, overdue, paid, withdrawn) Each line item must show:
The Work Item ID
The task performed
Total hours spent on that task
The staff member who performed the task
The Work Item's status
Prototype Functionality Business Rules and Role Access
The prototype is to implement the business rules in the table below, and restrict access to these by user role, also specified in the table. The system is to support two (2) user roles
: 1. Administrator Role (admin) - that can access all functionality and modules
2. Staff Role (staff) - that can access limited functionality and modules
Application Prototype Out-of-Scope Items
The prototype is not to include:
Invoice sending functionality
Invoice payment functionality
Client self-serve functionality
General System Requirements
Login, logout and session management procedures are to be implemented
Dates must appear in Australian format in the applications user interface (inputs/outputs)
All user inputs must be validated to match associated database fields Page 7 of 12
Database schema must be normalised to the 3rd normal form no many-to-many relationships are to exist; this means that you will need to identify and create at least one additional table not suggested above to resolve many-to-many relationships in the database design
The SQL database is to be named invit.mdf and reside with the App_Data folder of the applications project tree
The connection string to the SQL database must not use a hard-coded path to ensure the database connection is not compromised when project files are moved from one machine to another.
These are the diagram I want ( use draw.io)
Assignment 2: Application Design (PDF Document) - 20 marks
3. Two (2) Use Case Diagrams
4. Two (2) Class Diagrams
5. A full Object Relationship model
6. Two (2) Scenarios
7. Two (2) Sequence Diagrams
8. One (1) Form Design
this is the full quesion
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started