From f4b30c0fafeb79a05a9c1e113fa28c8466a77195 Mon Sep 17 00:00:00 2001 From: chop Date: Thu, 2 Oct 2025 19:35:31 +0200 Subject: [PATCH] feat: Update README.md with authentication, user management, and audit logging details --- README.md | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 51 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index b6c2ba4..94b67e6 100644 --- a/README.md +++ b/README.md @@ -32,13 +32,37 @@ A comprehensive project management system built with Next.js for managing constr - Task completion tracking - Quick access to pending items +### 🔐 Authentication & Authorization + +- Complete user authentication system with NextAuth.js +- Role-based access control (Admin, User, Guest roles) +- Secure session management +- Password-based authentication +- User registration and management + +### 👥 User Management + +- Admin interface for user administration +- Create, edit, and delete user accounts +- Role assignment and permission management +- User activity monitoring + +### 📋 Audit Logging + +- Comprehensive logging of all user actions +- Security event tracking +- System activity monitoring +- Audit trail for compliance and debugging + ## Tech Stack - **Framework**: Next.js 15.1.8 - **Database**: SQLite with better-sqlite3 +- **Authentication**: NextAuth.js - **Styling**: Tailwind CSS - **Date Handling**: date-fns - **Frontend**: React 19 +- **Mapping**: Leaflet with React-Leaflet - **Container**: Docker & Docker Compose ## Getting Started @@ -95,6 +119,16 @@ docker-compose up The application uses SQLite database which will be automatically initialized on first run. The database file is located at `data/database.sqlite`. +### Admin Setup + +To create an initial admin user: + +```bash +npm run create-admin +``` + +This will create an admin user account. Access the admin panel at `/admin/users` to manage users and roles. + ## Project Structure ``` @@ -219,12 +253,25 @@ The application uses the following main tables: ## Advanced Map Features -This project includes a powerful map system for project locations, supporting multiple dynamic base layers: +This project includes a powerful map system for project locations, supporting multiple dynamic base layers and transparent overlays: +### Base Layers (8 total) - **OpenStreetMap** (default street map) -- **Polish Geoportal Orthophoto** (aerial imagery via WMTS) -- **Polish Land Records** (WMS cadastral data) -- **Satellite (Esri)** and **Topographic** layers +- **🇵🇱 Polish Orthophoto (Standard Resolution)** - WMTS aerial imagery +- **🇵🇱 Polish Orthophoto (High Resolution)** - WMTS high-res aerial imagery +- **🌍 Google Satellite** - Global satellite imagery +- **🌍 Google Hybrid** - Satellite imagery with road overlays +- **🌍 Google Roads** - Google Maps road view +- **Satellite (Esri)** - Alternative satellite imagery +- **Topographic** - CartoDB topographic maps + +### Overlay Layers (6 total with transparency) +- **📋 Polish Cadastral Data** (WMS, property boundaries - 80% opacity) +- **🏗️ Polish Spatial Planning** (WMS, zoning data - 70% opacity) +- **🛣️ LP-Portal Roads** (WMS, road network - 90% opacity) +- **🏷️ LP-Portal Street Names** (WMS, street labels - 100% opacity) +- **📐 LP-Portal Parcels** (WMS, property parcels - 60% opacity) +- **📍 LP-Portal Survey Markers** (WMS, survey points - 80% opacity) Users can switch layers using the map control (📚 icon). WMTS/WMS layers are configured dynamically using OGC GetCapabilities, making it easy to add new sources. See [`docs/MAP_LAYERS.md`](docs/MAP_LAYERS.md) for details on adding and configuring map layers.