From b03b911e99b9676746393bb3310cb41ba8c58468 Mon Sep 17 00:00:00 2001 From: Flatlogic Bot Date: Wed, 18 Feb 2026 13:28:04 +0000 Subject: [PATCH] 111 --- 502.html | 2 +- README.md | 2 +- assets/pasted-20260218-034356-d8337609.png | Bin 0 -> 219531 bytes backend/README.md | 2 +- backend/package.json | 2 +- backend/src/config.js | 6 +- backend/src/db/api/businesses.js | 10 +- backend/src/db/api/lead_matches.js | 2 +- backend/src/index.js | 4 +- backend/src/routes/businesses.js | 7 +- backend/src/services/businesses.js | 57 +- backend/src/services/notifications/list.js | 2 +- backend/src/services/search.js | 17 +- frontend/README.md | 2 +- frontend/public/logo.png | Bin 0 -> 219531 bytes frontend/src/components/AsideMenuLayer.tsx | 12 +- frontend/src/components/Logo/index.tsx | 6 +- frontend/src/config.ts | 4 +- frontend/src/layouts/Guest.tsx | 15 +- frontend/src/pages/_app.tsx | 2 +- .../src/pages/businesses/[businessesId].tsx | 1617 ++--------------- .../src/pages/businesses/businesses-list.tsx | 388 ++-- .../src/pages/businesses/businesses-new.tsx | 1186 +----------- frontend/src/pages/dashboard.tsx | 516 +++--- frontend/src/pages/forgot.tsx | 4 +- frontend/src/pages/index.tsx | 4 +- frontend/src/pages/login.tsx | 15 +- frontend/src/pages/privacy-policy.tsx | 2 +- .../src/pages/public/businesses-details.tsx | 8 +- frontend/src/pages/public/request-service.tsx | 2 +- frontend/src/pages/register.tsx | 10 +- frontend/src/pages/reviews/reviews-new.tsx | 179 +- frontend/src/pages/terms-of-use.tsx | 2 +- 33 files changed, 866 insertions(+), 3221 deletions(-) create mode 100644 assets/pasted-20260218-034356-d8337609.png create mode 100644 frontend/public/logo.png diff --git a/502.html b/502.html index 479e97e..57f97a3 100644 --- a/502.html +++ b/502.html @@ -129,7 +129,7 @@

The application is currently launching. The page will automatically refresh once site is available.

-

Fix It Local

+

Fix-It-Local

Trust-first service directory with verification, transparent pricing, AI-style matching, and request tracking.

diff --git a/README.md b/README.md index f95f064..93b1c09 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ -# Fix It Local +# Fix-It-Local ## This project was generated by [Flatlogic Platform](https://flatlogic.com). diff --git a/assets/pasted-20260218-034356-d8337609.png b/assets/pasted-20260218-034356-d8337609.png new file mode 100644 index 0000000000000000000000000000000000000000..8f07b5431e96bf1970836a8a104ebf341cf3aae4 GIT binary patch literal 219531 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

+ ) } ReviewsNew.getLayout = function getLayout(page: ReactElement) { return ( - + {page} - + ) } diff --git a/frontend/src/pages/terms-of-use.tsx b/frontend/src/pages/terms-of-use.tsx index 829e0c2..8b98088 100644 --- a/frontend/src/pages/terms-of-use.tsx +++ b/frontend/src/pages/terms-of-use.tsx @@ -5,7 +5,7 @@ import LayoutGuest from '../layouts/Guest'; import { getPageTitle } from '../config'; export default function PrivacyPolicy() { - const title = 'Fix It Local'; + const title = 'Fix-It-Local'; const [projectUrl, setProjectUrl] = useState(''); useEffect(() => {