Directory Management
Directory Management
You are tasked with building a Directory Management System for local businesses using .NET Core
(Backend API) and Angular/ReactJS (Frontend). The system will allow users to manage business listings,
search for businesses, and view paginated results. Additionally, the system should focus on providing a
user-friendly experience through well-designed interfaces for CRUD operations and search
functionalities.
Submission process
To ensure a streamlined and professional submission of your project, please follow the steps below:
Requirements
1. Business Listing Management (CRUD Operations)
Weightage: 40%
Admins should be able to manage business listings with the following features:
• Create a Business Listing: A button labeled “Add New Business” should open a modal or
popup form. The form should contain the following fields:
• City
• State
• Zip code.
• Rating
• Display all business listings in a table with columns: Name, Category, Street address,
State/Zip (state and zip concatenated), Contact Number, Website, Rating
• Clicking the Edit button on a row should open a popup/modal form prepopulated with
the business details.
• The admin can update any field and click Save Changes.
2. Search Functionality
Weightage: 20%
Implement pagination for the business listing table/page and search results:
• Include a page navigation bar at the bottom with options like Previous, Next, and page
numbers.
• Show total records and current page information (e.g., “Showing 1-10 of 25 records”).
4. Bonus Features
Weightage: 10%
All pages are responsive and adapt seamlessly to various screen sizes.
• Allow users to sort the data in ascending or descending order by clicking on column
headers.
• The current sort field and direction should be visually indicated (eg., using an arrow
icon up ↑ or down ↓).
5. Coding Standards
Weightage: 10%
Popup/Modal Forms
Search Bar
Database
The bacpac file to create the database and insert dummy records is attached with this
document.
1. Install/Open SQL Server Management Studio and connect to the instance of local SQL
Server.
2. In Object Explorer, right-click on Databases, and then select the Import Data-tier
Application menu item to launch the wizard.
3. Navigate to the bacpac file path and follow the instructions shown in the wizard.
Functionality: Ensure all CRUD operations, search, pagination and sorting work as expected.
Code Quality: Use of clean coding practices, comments, and adherence to standards.
Coding standards
Naming Conventions
Namespaces
Rules
Namespaces should use Pascal Case
Namespaces should follow the folder layout of your source code
Namespace root should be the project name
Nested levels in a namespace should be descriptive of the code stored there and each level
should be separated by a period “.”
Classes
Rules
Classes should use Pascal Case
Classes should be composed of one or more words.
Classes should be descriptive of the type of object and data that they store.
Classes should not use obscure acronyms.
Good Class Name Examples
Good Class Name Notes
Order Descriptive object name
Interfaces
Rules
Interfaces should use Pascal Case
Interfaces should begin with a capital “I”
Interfaces should be composed of one or more words
Interface names should be short and descriptive
Interfaces should not use obscure acronyms
Methods
Rules
Method names should use Pascal case
Method names should be descriptive of the action performed
Good Method Name Examples
Good Method Name Notes
SubmitOrder Uses Pascal case
Parameters
Rules
Parameters should use Camel Case
Parameter names should be descriptive of the input