Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

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.

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 fields Page 4 of 12 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.

Assignment 3: Application Prototype (ASP.NET/C# Code Solution)

Your task in this assignment is to develop a functioning prototype of the Invoice IT application as specified in the design documentation delivered in Assignment 2: Application Design. The prototype is to be developed using the ASP.NET/C#/SQL stack and developed as a Visual Studio project. The functioning prototype you deliver will then be presented to stakeholders in Assignment 4: Application Demonstration. How you build your application from a logic and presentation perspective is up to you, however, it is required that you have a main menu page named index.aspx that users are taken to after logging in from a page named login.aspx, with links to each of the modules listed in the Assignment Overview. As there is quite a lot to be done in this project, it is suggested that you take advantage of features Visual Studio and .NET provide to build its major elements quickly and avoid coding everything manually. Manual coding should mainly be used when you are connecting modules together or tweaking a components specific functionality. From a marking perspective however, you will be graded on your applications functionality outcomes rather than the development methodology you employed to build it. Test your application thoroughly to make sure that it is fully self-contained and portable, and that it will work as expected when your lecturer/tutor downloads the project files submitted to their own Visual Studio environment. Be mindful that your prototype will be marked as-is. Your lecturer/tutor will not attempt to debug or troubleshoot your application code if it does not function. General Requirements: Marks will be allocated according to the marking guide below, so examine with great care and use it as your guide in both your development and testing processes Data validation can be performed on the server-side, client-side, or both as you see appropriate Code commenting should be used to extensively throughout your code to explain its functionality Your input validation messaging should be clear and precise and make it very clear to users what they must do to fix an input error or otherwise explain an application issue.

Your .NET/C# solution will be run in Visual Studio in its .sln project form with the start page being login.aspx. Its on this page that your lecturer/tutor will expect to find the Login form. Once successfully logged in, your lecturer/tutor should be taken to a page named index.aspx, which will display a list of all the functions the applicable role has access to. Please note that your solution will not be built and published to a web server, and will be run/marked entirely within Visual Studio in test mode. If your solution, or any specific part of it, does not run for whatever reason, such as: a) The file/folders submitted are incomplete to not self-contained, or b) Incompatibility issues caused by using a development environment other than that specified, or c) The SQL database was not submitted along with the project files, or d) Just straight-up coding errors, etc then your tutor/lecturer will assign marks on a code read-through basis only. No troubleshooting will be attempted. Please note that only partial marks are available when a code read-through is required, so please: a) Use the development environment specified, Visual Studio 2019 b) Use the technology stack specified, i.e. ASP.NET/C#/SQL/Web Forms c) Test your application and application components thoroughly before submission d) Make sure the database component is embedded and travels with your applications project structure/tree in the app_data folder e) Make sure you submit your solution in its entirety (complete and self-contained.

In assignment 3, I need a prototype

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access with AI-Powered Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Students also viewed these Databases questions