Skip to content
Andrzej Kojder edited this page Nov 10, 2025 · 3 revisions

Welcome to Photo Map MVP Wiki

Photo Map MVP is a full-stack application for managing photos with geolocation. Built with Angular 18, Spring Boot 3, and PostgreSQL.

Build Status

Backend: Quality Gate Status Coverage

Frontend: Quality Gate Status Coverage


🧭 Quick Navigation

πŸ‘€ For End Users

Page Description
User Guide How to use the application - registration, gallery, map, filters, rating, admin panel

πŸ’» For Developers

Page Description
Quick Start Get started in 5 minutes - prerequisites, setup, first login
Development Setup Detailed setup guide - environment, project structure, daily workflow, conventions
Architecture Tech stack, frontend/backend architecture, database schema, design decisions
API Documentation REST API reference - Swagger UI, endpoints, DTOs, authentication flow
Testing & Quality Local testing, CI/CD pipeline, writing tests, coverage requirements
Scripts Reference Development scripts - start/stop, testing, rebuild, hooks
Deployment Docker Compose, Mikrus VPS, build & deploy, SSL, troubleshooting

πŸ€– For AI-Assisted Development

Page Description
AI Development Methodology Claude Code, GitHub Copilot, Gemini CLI, prompt engineering, code conventions, git workflow

πŸš€ Getting Started Path

New to the project? Follow this path:

  1. Quick Start - Get the app running in 5 minutes
  2. Scripts Reference - Essential development scripts (reset-data.sh, start-dev.sh, run-all-tests.sh)
  3. Development Setup - Detailed environment setup and project structure
  4. Architecture - Understand the tech stack and design decisions
  5. API Documentation - Explore the REST API with Swagger UI
  6. Testing & Quality - Learn about testing strategy and CI/CD

πŸ”— Quick Links

Project:

Dashboards:

Documentation:


πŸ“Š Project Status

Status: βœ… Core MVP Complete (100%)

Implemented Features:

  • βœ… Authentication - JWT tokens, BCrypt password hashing, role-based access control
  • βœ… Photo Upload & Processing - Automatic EXIF extraction (GPS, date), thumbnail generation
  • βœ… Gallery View - Responsive grid with filters, rating, fullscreen photo viewer
  • βœ… Map View - Interactive Leaflet.js map with GPS markers and markercluster plugin
  • βœ… Rating System - Rate photos 1-5 stars, view overall average and personal ratings
  • βœ… Admin Panel - User management, permissions, photo oversight
  • βœ… Photo Viewer - Fullscreen browsing with keyboard navigation and mobile touch support
  • βœ… CI/CD Pipeline - GitHub Actions with build, test, and SonarCloud analysis
  • βœ… E2E Tests - Playwright tests (6 specs, 15+ test cases)
  • βœ… Deployment - Docker Compose deployment to Mikrus VPS with Nginx reverse proxy

Test Coverage:

  • Frontend Unit Tests: 199 tests (Karma + Jasmine)
  • Backend Unit Tests: 78 tests (JUnit 5 + Mockito)
  • E2E Tests: 6 specs, 15+ test cases (Playwright)
  • Coverage: Backend >50%, Frontend >50%

Planned Features:

  • πŸ“‹ Email System - Email verification, password reset, notifications
  • πŸ“‹ User Deactivation & Orphaned Photos Cleanup - Soft delete users, manage orphaned photos
  • πŸ“‹ Public Photo Sharing - Share photos via UUID links without authentication
  • πŸ“‹ Temporal & Spatial Filters - "Same month in other years", "Same location"
  • πŸ“‹ Gallery Photo Card Optimization - Focus on photos, overlay controls
  • πŸ“‹ NAS Batch Processing - Bulk photo import from NAS with local thumbnails only

For detailed feature specifications, see .ai/features/ directory in the repository.


πŸ› οΈ Tech Stack Summary

Frontend:

  • Angular 18.2.0 (standalone components, Signals)
  • TypeScript 5.5.2+ (strict mode)
  • Tailwind CSS 3.4.17
  • Leaflet.js 1.9.4 (interactive maps)
  • RxJS 7.8.0 (BehaviorSubject pattern)

Backend:

  • Spring Boot 3.2.11 (Java 17 LTS)
  • PostgreSQL 15
  • Spring Security 6 (JWT authentication)
  • metadata-extractor 2.19.0 (EXIF extraction)
  • Thumbnailator 0.4.20 (thumbnail generation)

Testing:

  • Frontend: Karma + Jasmine
  • Backend: JUnit 5 + Mockito
  • E2E: Playwright
  • CI/CD: GitHub Actions + SonarCloud

Deployment:

  • Docker Compose
  • Nginx (reverse proxy)
  • PostgreSQL (shared Mikrus service)
  • Mikrus VPS (4GB RAM)

For complete tech stack details, see Architecture.


πŸ’‘ Need Help?


Last Updated: 2025-11-10

Sources:

  • README.md (Project overview, badges, features, tech stack)
  • PROGRESS_TRACKER.md (Project status, roadmap)

Clone this wiki locally