Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
f384b9b
feat: add KuntotarkastusAI – AI-powered building inspection app
claude Mar 9, 2026
5aa9dce
Add .idea project files and device configs
WebWelho Mar 9, 2026
9423a9e
UX: sovellus toimii tarkastajan välineenä, ei oppaana
claude Mar 9, 2026
ba56deb
Kattava kuntotarkastusstandardin toteutus: riskirakenteet, historia, …
claude Mar 9, 2026
8d2fefb
feat: AI hoitaa lähes 100% työstä – automaattinen havaintojen käsitte…
claude Mar 14, 2026
3fc2b4c
feat: PWA-mobiilisovellus – asennettavissa puhelimeen, offline-tuki j…
claude Mar 14, 2026
50acc05
chore: add favicon placeholder
claude Mar 14, 2026
8d6b499
feat: oppiva AI-kerros, autentikaatio ja Android-julkaisu
claude Mar 14, 2026
c87b321
feat: Expo React Native -mobiilisovellus – Expo Go -yhteensopiva
claude Mar 14, 2026
4eb0460
fix: korjaa npm-riippuvuusristiriidat mobile-projektissa
claude Mar 14, 2026
d4f39b4
fix: päivitä Expo SDK 54 (React 19.1 + RN 0.81)
claude Mar 14, 2026
825a8e8
fix: lisää offline-kirjautuminen testitunnuksilla
claude Mar 14, 2026
2d8d02c
fix: korjaa pakettiversiot SDK 54 ja kiertoriippuvuus
claude Mar 14, 2026
e5364f0
fix: lisää in-memory fallback AsyncStoragelle kirjautumisessa
claude Mar 14, 2026
707d0f2
fix: poista require cycle siirtämällä token-hallinta authStorage.ts:ään
claude Mar 14, 2026
fb22aa2
fix: poista turha getToken re-export authServicestä
claude Mar 15, 2026
6584ae4
fix: korvaa uuid-kirjasto Math.random()-pohjaisella generaattorilla
claude Mar 15, 2026
b3707d8
chore: lisää EAS Build -konfiguraatio
claude Mar 15, 2026
066f198
feat: valmistele EAS Update -jakelu pilottitestaajille
claude Mar 15, 2026
7957f30
feat: lisää valokuvaus- ja sanelutuki havaintoihin
claude Mar 15, 2026
4a5b36f
feat: lisää sanelun tauko-toiminto ja AI-muotoiluvalinta
claude Mar 15, 2026
f410317
feat: lisää Tallenna ja Vie PDF -napit Yhteenveto-sivulle
claude Mar 15, 2026
9acf261
feat: jaettava API Expo Go -testaukseen iOS & Android
claude Mar 15, 2026
9254cb5
fix: lisää puuttuva assets/images-kansio
claude Mar 15, 2026
e9f7f19
feat: lisää 7 viimeistelyominaisuutta kuntotarkastussovellukseen
claude Mar 15, 2026
b8311ec
Revert "feat: lisää 7 viimeistelyominaisuutta kuntotarkastussovelluks…
claude Mar 15, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1,490 changes: 1,490 additions & 0 deletions .idea/caches/deviceStreaming.xml

Large diffs are not rendered by default.

13 changes: 13 additions & 0 deletions .idea/deviceManager.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions .idea/markdown.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

49 changes: 49 additions & 0 deletions .idea/workspace.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

16 changes: 16 additions & 0 deletions building-inspection-app/.env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# ─────────────────────────────────────────────────────────
# Building Inspection AI — Environment Configuration
# ─────────────────────────────────────────────────────────
# Copy this file to .env and fill in your values:
# cp .env.example backend/.env

# ── Anthropic API (required) ──────────────────────────────
# Get your API key from: https://console.anthropic.com/
ANTHROPIC_API_KEY=your_anthropic_api_key_here

# ── Server configuration ──────────────────────────────────
PORT=3001
NODE_ENV=development

# ── Frontend URL (for CORS) ───────────────────────────────
FRONTEND_URL=http://localhost:5173
26 changes: 26 additions & 0 deletions building-inspection-app/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Environment files (NEVER commit these)
.env
backend/.env
*.env.local

# Dependencies
node_modules/
backend/node_modules/
frontend/node_modules/

# Build output
backend/dist/
frontend/dist/

# Logs
*.log
npm-debug.log*

# Editor
.DS_Store
.vscode/
*.swp
*.swo

# TypeScript
*.tsbuildinfo
40 changes: 40 additions & 0 deletions building-inspection-app/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
FROM node:20-alpine AS builder

WORKDIR /app

# Install root dependencies
COPY package.json package-lock.json* ./
RUN npm install

# Install and build frontend
COPY frontend/package.json frontend/package-lock.json* ./frontend/
RUN cd frontend && npm install

COPY frontend/ ./frontend/
RUN cd frontend && npm run build

# Install and build backend
COPY backend/package.json backend/package-lock.json* ./backend/
RUN cd backend && npm install

COPY backend/ ./backend/
RUN cd backend && npm run build

# Production stage
FROM node:20-alpine

WORKDIR /app

COPY backend/package.json backend/package-lock.json* ./backend/
RUN cd backend && npm install --production

COPY --from=builder /app/backend/dist ./backend/dist
COPY --from=builder /app/frontend/dist ./frontend/dist
COPY capacitor.config.ts ./

ENV NODE_ENV=production
ENV PORT=3001

EXPOSE 3001

CMD ["node", "backend/dist/server.js"]
163 changes: 163 additions & 0 deletions building-inspection-app/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,163 @@
# KuntotarkastusAI 🏗️

> Tekoälypohjainen kuntotarkastusjärjestelmä ammattilaisille

Täysin toimiva web-sovellus rakennusten kuntotarkastusraporttien laadintaan tekoälyavusteisesti. Suunniteltu suomalaisille rakennustarkastajille.

---

## Ominaisuudet

### Tekoälyominaisuudet (Claude Opus 4.6)
- **Automaattinen puhtaaksikirjoitus** — Muuttaa puhutut tai lyhyet muistiinpanot ammattimaiseksi suomen kieleksi
- **Teoriatiedon lisäys** — Lisää automaattisesti havaintoon rakennusteknisen taustan ja rakennusmääräysviittaukset (RT-kortit, RakMK)
- **Automaattiset kuvatekstit** — Claude Vision tunnistaa kuvasta vaurion/rakenteen ja kirjoittaa kuvatekstin
- **Havaintoyhteenveto** — Tekoäly luo taulukon havainnoista kiireellisyyden mukaan järjestettynä
- **Loppuyhteenveto** — Ammattimainen kuntoluokituksen sisältävä loppuyhteenveto

### Tiedonkeruu kentällä
- **Sanelu** — Web Speech API, suomen kielen tuki (fi-FI)
- **Kameraintegraatio** — Kuvien ottaminen suoraan sovelluksella kategorian kohdalla
- **Automaattinen sijoittelu** — Kuvat sijoittuvat oikean kategorian alle automaattisesti

### Raportointi
- **14 tarkastuskategoriaa** — Kattaa kaikki rakenneosat perustuksista piha-alueeseen
- **Kiireellisyysluokitus** — Välitön / 1–2v / 3–5v / Seurattava / Ei toimenpiteitä
- **PDF-vienti** — Ammattimainen PDF-raportti kuvilla ja teoriaosuuksilla
- **Automaattinen tallennus** — Kaikki muutokset tallentuvat selaimen localStorageen

---

## Arkkitehtuuri

```
building-inspection-app/
├── backend/ # Express.js + TypeScript API
│ └── src/
│ ├── server.ts
│ ├── routes/ai.ts
│ └── services/claudeService.ts
└── frontend/ # React + TypeScript + Tailwind CSS
└── src/
├── components/
│ ├── Dashboard/ # Raporttilistaus
│ ├── Inspection/ # Sanelu, kamera, havaintokortit
│ ├── Report/ # Lomakkeet, yhteenvedot
│ ├── Layout/ # Navigaatio
│ └── UI/ # Yhteiset komponentit
├── pages/ # Sivukomponentit
├── hooks/ # useVoiceRecorder, useReport
├── services/ # API-kutsut, localStorage
├── types/ # TypeScript-tyypit
└── utils/ # PDF-generaattori
```

**Tech stack:**
- **Frontend:** React 18 + TypeScript + Vite + Tailwind CSS
- **Backend:** Express.js + TypeScript
- **AI:** Claude Opus 4.6 (Anthropic SDK) — adaptive thinking + streaming
- **Speech:** Web Speech API (browser-native, fi-FI)
- **PDF:** jsPDF
- **Storage:** localStorage (no database needed)

---

## Asennus ja käynnistys

### Esiehdot
- Node.js 18+
- Anthropic API-avain ([console.anthropic.com](https://console.anthropic.com/))

### 1. Kloonaa ja asenna

```bash
cd building-inspection-app

# Asenna riippuvuudet
npm run install:all
```

### 2. Konfiguroi ympäristö

```bash
# Kopioi esimerkki
cp .env.example backend/.env

# Muokkaa API-avain
nano backend/.env
# Aseta: ANTHROPIC_API_KEY=sk-ant-...
```

### 3. Käynnistä kehityspalvelin

```bash
# Käynnistää sekä backendin (portti 3001) että frontendin (portti 5173)
npm run dev
```

Avaa selain osoitteeseen [http://localhost:5173](http://localhost:5173)

---

## API-endpointit

| Method | Endpoint | Kuvaus |
|--------|----------|--------|
| POST | `/api/ai/transcribe` | Puhtaaksikirjoitus (raakahavainto → ammattimainen teksti) |
| POST | `/api/ai/add-theory` | Lisää tekninen teoria havaintoon |
| POST | `/api/ai/photo-caption` | Generoi kuvateksti (Claude Vision) |
| POST | `/api/ai/findings-summary` | Luo havaintotaulukko |
| POST | `/api/ai/final-summary` | Luo loppuyhteenveto |
| POST | `/api/ai/process-observation-stream` | Streamattu havaintojen käsittely (SSE) |

---

## Käyttöohjeet

1. **Luo uusi tarkastus** kojelaudalta
2. **Täytä kohdetiedot** — osoite, tarkastuspäivä, tilaajan tiedot
3. **Kirjaa havainnot** — kirjoita tai diktoi jokaisen kategorian kohdalla
4. **Lisää valokuvia** — kamera tai tiedostosta, AI generoi kuvatekstin
5. **Käsittele tekoälyllä** — "Käsittele tekoälyllä" -nappi professionalisation + teoriaviittaukset
6. **Luo yhteenvedot** — Yhteenveto & AI -välilehdessä
7. **Vie PDF** — ammattimainen raportti yhdellä klikkauksella

---

## Tuetut tarkastuskategoriat

1. Perustukset ja maanvastainen rakenne
2. Alapohja
3. Ulkoseinät ja julkisivu
4. Ikkunat ja ulko-ovet
5. Vesikatto ja yläpohja
6. Märkätilat
7. Keittiö
8. Muut sisätilat
9. Lämmitysjärjestelmä
10. Vesi- ja viemärijärjestelmä
11. Sähköjärjestelmä
12. Ilmanvaihto
13. Piha ja ympäristö

---

## Tuotantokäyttöönotto

```bash
# Build
npm run build

# Backend (esim. Railway, Render, Fly.io)
# Aseta ympäristömuuttuja: ANTHROPIC_API_KEY

# Frontend (esim. Vercel, Netlify)
# Rakennekansio: frontend/dist
# Aseta API-proxy tai erillinen backend URL
```

---

## Lisenssi

MIT — Vapaa käyttää ja muokata
Loading