Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

214 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HelloLocal 🗺️

Modern, többnyelvű helyi turisztikai platformvezető rendszer eseménykezeléssel és térkép integrációval.

Version License TypeScript

🌟 Főbb Funkciók

Tartalom Kezelés

  • Többnyelvű támogatás (Magyar, Angol, Német)
  • Helyek (Places) kezelése - Kategóriák, címkék, ár sávok
  • Események (Events) - Időzített események, pinned funkció
  • Rich Text Editor - TipTap alapú WYSIWYG szerkesztő
  • SEO optimalizáció - Dinamikus meta tagek, slugok

Felhasználói Felület

  • Interaktív térkép - MapLibre GL alapú
  • Drag-and-drop szűrők - Pozíció megőrzéssel
  • Események lista - Real-time frissítések
  • Reszponzív design - Mobil-optimalizált
  • Modern UI - Inter font, gradiensek, árnyékok

Admin Funkciók

  • Role-based hozzáférés (superadmin, admin, editor, viewer)
  • 2FA autentikáció - TOTP alapú
  • Többbérlős (Multi-site) rendszer - Site Architecture dokumentáció
  • Automatikus slug generálás
  • Push értesítések - Web Push API

Technikai Jellemzők

  • SSR-ready - SEO meta tagek server-side
  • PWA támogatás - Service Worker
  • Real-time - React Query cache invalidation
  • I18n - react-i18next
  • Type-safe - 100% TypeScript

🏗️ Technológiai Stack

Frontend

  • React 19 - UI framework
  • Vite 7 - Build tool
  • TypeScript 5.9 - Type safety
  • React Router 7 - Routing
  • TanStack Query 5 - Server state management
  • MapLibre GL - Maps
  • TipTap - Rich text editor
  • i18next - Internationalization

Backend

  • NestJS 11 - Backend framework
  • Prisma 7 - ORM
  • PostgreSQL - Database
  • Passport JWT - Authentication
  • Web Push - Notifications
  • Node.js 18+ - Runtime

📋 Előfeltételek

  • Node.js 18.x vagy újabb
  • pnpm 10.x (javasolt package manager)
  • PostgreSQL 14.x vagy újabb
  • Git

🚀 Telepítés

1. Repository klónozása

git clone <repository-url>
cd hellolocal

2. Függőségek telepítése

pnpm install

3. Környezeti változók beállítása

Hozd létre a .env fájlokat:

Backend (apps/api/.env):

# Database
DATABASE_URL="postgresql://user:password@localhost:5432/hellolocal"

# JWT
JWT_SECRET="your-super-secret-jwt-key-change-this-in-production"
JWT_EXPIRES_IN="7d"

# Server
PORT=3002
FRONTEND_URL="http://localhost:5173"

# Web Push (opcionális)
VAPID_PUBLIC_KEY="your-vapid-public-key"
VAPID_PRIVATE_KEY="your-vapid-private-key"
VAPID_SUBJECT="mailto:your-email@example.com"

Frontend (apps/web/.env):

VITE_API_URL=http://localhost:3002
VITE_VAPID_PUBLIC_KEY=your-vapid-public-key

4. Adatbázis migrálás és seed

cd apps/api
pnpm db:reset

db:reset eldobja a helyi sémát, felteszi az egyetlen init migrációt, és betölti a demót. Meglévő sémán a tartalom újratöltése: pnpm db:seed. Csak a helyi 127.0.0.1 adatbázison.

5. Fejlesztői szerverek indítása

Három helyi mód (párhuzamosan is futhatnak, külön portokon):

# Helyi docker/dev DB (apps/api/.env) — web 5173, API 3002
pnpm local:dev

# Staging / beta DB (apps/api/.env.staging) — web 5174, API 3003
pnpm local:staging

# Éles adatok böngészése — web 5175, /api → https://api.hello-local.io (Vite proxy)
# Nincs helyi API production DATABASE_URL-lel. NE seed/migrate/truncate live ellen.
pnpm local:live

Külön terminálokban továbbra is:

pnpm run dev:api   # 3002
pnpm run dev:web   # 5173

Ha http://localhost:5173/hu/etyek-budai üres: a helyi adatbázisban nincs régió. Csak a helyi (127.0.0.1) adatbázison: pnpm -C apps/api db:seed. Staging, live és production URL ellen soha ne futtass seedet vagy resetet.

📦 Production Build

Backend

cd apps/api
pnpm run build
pnpm start

Frontend

cd apps/web
pnpm run build
pnpm preview  # Production preview

🐳 Docker Deployment

Docker Compose (legegyszerűbb)

docker-compose up -d

Ez elindítja:

  • PostgreSQL adatbázist
  • Backend API-t (port 3002)
  • Frontend-et (port 5173)

Egyedi Docker build

# Backend
docker build -f apps/api/Dockerfile -t hellolocal-api .
docker run -p 3002:3002 --env-file apps/api/.env hellolocal-api

# Frontend
docker build -f apps/web/Dockerfile -t hellolocal-web .
docker run -p 5173:5173 hellolocal-web

☁️ Cloud Deployment

Live production: Hetzner VPS (hello-local.io) via GitHub Actions SSH deploy — see .github/workflows/deploy.yml and deploy/.

Push to main / devel triggers production/devel stacks; staging uses deploy-beta.yml for beta.

Render.com is retired in this repo (render.yaml removed). Historical notes: docs/deployment-render.md (deprecated). Delete leftover Render services in the dashboard manually.

Alternatívák (nem az éles stack)

Platform Ár Előnyök Hátrányok
Railway.app $5/hó után ingyenes Egyszerű, gyors Ingyenes limit kicsi
Fly.io $0-5/hó Global edge, Docker Bonyolultabb config
Vercel (Frontend) Ingyenes Nagyon gyors, CDN Csak frontend
Heroku $7/hó Megbízható Nincs ingyenes tier
VPS (egyéb) €4-5/hó Teljes kontroll Több setup munka

🔐 Alapértelmezett admin

A seed és az üres adatbázis indulása a super@example.com superadmin fiókot tölti be (admin felhasználónév), és ha még nincs régió, az Etyek–Budai mintaadatot is: település, helyek, események, szövegek és fordítások. A jelszó a snapshotban tárolt hash. Meglévő régiót és superadmin jelszót nem ír felül.

📚 Dokumentáció

🧪 Tesztelés

# Unit tesztek (TODO)
pnpm test

# E2E tesztek (TODO)
pnpm test:e2e

🛠️ Karbantartás

Slug generálás meglévő helyekhez

curl -X POST http://localhost:3002/api/admin/maintenance/generate-missing-slugs \
  -H "Authorization: Bearer YOUR_JWT_TOKEN"

Adatbázis backup

pg_dump -h localhost -U user -d hellolocal > backup.sql

Log monitoring

Production környezetben nézd a Hetzner szerveren a Docker Compose logokat (docker compose logs), vagy a GitHub Actions Deploy workflow futásait.

🤝 Közreműködés

  1. Fork-old a projektet
  2. Hozz létre egy feature branch-et (git checkout -b feature/amazing-feature)
  3. Commit-old a változásokat (git commit -m 'feat: Add amazing feature')
  4. Push-old a branch-et (git push origin feature/amazing-feature)
  5. Nyiss egy Pull Request-et

📄 Licenc

Proprietary License - All Rights Reserved. Lásd LICENSE fájlt

🐛 Ismert Problémák

Lásd a GitHub Issues oldalt.

💬 Támogatás

🎉 Köszönetnyilvánítás


HelloLocal - Készítve ❤️ -vel

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages