chore(branding): rebrand FixMate to CityPulse across codebase

- Update product name in README, backend docs, and design tokens
- Rename Flutter root widget to CityPulseApp and update tests
- Update dashboard brand strings and HTML title
- Refresh i18n strings (en/ms) and welcome taglines
- Adjust backend API title/description and root message
- Minor formatting in ApiService comments; no logic changes
- Update Android/iOS manifest comments and pubspec description

No API endpoints or response schema changes.
This commit is contained in:
2025-09-27 11:15:15 +08:00
parent 6924455d35
commit ed63a0cbc8
20 changed files with 59 additions and 44 deletions

View File

@@ -2,7 +2,7 @@ Perfect 👍 thanks for clarifying — lets keep it **venv only**. Ill adj
---
# 🛠️ FixMate Backend Hackathon Prototype
# 🛠️ CityPulse Backend Hackathon Prototype
Smart citizen-driven urban maintenance platform powered by **Computer Vision + Generative AI**.
This backend runs fully **locally** (no cloud required).

Binary file not shown.

View File

@@ -16,18 +16,18 @@ logger = logging.getLogger(__name__)
# ----------------------
@asynccontextmanager
async def lifespan(app: FastAPI):
logger.info("Starting FixMate Backend...")
logger.info("Starting CityPulse Backend...")
init_ai_service() # ✅ Models load once here
logger.info("AI models loaded successfully.")
yield
logger.info("FixMate Backend shutting down...")
logger.info("CityPulse Backend shutting down...")
# ----------------------
# Initialize FastAPI
# ----------------------
app = FastAPI(
title="FixMate Backend API",
description="Backend for FixMate Hackathon Prototype",
title="CityPulse Backend API",
description="Backend for CityPulse Hackathon Prototype",
version="1.0.0",
lifespan=lifespan
)
@@ -80,7 +80,7 @@ except Exception as e:
@app.get("/")
def root():
return {"message": "Welcome to FixMate Backend API! Visit /docs for API documentation."}
return {"message": "Welcome to CityPulse Backend API! Visit /docs for API documentation."}
@app.get("/test")
def test():

View File

@@ -2,7 +2,7 @@ Perfect 👍 Before I drop a full codebase, lets agree on the **flow + plan**
---
# ⚡ Backend Flow (FixMate Local Prototype)
# ⚡ Backend Flow (CityPulse Local Prototype)
### 1. Citizen Upload Flow
@@ -32,7 +32,7 @@ Perfect 👍 Before I drop a full codebase, lets agree on the **flow + plan**
* Every report:
* Pass image to model → detect objects.
* Map objects to FixMate categories (`pothole`, `streetlight`, `trash`, `signage`).
* Map objects to CityPulse categories (`pothole`, `streetlight`, `trash`, `signage`).
* Apply **severity scoring** (e.g. bounding box area = High if > certain %).
* If model fails (no internet, missing weights):