diff --git a/bizmatch-client/src/app/utils/utils.ts b/bizmatch-client/src/app/utils/utils.ts index 0805ad6..33a8ffb 100644 --- a/bizmatch-client/src/app/utils/utils.ts +++ b/bizmatch-client/src/app/utils/utils.ts @@ -31,6 +31,7 @@ export function createEmptyBusinessListingCriteria(): BusinessListingCriteria { leasedLocation: false, franchiseResale: false, title: '', + email: 'bizmatch@proton.me', brokerName: '', searchType: 'exact', radius: null, @@ -61,6 +62,7 @@ export function resetBusinessListingCriteria(criteria: BusinessListingCriteria) criteria.leasedLocation = false; criteria.franchiseResale = false; criteria.title = ''; + criteria.email = 'bizmatch@proton.me'; criteria.brokerName = ''; criteria.searchType = 'exact'; criteria.radius = null; diff --git a/bizmatch-server/src/listings/business-listing.service.ts b/bizmatch-server/src/listings/business-listing.service.ts index b471c34..fb7ffb5 100644 --- a/bizmatch-server/src/listings/business-listing.service.ts +++ b/bizmatch-server/src/listings/business-listing.service.ts @@ -103,6 +103,9 @@ export class BusinessListingService { whereConditions.push(and(ilike(schema.users.firstname, `%${firstname}%`), ilike(schema.users.lastname, `%${lastname}%`))); } } + if (criteria.email) { + whereConditions.push(eq(schema.users.email, criteria.email)); + } if (user?.role !== 'admin') { whereConditions.push(or(eq(businesses.email, user?.email), ne(businesses.draft, true))); } diff --git a/bizmatch-server/src/models/main.model.ts b/bizmatch-server/src/models/main.model.ts index 19b1f71..51db50b 100644 --- a/bizmatch-server/src/models/main.model.ts +++ b/bizmatch-server/src/models/main.model.ts @@ -91,6 +91,7 @@ export interface BusinessListingCriteria extends ListCriteria { franchiseResale: boolean; title: string; brokerName: string; + email: string; criteriaType: 'businessListings'; } export interface CommercialPropertyListingCriteria extends ListCriteria { diff --git a/bizmatch/angular.json b/bizmatch/angular.json index 7fcec84..7af7cd4 100644 --- a/bizmatch/angular.json +++ b/bizmatch/angular.json @@ -27,6 +27,10 @@ "tsConfig": "tsconfig.app.json", "inlineStyleLanguage": "scss", "assets": [ + { + "glob": "**/*", + "input": "public" + }, "src/favicon.ico", "src/assets" ], diff --git a/bizmatch/package.json b/bizmatch/package.json index f7f657e..e852b86 100644 --- a/bizmatch/package.json +++ b/bizmatch/package.json @@ -3,7 +3,7 @@ "version": "0.0.1", "scripts": { "ng": "ng", - "start": "ng serve --port=4300 --host 0.0.0.0 & http-server ../bizmatch-server", + "start": "ng serve --host 0.0.0.0 & http-server ../bizmatch-server", "prebuild": "node version.js", "build": "node version.js && ng build", "build.dev": "node version.js && ng build --configuration dev --output-hashing=all", diff --git a/bizmatch/src/app/app.component.html b/bizmatch/src/app/app.component.html index 6b0901e..868b99b 100644 --- a/bizmatch/src/app/app.component.html +++ b/bizmatch/src/app/app.component.html @@ -3,10 +3,16 @@ @if (actualRoute !=='home' && actualRoute !=='login' && actualRoute!=='emailVerification' && actualRoute!=='email-authorized'){
} -
- +
+ @if (isFilterRoute()) { + + } +
+ +
- diff --git a/bizmatch/src/app/app.component.scss b/bizmatch/src/app/app.component.scss index c42d835..3b10177 100644 --- a/bizmatch/src/app/app.component.scss +++ b/bizmatch/src/app/app.component.scss @@ -1,25 +1,3 @@ -// .progress-spinner { -// position: fixed; -// z-index: 999; -// top: 0; -// left: 0; -// bottom: 0; -// right: 0; -// display: flex; -// flex-direction: column; -// align-items: center; -// } - -// .progress-spinner:before { -// content: ''; -// display: block; -// position: fixed; -// top: 0; -// left: 0; -// width: 100%; -// height: 100%; -// background-color: rgba(0, 0, 0, 0.3); -// } .spinner-text { margin-top: 20px; /* Abstand zwischen Spinner und Text anpassen */ font-size: 20px; /* Schriftgröße nach Bedarf anpassen */ diff --git a/bizmatch/src/app/app.component.ts b/bizmatch/src/app/app.component.ts index 4dc0bdf..d56b340 100644 --- a/bizmatch/src/app/app.component.ts +++ b/bizmatch/src/app/app.component.ts @@ -47,42 +47,18 @@ export class AppComponent { this.actualRoute = currentRoute.snapshot.url[0].path; }); } - ngOnInit() { - // this.keycloakService.keycloakEvents$.subscribe({ - // next: event => { - // if (event.type === KeycloakEventType.OnTokenExpired) { - // this.handleTokenExpiration(); - // } - // }, - // }); - } - // private async handleTokenExpiration(): Promise { - // try { - // // Versuche, den Token zu erneuern - // const refreshed = await this.keycloakService.updateToken(); - // if (!refreshed) { - // // Wenn der Token nicht erneuert werden kann, leite zur Login-Seite weiter - // this.keycloakService.login({ - // redirectUri: window.location.href, // oder eine andere Seite - // }); - // } - // } catch (error) { - // if (error.error === 'invalid_grant' && error.error_description === 'Token is not active') { - // // Hier wird der Fehler "invalid_grant" abgefangen - // this.keycloakService.login({ - // redirectUri: window.location.href, - // }); - // } - // } - // } + ngOnInit() {} @HostListener('window:keydown', ['$event']) handleKeyboardEvent(event: KeyboardEvent) { if (event.shiftKey && event.ctrlKey && event.key === 'V') { this.showVersionDialog(); } } - showVersionDialog() { this.confirmationService.showConfirmation({ message: `App Version: ${this.build.timestamp}`, buttons: 'none' }); } + isFilterRoute(): boolean { + const filterRoutes = ['/businessListings', '/commercialPropertyListings', '/brokerListings']; + return filterRoutes.includes(this.actualRoute); + } } diff --git a/bizmatch/src/app/components/header/header.component.html b/bizmatch/src/app/components/header/header.component.html index 8cbf44b..1a3689d 100644 --- a/bizmatch/src/app/components/header/header.component.html +++ b/bizmatch/src/app/components/header/header.component.html @@ -6,7 +6,7 @@
@if(isFilterUrl()){ - + -->
+ --> - +
- @if(criteria.criteriaType==='businessListings'){ -
-
-
- - -
-
- -
- - -
- -
- - + @if(criteria){ +
+ @if(criteria.criteriaType==='businessListings') { +
+
+
+ +
-
- -
- -
- @for (radius of [5, 20, 50, 100, 200, 300, 400, 500]; track radius) { - - } +
+
-
- -
- -
- - - - - - -
-
-
- -
- - - - - - -
-
-
- -
- - - - - - -
-
-
- - -
-
-
-
- -
- @for(tob of selectOptions.typesOfBusiness; track tob){ -
- - -
- } -
-
-
- -
-
- - -
-
- - -
-
- - +
+ +
+ +
-
-
- -
+
+ +
+ @for (radius of [5, 20, 50, 100, 200, 300, 400, 500]; track radius) { + + } +
+
+
+ +
+ + - + +
+
+
+ +
+ + - + +
+
+
+ +
+ + - + +
+
+
+ - - +
+
+ +
+ @for(tob of selectOptions.typesOfBusiness; track tob) { +
+ + +
+ } +
+
+
+ +
+
+ + +
+
+ + +
+
+ + +
+
+
+
+ +
+ + - + +
+
+
+ +
+ + - + +
+
+
+
-
- -
+
+ } @if(criteria.criteriaType==='commercialPropertyListings') { +
+
+
+ + +
+
+ +
+
+ +
+ + +
+
+
+ +
+ @for (radius of [5, 20, 50, 100, 200, 300, 400, 500]; track radius) { + + } +
+
+
+ +
+ + - + +
+
+
+ - - +
+
+ +
+ @for(tob of selectOptions.typesOfCommercialProperty; track tob) { +
+ + +
+ } +
+
+
+
+ } @if(criteria.criteriaType==='brokerListings') { +
+
+
+ + +
+
+ + +
+
+ +
+
+ +
+ + +
+
+
+ +
+ @for (radius of [5, 20, 50, 100, 200, 300, 400, 500]; track radius) { + + } +
+
+
+
-
- - -
-
-
- } @if(criteria.criteriaType==='commercialPropertyListings'){ -
-
-
- - -
-
- - -
- -
- -
- - -
-
- -
- -
- @for (radius of [5, 20, 50, 100, 200, 300, 400, 500]; track radius) { - - } -
-
-
- -
- - - - - - -
-
-
- - -
-
-
-
- -
- @for(tob of selectOptions.typesOfCommercialProperty; track tob){ -
- - -
- } -
-
-
-
- } @if(criteria.criteriaType==='brokerListings'){ -
-
-
- - -
-
- - - -
-
- - -
- -
- -
- - -
-
-
- - -
- -
- -
- @for (radius of [5, 20, 50, 100, 200, 300, 400, 500]; track radius) { - - } -
-
-
-
-
- -
- @for(tob of selectOptions.customerSubTypes; track tob){ -
- - -
- } -
-
+ }
}
@@ -510,3 +383,331 @@
+
+
+

Filter ({{ numberOfResults$ | async }})

+ + +
+ @if(criteria.criteriaType==='businessListings') { +
+
+ + +
+
+ +
+
+ +
+ + +
+
+
+ +
+ @for (radius of [5, 20, 50, 100, 200, 300, 400, 500]; track radius) { + + } +
+
+
+ +
+ + - + +
+
+
+ +
+ + - + +
+
+
+ +
+ + - + +
+
+
+ + +
+
+ +
+ @for(tob of selectOptions.typesOfBusiness; track tob) { +
+ + +
+ } +
+
+
+ +
+
+ + +
+
+ + +
+
+ + +
+
+
+
+ +
+ + - + +
+
+
+ +
+ + - + +
+
+
+ + +
+
+ } @if(criteria.criteriaType==='commercialPropertyListings') { +
+
+ + +
+
+ +
+
+ +
+ + +
+
+
+ +
+ @for (radius of [5, 20, 50, 100, 200, 300, 400, 500]; track radius) { + + } +
+
+
+ +
+ + - + +
+
+
+ + +
+
+ +
+ @for(tob of selectOptions.typesOfCommercialProperty; track tob) { +
+ + +
+ } +
+
+
+ } @if(criteria.criteriaType==='brokerListings') { +
+
+ + +
+
+ + +
+
+ +
+
+ +
+ + +
+
+
+ +
+ @for (radius of [5, 20, 50, 100, 200, 300, 400, 500]; track radius) { + + } +
+
+
+ + +
+
+ } + +
diff --git a/bizmatch/src/app/components/search-modal/search-modal.component.ts b/bizmatch/src/app/components/search-modal/search-modal.component.ts index e4af131..9150c9b 100644 --- a/bizmatch/src/app/components/search-modal/search-modal.component.ts +++ b/bizmatch/src/app/components/search-modal/search-modal.component.ts @@ -1,5 +1,5 @@ import { AsyncPipe, NgIf } from '@angular/common'; -import { Component } from '@angular/core'; +import { Component, Input, Output } from '@angular/core'; import { NgSelectModule } from '@ng-select/ng-select'; import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy'; import { catchError, concat, debounceTime, distinctUntilChanged, map, Observable, of, Subject, Subscription, switchMap, tap } from 'rxjs'; @@ -7,10 +7,11 @@ import { BusinessListingCriteria, CommercialPropertyListingCriteria, CountyResul import { CriteriaChangeService } from '../../services/criteria-change.service'; import { GeoService } from '../../services/geo.service'; import { ListingsService } from '../../services/listings.service'; +import { SearchService } from '../../services/search.service'; import { SelectOptionsService } from '../../services/select-options.service'; import { UserService } from '../../services/user.service'; import { SharedModule } from '../../shared/shared/shared.module'; -import { resetBusinessListingCriteria, resetCommercialPropertyListingCriteria, resetUserListingCriteria } from '../../utils/utils'; +import { getCriteriaStateObject, resetBusinessListingCriteria, resetCommercialPropertyListingCriteria, resetUserListingCriteria } from '../../utils/utils'; import { ValidatedCityComponent } from '../validated-city/validated-city.component'; import { ValidatedPriceComponent } from '../validated-price/validated-price.component'; import { ModalService } from './modal.service'; @@ -23,6 +24,9 @@ import { ModalService } from './modal.service'; styleUrl: './search-modal.component.scss', }) export class SearchModalComponent { + @Output() + @Input() + isModal: boolean = true; // cities$: Observable; counties$: Observable; // cityLoading = false; @@ -31,7 +35,8 @@ export class SearchModalComponent { countyInput$ = new Subject(); private criteriaChangeSubscription: Subscription; public criteria: BusinessListingCriteria | CommercialPropertyListingCriteria | UserListingCriteria; - backupCriteria: BusinessListingCriteria | CommercialPropertyListingCriteria | UserListingCriteria; + + public backupCriteria: BusinessListingCriteria | CommercialPropertyListingCriteria | UserListingCriteria = getCriteriaStateObject('businessListings'); numberOfResults$: Observable; cancelDisable = false; constructor( @@ -41,9 +46,11 @@ export class SearchModalComponent { private criteriaChangeService: CriteriaChangeService, private listingService: ListingsService, private userService: UserService, + private searchService: SearchService, ) {} ngOnInit() { this.setupCriteriaChangeListener(); + this.modalService.message$.pipe(untilDestroyed(this)).subscribe(msg => { this.criteria = msg; this.backupCriteria = JSON.parse(JSON.stringify(msg)); @@ -69,6 +76,7 @@ export class SearchModalComponent { this.criteria.types.splice(index, 1); } } + this.searchService.search(this.criteria); } private loadCounties() { this.counties$ = concat( @@ -86,6 +94,9 @@ export class SearchModalComponent { ), ); } + onCriteriaChange() { + this.searchService.search(this.criteria); + } setCity(city) { if (city) { this.criteria.city = city; @@ -95,6 +106,7 @@ export class SearchModalComponent { this.criteria.radius = null; this.criteria.searchType = 'exact'; } + this.searchService.search(this.criteria); } setState(state: string) { if (state) { @@ -103,6 +115,11 @@ export class SearchModalComponent { this.criteria.state = null; this.setCity(null); } + this.searchService.search(this.criteria); + } + setRadius(radius: number) { + this.criteria.radius = radius; + this.searchService.search(this.criteria); } private setupCriteriaChangeListener() { this.criteriaChangeSubscription = this.criteriaChangeService.criteriaChange$.pipe(debounceTime(400)).subscribe(() => { @@ -160,5 +177,6 @@ export class SearchModalComponent { // Aktivieren Sie nur die aktuell ausgewählte Checkbox this.criteria[checkbox] = value; + this.searchService.search(this.criteria); } } diff --git a/bizmatch/src/app/pages/listings/business-listings/business-listings.component.html b/bizmatch/src/app/pages/listings/business-listings/business-listings.component.html index 894e769..9b51777 100644 --- a/bizmatch/src/app/pages/listings/business-listings/business-listings.component.html +++ b/bizmatch/src/app/pages/listings/business-listings/business-listings.component.html @@ -1,113 +1,115 @@ -
- @if(listings?.length>0){ -
- - @for (listing of listings; track listing.id) { -
- -
-
- - - {{ selectOptions.getBusiness(listing.type) }} - -
-

- - {{ listing.title }} - @if(listing.draft){ - Draft - } -

-
- - - {{ selectOptions.getState(listing.location.state) }} - -

- {{ getDaysListed(listing) }} days listed -

-
- -

- Asking price: {{ listing.price | currency : 'USD' : 'symbol' : '1.0-0' }} -

-

Sales revenue: {{ listing.salesRevenue | currency : 'USD' : 'symbol' : '1.0-0' }}

-

Net profit: {{ listing.cashFlow | currency : 'USD' : 'symbol' : '1.0-0' }}

-

Location: {{ listing.location.name ? listing.location.name : listing.location.county }}

-

Established: {{ listing.established }}

+
+ + - Company logo - -
- + +
+
+ @if(listings?.length > 0) { +
+ @for (listing of listings; track listing.id) { +
+
+
+ + {{ selectOptions.getBusiness(listing.type) }} +
+

+ {{ listing.title }} + @if(listing.draft) { + Draft + } +

+
+ + {{ selectOptions.getState(listing.location.state) }} + +

+ {{ getDaysListed(listing) }} days listed +

+
+

+ Asking price: {{ listing.price | currency : 'USD' : 'symbol' : '1.0-0' }} +

+

Sales revenue: {{ listing.salesRevenue | currency : 'USD' : 'symbol' : '1.0-0' }}

+

Net profit: {{ listing.cashFlow | currency : 'USD' : 'symbol' : '1.0-0' }}

+

Location: {{ listing.location.name ? listing.location.name : listing.location.county }}

+

Established: {{ listing.established }}

+ Company logo +
+ +
+
+ }
+ } @else if (listings?.length === 0) { +
+
+ + + + + + + + + + + + + + + + + +
+

There’s no listing here

+

Try changing your filters to
see listings

+
+ + +
+
+
+
+ }
+ @if(pageCount > 1) { + }
- } @else if (listings?.length===0){ -
-
- - - - - - - - - - - - - - - - - -
-

There’s no listing here

-

Try changing your filters to
see listings

-
- - -
-
-
-
- } -
-@if(pageCount>1){ - -} + + +
diff --git a/bizmatch/src/app/pages/listings/business-listings/business-listings.component.ts b/bizmatch/src/app/pages/listings/business-listings/business-listings.component.ts index 6026f4f..dc12c90 100644 --- a/bizmatch/src/app/pages/listings/business-listings/business-listings.component.ts +++ b/bizmatch/src/app/pages/listings/business-listings/business-listings.component.ts @@ -9,6 +9,7 @@ import { BusinessListingCriteria, LISTINGS_PER_PAGE, ListingType, emailToDirName import { environment } from '../../../../environments/environment'; import { PaginatorComponent } from '../../../components/paginator/paginator.component'; import { ModalService } from '../../../components/search-modal/modal.service'; +import { SearchModalComponent } from '../../../components/search-modal/search-modal.component'; import { CriteriaChangeService } from '../../../services/criteria-change.service'; import { ImageService } from '../../../services/image.service'; import { ListingsService } from '../../../services/listings.service'; @@ -19,7 +20,7 @@ import { assignProperties, getCriteriaProxy, resetBusinessListingCriteria } from @Component({ selector: 'app-business-listings', standalone: true, - imports: [CommonModule, FormsModule, RouterModule, PaginatorComponent], + imports: [CommonModule, FormsModule, RouterModule, PaginatorComponent, SearchModalComponent], templateUrl: './business-listings.component.html', styleUrls: ['./business-listings.component.scss', '../../pages.scss'], }) @@ -55,6 +56,7 @@ export class BusinessListingsComponent { private criteriaChangeService: CriteriaChangeService, ) { this.criteria = getCriteriaProxy('businessListings', this) as BusinessListingCriteria; + this.modalService.sendCriteria(this.criteria); this.init(); this.searchService.currentCriteria.pipe(untilDestroyed(this)).subscribe(criteria => { if (criteria && criteria.criteriaType === 'businessListings') { diff --git a/bizmatch/src/app/services/validation.service.ts b/bizmatch/src/app/services/validation.service.ts new file mode 100644 index 0000000..baf562d --- /dev/null +++ b/bizmatch/src/app/services/validation.service.ts @@ -0,0 +1,60 @@ +import { Injectable } from '@angular/core'; + +export interface ValidationMessage { + field: string; + message: string; +} + +@Injectable({ + providedIn: 'root', +}) +export class ValidationService { + private messages: ValidationMessage[] = []; + + constructor() {} + + /** + * Fügt Validierungsnachrichten hinzu oder aktualisiert bestehende + * @param messages Array von Validierungsnachrichten + */ + setMessages(messages: ValidationMessage[]): void { + this.messages = messages; + } + + /** + * Löscht alle Validierungsmeldungen + */ + clearMessages(): void { + this.messages = []; + } + + /** + * Prüft, ob für ein bestimmtes Feld eine Validierungsmeldung existiert + * @param field Name des Feldes + * @returns true, wenn eine Meldung existiert + */ + hasMessage(field: string): boolean { + return this.messages.some(message => message.field === field); + } + + /** + * Gibt die Validierungsmeldung für ein bestimmtes Feld zurück + * @param field Name des Feldes + * @returns ValidationMessage oder null, wenn keine Meldung existiert + */ + getMessage(field: string): ValidationMessage | null { + return this.messages.find(message => message.field === field) || null; + } + + /** + * Hilfsmethode zur Verarbeitung von API-Fehlermeldungen + * @param error API-Fehler mit message-Array + */ + handleApiError(error: any): void { + if (error && error.message && Array.isArray(error.message)) { + this.setMessages(error.message); + } else { + this.clearMessages(); + } + } +} diff --git a/bizmatch/src/app/utils/utils.ts b/bizmatch/src/app/utils/utils.ts index 2baccee..1e9be9c 100644 --- a/bizmatch/src/app/utils/utils.ts +++ b/bizmatch/src/app/utils/utils.ts @@ -31,6 +31,7 @@ export function createEmptyBusinessListingCriteria(): BusinessListingCriteria { leasedLocation: false, franchiseResale: false, title: '', + email: '', brokerName: '', searchType: 'exact', radius: null, diff --git a/bizmatch/src/assets/images/advertising.png b/bizmatch/src/assets/images/advertising.png new file mode 100644 index 0000000..ec3bd0a Binary files /dev/null and b/bizmatch/src/assets/images/advertising.png differ diff --git a/bizmatch/src/assets/images/agriculture.png b/bizmatch/src/assets/images/agriculture.png new file mode 100644 index 0000000..ca0887b Binary files /dev/null and b/bizmatch/src/assets/images/agriculture.png differ diff --git a/bizmatch/src/assets/images/automotive.png b/bizmatch/src/assets/images/automotive.png new file mode 100644 index 0000000..803923c Binary files /dev/null and b/bizmatch/src/assets/images/automotive.png differ diff --git a/bizmatch/src/assets/images/automotive_.png b/bizmatch/src/assets/images/automotive_.png new file mode 100644 index 0000000..b9d8a65 Binary files /dev/null and b/bizmatch/src/assets/images/automotive_.png differ diff --git a/bizmatch/src/assets/images/avatar-f-3 copy.png b/bizmatch/src/assets/images/avatar-f-3 copy.png new file mode 100644 index 0000000..7c3d3a9 Binary files /dev/null and b/bizmatch/src/assets/images/avatar-f-3 copy.png differ diff --git a/bizmatch/src/assets/images/bw-sky copy.jpg b/bizmatch/src/assets/images/bw-sky copy.jpg new file mode 100644 index 0000000..65fd5e1 Binary files /dev/null and b/bizmatch/src/assets/images/bw-sky copy.jpg differ diff --git a/bizmatch/src/assets/images/corpusChristiSkyline copy.jpg b/bizmatch/src/assets/images/corpusChristiSkyline copy.jpg new file mode 100644 index 0000000..5aac1b2 Binary files /dev/null and b/bizmatch/src/assets/images/corpusChristiSkyline copy.jpg differ diff --git a/bizmatch/src/assets/images/foodAndRestaurant.png b/bizmatch/src/assets/images/foodAndRestaurant.png new file mode 100644 index 0000000..19ed687 Binary files /dev/null and b/bizmatch/src/assets/images/foodAndRestaurant.png differ diff --git a/bizmatch/src/assets/images/franchise.png b/bizmatch/src/assets/images/franchise.png new file mode 100644 index 0000000..2356f15 Binary files /dev/null and b/bizmatch/src/assets/images/franchise.png differ diff --git a/bizmatch/src/assets/images/header-logo copy.png b/bizmatch/src/assets/images/header-logo copy.png new file mode 100644 index 0000000..aba9071 Binary files /dev/null and b/bizmatch/src/assets/images/header-logo copy.png differ diff --git a/bizmatch/src/assets/images/index-bg copy.jpg b/bizmatch/src/assets/images/index-bg copy.jpg new file mode 100644 index 0000000..85f8e8b Binary files /dev/null and b/bizmatch/src/assets/images/index-bg copy.jpg differ diff --git a/bizmatch/src/assets/images/index-bg copy.webp b/bizmatch/src/assets/images/index-bg copy.webp new file mode 100644 index 0000000..54d8c6d Binary files /dev/null and b/bizmatch/src/assets/images/index-bg copy.webp differ diff --git a/bizmatch/src/assets/images/industrialServices.png b/bizmatch/src/assets/images/industrialServices.png new file mode 100644 index 0000000..15e138b Binary files /dev/null and b/bizmatch/src/assets/images/industrialServices.png differ diff --git a/bizmatch/src/assets/images/manufacturing.png b/bizmatch/src/assets/images/manufacturing.png new file mode 100644 index 0000000..151e0d8 Binary files /dev/null and b/bizmatch/src/assets/images/manufacturing.png differ diff --git a/bizmatch/src/assets/images/oilfield.png b/bizmatch/src/assets/images/oilfield.png new file mode 100644 index 0000000..f667e34 Binary files /dev/null and b/bizmatch/src/assets/images/oilfield.png differ diff --git a/bizmatch/src/assets/images/person_placeholder copy.jpg b/bizmatch/src/assets/images/person_placeholder copy.jpg new file mode 100644 index 0000000..5e2b51e Binary files /dev/null and b/bizmatch/src/assets/images/person_placeholder copy.jpg differ diff --git a/bizmatch/src/assets/images/placeholder copy.png b/bizmatch/src/assets/images/placeholder copy.png new file mode 100644 index 0000000..85156a3 Binary files /dev/null and b/bizmatch/src/assets/images/placeholder copy.png differ diff --git a/bizmatch/src/assets/images/placeholder_properties copy.jpg b/bizmatch/src/assets/images/placeholder_properties copy.jpg new file mode 100644 index 0000000..e411207 Binary files /dev/null and b/bizmatch/src/assets/images/placeholder_properties copy.jpg differ diff --git a/bizmatch/src/assets/images/pricing-4 copy.svg b/bizmatch/src/assets/images/pricing-4 copy.svg new file mode 100644 index 0000000..de994ae --- /dev/null +++ b/bizmatch/src/assets/images/pricing-4 copy.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/bizmatch/src/assets/images/professional.png b/bizmatch/src/assets/images/professional.png new file mode 100644 index 0000000..946ab49 Binary files /dev/null and b/bizmatch/src/assets/images/professional.png differ diff --git a/bizmatch/src/assets/images/realEstate.png b/bizmatch/src/assets/images/realEstate.png new file mode 100644 index 0000000..52d3864 Binary files /dev/null and b/bizmatch/src/assets/images/realEstate.png differ diff --git a/bizmatch/src/assets/images/retail.png b/bizmatch/src/assets/images/retail.png new file mode 100644 index 0000000..eb73c75 Binary files /dev/null and b/bizmatch/src/assets/images/retail.png differ diff --git a/bizmatch/src/assets/images/service.png b/bizmatch/src/assets/images/service.png new file mode 100644 index 0000000..1d6adfa Binary files /dev/null and b/bizmatch/src/assets/images/service.png differ diff --git a/bizmatch/src/assets/images/uncategorized.png b/bizmatch/src/assets/images/uncategorized.png new file mode 100644 index 0000000..86b76bb Binary files /dev/null and b/bizmatch/src/assets/images/uncategorized.png differ