Assignment Task
Objective
Develop a structured Blazor application focused on ERacing, where you will create a member search page enabling searches based on last names, along with functionality to edit existing members or add new ones. The application will include a feature to manage member demographics and a collection of associated cars. Additionally, you will be tasked with creating a BLL (Business Logic Layer) service for members, incorporating search functionality and add/edit operations. Member view models will include a list of CarView objects.
To encapsulate the requirements and functionality of the application as described in the code you provided, were looking at a member management system for a racing club or similar organization. This system is designed to handle a variety of tasks related to managing members, their certifications, and their vehicles. Here are the key requirements and features based on the detailed code you shared:
Application Overview
The application is a web-based platform that provides functionalities for managing club
members and their racing vehicles. It allows users to search for members, add new
members, edit existing member information, and manage member-owned vehicles.
Core Features and Business Rules
Member Search and Management:
- Users can search for members by their last name.
- The system supports adding new members and editing existing member details.
- Each member has personal information such as first name, last name, address, city, postal code, phone number, email address, birthdate, and certification level.
Vehicle Management:
- Members can own multiple racing vehicles.
- Each vehicle has details including a description, serial number, ownership status, state (condition), and class.
- The application allows adding new vehicles to a member's profile and editing existing vehicle details.
- Vehicles can be marked for removal from the member's profile.
Certification Tracking:
- Members possess certifications that qualify them for participation in races. These certifications are tracked within the system.
Comprehensive Error Handling and User Feedback:
- The system implements error handling to capture and respond to runtime errors, invalid inputs, and other exceptions.
- Clear feedback messages are provided to users based on the success or failure of their actions.
Data Validation:
- Client-side and server-side validation ensure the integrity and correctness of user input.
- Data annotations are utilized to enforce validation rules on data models.
Navigation and Routing:
- The application supports navigation to different pages for member and vehicle management, leveraging Blazor's routing capabilities.
Project Requirements
1. Project Structure
- Solution Setup: Create and updated supporting files need for the Blazor application to run.
- Navigation Menu: Implement navigation menu items to navigate to the Member Search
- appsetting.json: Update with your server and database information.
- Program.cs: Update the "Program.cs" file as necessary for your application configuration.
- Extension Class: Include a class for managing dependencies.
2. Blazor Web Application
- Member Search Page:
- This page should contain a list of members.
- New Button for creating a new member. After clicking the New button, the application will then load the member page for creating a new member.
- Search Area: for search for existing members.
- Last Name: A text box for use in searching using the members last name.
- Search Button: A search button for returning a list of member based on the last name.
- Search Result Area
- An HTML table using the "TableTemplate" razor component to display query results order by last name (note: pagination is not required).
- Edit Button for editing an existing member. After clicking the Edit button, the application will then load the member page with the selected member information.
- Member Page:
- This page is used to add/edit members along with adding/editing/(soft deleting) their cars.
- Member Area: Area in which the member information is added/updated.
- New Button for adding a new car.
- List of Cars Area for adding/editing or removing cars. By default, you can edit an existing car by just updating the value in the table.
- An HTML table using the "TableTemplate" razor component to display car results (note: pagination is not required).
- Remove Button
- Sets "RemoveFromViewFlag" to true for any existing cars.
- Removes the car object if the car has NOT been save to the database .
- Save Button for saving data and return to member search page.
- Cancel Button for discarding changes and return to member search page. NOTE: No confirmation will be needed to confirm the cancellation.
Adding or Editing a Member Requirements
- First Name is required.
- Last Name is required.
- Phone is required.
- Address is required.
- City is required.
- Postal code is required.
- Email is required.
- The age of the member is greater than 100 years.
- Certification level is required.
- A minimum of 1 car is needed per member.
Adding or Editing a Car Requirements
- Description is required.
- Serial Number is required. NOTE: This must be a unique serial number.
- Ownership is required.
- State is required.
- Car class is required.
NOTE: For all Blazor pages:
- Footers used for feedback must be on each Blazor page.
- All methods must contain a try/catch area.
3. Class Library
- Extension Class: Include a class for managing dependencies.
- Services: Update the member services.
- Constructor
- GetMembers method.
- AddEditMember method.
- Ensure that all of your business rules are coded within your methods
- Data Access Layer (DAL) & View Models: This has been created and does not need to be change.
4. Version Control
- GitHub Check-ins: Continuous and regular check-ins on GitHub are a crucial part of this project. It is essential for you to commit changes to the repository consistently as the project progresses. This practice not only ensures that your work is safely versioned but also demonstrates an ongoing and collaborative development process. While there is no set minimum number of check-ins, remember that sporadic or last-minute commits are strongly discouraged and may impact your project evaluation (Penalties). Regular check-ins reflect professional development practices and are key to a successful team collaboration.
This Engineering has been solved by our PhD Experts at My Uni Paper.