punimtag/admin-frontend
tanyar09 afaacf7403
All checks were successful
CI / skip-ci-check (pull_request) Successful in 1m51s
CI / lint-and-type-check (pull_request) Successful in 2m29s
CI / python-lint (pull_request) Successful in 2m15s
CI / test-backend (pull_request) Successful in 4m10s
CI / build (pull_request) Successful in 4m56s
CI / secret-scanning (pull_request) Successful in 1m58s
CI / dependency-scan (pull_request) Successful in 1m57s
CI / sast-scan (pull_request) Successful in 3m3s
CI / workflow-summary (pull_request) Successful in 1m49s
feat: Enhance photo handling in admin frontend
- Added a new API method to fetch photo images as blobs, enabling direct image retrieval.
- Updated image source paths in multiple components to use the base URL from the API client for consistency.
- Implemented cleanup for blob URLs in the ReportedPhotos component to prevent memory leaks.
- Improved user experience by displaying loading states for images in the ReportedPhotos component.

These changes improve the efficiency and reliability of photo handling in the admin interface.
2026-01-22 18:33:44 +00: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