tanyar09 52344febad feat: Enhance tag management in TagSelectedPhotosDialog with improved logic for removable tags
This commit updates the TagSelectedPhotosDialog to allow both single and bulk tags to be managed more effectively. The logic for determining removable tags has been refined, ensuring that users can see which tags are common across selected photos and whether they can be removed. Additionally, the photo date extraction method in PhotoManager has been improved to include a fallback to file modification time, enhancing reliability. The photo service now also utilizes this updated method for date extraction, ensuring consistency across the application. Documentation has been updated to reflect these changes.
2025-11-11 14:35:50 -05:00
..
2025-10-31 12:10:44 -04:00
2025-10-31 12:10:44 -04:00
2025-10-31 12:10:44 -04:00
2025-10-31 12:10:44 -04:00
2025-10-31 12:10:44 -04:00
2025-10-31 12:10:44 -04:00
2025-10-31 12:10:44 -04:00
2025-10-31 12:10:44 -04:00
2025-10-31 12:10:44 -04:00
2025-10-31 12:10:44 -04:00

PunimTag Frontend

React + Vite + TypeScript frontend for PunimTag.

Setup

cd frontend
npm install

Development

Start the dev server:

npm run dev

The frontend will run on http://localhost:3000

Make sure the backend API is running on http://127.0.0.1:8000

Default Login

  • Username: admin
  • Password: admin

Features (Phase 1)

  • Login page with JWT authentication
  • Protected routes with auth check
  • Navigation layout (left sidebar + top bar)
  • Dashboard page (placeholder)
  • Search page (placeholder)
  • Identify page (placeholder)
  • Auto-Match page (placeholder)
  • Tags page (placeholder)
  • Settings page (placeholder)

Project Structure

frontend/
├── src/
│   ├── api/          # API client and endpoints
│   ├── components/   # React components
│   ├── hooks/        # Custom React hooks
│   ├── pages/        # Page components
│   ├── App.tsx       # Main app component
│   ├── main.tsx      # Entry point
│   └── index.css     # Tailwind CSS
├── index.html
├── package.json
├── vite.config.ts
└── tailwind.config.js