Project objectives:
There are two objectives for this assignment:
1. To demonstrate the use of the C# language for the creation of an effective database front end by developing forms which:
Visually present database information.
Demonstrate appropriate user and programmatic navigation.
Allow the user to enter new data and change existing data.
2. To demonstrate the testing, debugging, and documentation of a C# application by:
Using the available debugging tools to debug a program.
Developing test cases appropriate to a GUI approach.
Introduction
This assignment is based on a case study about Looking Glass Recruitment, an IT recruitment agency. The agency requires a front end application for their database which has already been developed. You, the programmer, have to complete the work by writing an application, in the language C#, which will allow the users to maintain the records stored in the database and produce the reports that they need.
Database
You are provided with an MS Access database for this assignment named LookingGlass. Please leave the structure of this database as it is and do not add any tables or queries.
The Looking Glass database has the following tables:
EMPLOYER (EmployerID, EmployerName, Street Address, Suburb, PhoneNumber)
CANDIDATE (CandidateID, LastName, FirstName, Street Address, Suburb, PhoneNumber)
APPLICATION (VacancyID*, CandidateID*)
VACANCY (VacancyID, Description, Status, Salary, EmployerID*)
SKILL (SkillD, Description)
VACANCYSKILL (VacancyID*, SkillID*, Years)
CANDIDATESKILL (CandidateID*, SkillID*, Years)
Note that the primary keys are underlined and foreign keys are indicated by a ‘*’ symbol.
Guide to the Assignment
You are to write the code for Assignment 1 in C# using Visual Studio .NET Community 2015
You are to use the OleDb objects to interact with the MS Access database tables.
Make sure that your C# project database connection points to c:\temp and make sure theMS Access database file is placed in c:\temp
You are to use the shared dataset model (see the Shared Data, Wallace Events andGlendene Cat Care projects, as discussed in class, and notes on databases in C#).
You are to use programming logic (master-detail relationships in conjunction with ‘for-each’loops) to create the reports – please do not use Crystal Reports.
Your interface should conform to the standards discussed in class and must match the screen designs provided in this document – please note the interface in GlendeneCatCarehas limitations and should be used as a starting point but not as an exemplar.
Use the metadata provided in MS Access database tables as the data dictionary from which you can make decisions on what is valid or invalid data.
Your test cases must include all of the tests that as listed as required in the assignment document and your tests must be repeatable and independent. You may use the data in theMS Access tables as the basis for your loaded test data
Select your input test data to make your tests as independent as possible.
For example: if you are testing that a program deletes a candidate record then use, as test data, a candidate that exists in the loaded test data NOT a candidate that was input in an earlier test.
Remember to verify the expected results of the tests with other tests if possible.
For example, if you have a test that adds a new record, then use the ‘view’ facility in the program to check that the record has been added.
The numbering of your tests MUST correspond with the numbers in this document. If you create your interface so that a test is redundant (e.g. you use radio buttons for selection) you must still include the test in your test cases along with an explanation as to why it is redundant. Check all instances of this circumstance with the lecturer.
Application Requirements
Write a Windows application in C# that allows the user to do the tasks specified below and to provide reasonably comprehensive testing documentation that proves that the application performs all of the tasks. Please note that these requirements are non-negotiable.
Task 1: Main Menu
This task allows the user to access all the forms and the report in the system and exit the application.
When run, this task will create a data module object (containing the OleDb objects used with the MS Access database tables) the address of which will be passed on to all the other forms via a parameter.
Required tests:
1.1. Main menu is displayed when the program is run.
Task 2: Employer Maintenance
Display the employers’ names in a list.
Allows the user to navigate between employers in the list.
Display a selected employer’s details in a read-only format.
If the user clicks on the Add Employer button then
The Previous, Next, Return, Update Employer and Delete Employer buttons are disabled and the list should disappear.
A panel should appear (showing Save Employer and Cancel buttons) allowing the user to enter values for the new employer’s name, street address, suburb, and phone number.
If the user enters valid data for all fields and clicks on the Save Employer button then a new Employer record is saved in the database and the message “Employer added successfully” is displayed.
If the user clicks on the Cancel button then the panel should disappear, the Previous, Next, Return, Update Employer and Delete Employer buttons enabled and the list should reappear
If the user clicks on the Update Employer button then
The Previous, Next, Return, Add Employer, and Delete Employer buttons are disabled and the list should disappear.
A panel should appear (showing Save Changes and Cancel buttons) allowing the user to change the values for the employer’s name, street address, suburb, or phone number.
If the user makes valid changes to any of the allowable fields and clicks on the Save Changes button then the Employer record is updated in the database and the message “Employer updated successfully” is displayed.
If the user clicks on the Cancel button then the panel should disappear, the Previous, Next, Return, Add Employer and Delete Employer buttons should be enabled and the list should reappear.
If the user clicks on the Delete Employer button and the selected employer has no vacancies then the user is asked to confirm the deletion – if the user confirms the deletion then the employer is deleted from the database and the message “Employer deleted successfully” is displayed.
If the user clicks on the Delete Employer button and the selected Employer has vacancies then the error message “You may only delete employers who have no vacancies” is displayed.
If the user clicks on the Return button then focus is returned to the Main Menu.
Required tests:
2.1. Add a new employer with valid data in all fields.
2.2. Update an existing employer’s name with valid data.
2.3. Update an existing employer’s street address with valid data.
2.4. Update an existing employer’s suburb with valid data.
2.5. Update an existing employer’s phone number with valid data.
2.6. Delete an existing employer that has no vacancies.
2.7. Attempt to add a new employer with an invalid name but with valid data in all other fields.
2.8. Attempt to add a new employer with an invalid street address but with valid data in all other fields.
2.9. Attempt to add a new employer with an invalid suburb but with valid data in all other fields.
2.10. Attempt to add a new employer with an invalid phone number name but with valid data in all other fields.
2.11. Attempt to update an existing employer with an invalid name.
2.12. Attempt to delete an existing employer that has vacancies.
Task 3: Candidate Maintenance
Display the candidate’s names in a list.
Allows the user to navigate between candidates in the list.
Display a selected candidate’s details in a read-only format.
If the user clicks on the Add Candidate button then
The Previous, Next, Return, Update Candidate, and Delete Candidate buttons are disabled and the list should disappear.
A panel should appear (showing Save Candidate and Cancel buttons) allowing the user to enter values for the new candidate’s last name, first name, street address, suburb, and phone number.
If the user enters valid data for all fields and clicks on the Save Candidate button then a new candidate record is saved in the database and the message “Candidate added successfully” is displayed.
If the user clicks on the Cancel button then the panel should disappear, the Previous, Next, Return, Update Candidate and Delete Candidate buttons enabled and the list should reappear.
If the user clicks on the Update Candidate button then
The Previous, Next, Return, Add Candidate, and Delete Candidate buttons are disabled and the list should disappear.
A panel should appear (showing Save Changes and Cancel buttons) allowing the user to change the values for the candidate’s last name, first name, street address, suburb, or phone number.
If the user makes valid changes to any of the allowable fields and clicks on the Save Changes button then the candidate record is updated in the database and the message “Candidate updated successfully” is displayed.
If the user clicks on the Cancel button then the panel should disappear, the Previous, Next, Return, Add Candidate, and Delete Candidate buttons should be enabled and the list should reappear.
If the user clicks on the Delete Candidate button and the selected candidate has no applications then the user is asked to confirm the deletion – if the user confirms the deletion then the candidate and associated skill records are deleted from the database and the message “Candidate deleted successfully” is displayed.
If the user clicks on the Delete Candidate button and the selected candidate has at least one application then the error message “You may only delete candidates who have no applications” is displayed.
If the user clicks on the Return button then focus is returned to the Main Menu.
Required tests:
3.1. Add a new candidate with valid data in all fields.
3.2. Update an existing candidate’s last name with valid data.
3.3. Update an existing candidate’s first name with valid data.
3.4. Update an existing candidate’s street address with valid data.
3.5. Update an existing candidate’s suburb with valid data.
3.6. Delete an existing candidate that has no applications.
3.7. Attempt to add a new candidate with an invalid last name but with valid data in all other fields.
3.8. Attempt to add a new candidate with an invalid first name but with valid data in all other fields.
3.9. Attempt to add a new candidate with an invalid street address but with valid data in all other fields.
3.10. Attempt to add a new candidate with an invalid suburb but with valid data in all other fields.
3.11. Attempt to add a new candidate with an invalid phone number name but with valid data in all other fields.
3.12. Attempt to update an existing candidate with an invalid last name.
3.13. Attempt to update an existing candidate with an invalid phone number.
3.14. Attempt to delete an existing candidate that has applications.
Task 4: Vacancy Maintenance
Display the vacancies’ descriptions in a list.
Allows the user to navigate between vacancies in the list.
Display a selected vacancy’s details (along with the employer’s name) in a read-only format.
If the user clicks on the Add Vacancy button then
The Previous, Next, Return, Update Vacancy, and Delete Vacancy buttons are disabled and the list should disappear.
A panel should appear (showing Save Vacancy and Cancel buttons) allowing the user to enter values for the new vacancy’s description, salary, and employer (using combo boxes).
If the user enters valid data for all fields and clicks on the Save Vacancy button then a new vacancy record is saved (with the status set to ‘current’) in the database and the message “Vacancy added successfully” is displayed.
If the user clicks on the Cancel button then the panel should disappear, the Previous, Next, Return, Update Vacancy and Delete Vacancy buttons enabled and the list should reappear
If the user clicks on the Update Vacancy button then
The Previous, Next, Return, Add Vacancy, and Delete Vacancy buttons are disabled and the list should disappear.
A panel should appear (showing Save Changes and Cancel buttons) allowing the user to change the values for the vacancy’s description and salary.
If the user makes valid changes to any of the allowable fields and clicks on the Save Changes Vacancy button then the vacancy record is updated in the database and the message “Vacancy updated successfully” is displayed.
If the user clicks on the Cancel button then panel should disappear, the Previous, Next, Return, Add Vacancy and Delete Vacancy buttons enabled and the list should reappear
If the user clicks on the Delete Vacancy button and the selected vacancy has no applications then the user is asked to confirm the deletion – if the user confirms the deletion then the vacancy record and any associated skill records are deleted from the database and the message “Vacancy deleted successfully” is displayed.
If the user clicks on the Delete Vacancy button and the selected vacancy has applications then the error message “You may only delete a vacancy that has no applications” is displayed.
If the user clicks on the Mark Vacancy as a Filled button and the selected vacancy has a status of current then the vacancy’s status is changed to ‘filled’ in the database, all application records linked to the vacancy are deleted and the message “Vacancy marked as filled” is displayed.
If the user clicks on the Mark Vacancy as a Filled button and the selected vacancy has a status of filled then the error message “The vacancy is already filled” is displayed.
If the user clicks on the Return button then focus is returned to the Main Menu.
Required tests:
4.1. Add a new vacancy with valid data in all fields.
4.2. Update an existing vacancy’s description with valid data.
4.3. Update an existing vacancy’s salary with valid data.
4.4. Delete an existing vacancy that has no applications.
4.5. Mark as filled an existing current vacancy.
4.6. Attempt to add a new vacancy with an invalid description but with valid data in all other fields.
4.7. Attempt to add a new vacancy with an invalid salary but with valid data in all other fields.
4.8. Attempt to delete an existing vacancy that has at least one application.
4.9. Attempt to mark as filled an existing filled vacancy.
Task 5: Assign Skills to a Vacancy
Display the vacancies’ details (id, description, status, salary, and employer id) in a data grid view.
Display the vacancy id, skill id, and years of all vacancy skill records (linked to the selected vacancy) in a data grid view.
Display the details of the skill (id and description) in a data grid view.
If the user enters a valid number of years, selects a skill, and clicks on the Assign Skill button then
If the skill not already assigned to the vacancy then a new vacancy skill record is saved in the database and the message “Skill assigned successfully” is displayed.
If the skill is already assigned to the vacancy then the error message “This skill has already been assigned to this vacancy” is displayed.
If the user clicks on the Remove Skill button then the user is asked to confirm the removal – if the user confirms the removal then the vacancy skill record is deleted from the database and the message “Skill removed successfully” is displayed.
If the user clicks on the Return button then focus is returned to the Main Menu
Required tests:
5.1. Assign a skill (not already assigned), with a valid number of years, to a vacancy
5.2. Remove a skill from a vacancy
5.3. Attempt to assign a skill to a vacancy that has already been assigned to that vacancy
5.4. Attempt to assign a skill (not already assigned), with an invalid number of years, to a vacancy
Task 6: Assign Skills to a Candidate
Display the candidates’ details (id, last name, first name, street address, suburb, and phone number) in a data grid view.
Display the candidate id, skill id, and years of all candidate skill records (linked to the selected candidate) in a data grid view.
Display the details of the skill (id and description) in a data grid view.
If the user enters a valid number of years, selects a skill, and clicks on the Assign Skill button then
If the skill not already assigned to the candidate then a new candidate skill record is saved in the database and the message “Skill assigned successfully” is displayed.
If the skill is already assigned to the candidate then the error message “This skill has already been assigned to this candidate” is displayed.
If the user clicks on the Remove Skill button then the user is asked to confirm the removal – if the user confirms the removal then the candidate skill record is deleted from the database and the message “Skill removed successfully” is displayed.
If the user clicks on the Return button then focus is returned to the Main Menu.
Need Complete Solutions then you can contact us at below contact details:
Codersarts is a top-rated website for students which is looking for online Programming Assignment Help, Homework Help, Coursework Help in C, C++, Java, Python, Database, Data structure, Algorithms, Final year project, Android, Web, C sharp, ASP NET to students at all levels whether it is school, college and university level Coursework Help or Real-time project.
Hire us and Get your projects done by computer science expert. If you have project or assignment files, You can send at contact@codersarts.com directly.
Comments