a2n-seattle / a2n-seattle/rms-app
Web redesign Phase 3/8: Dashboard page (Currently Borrowed / Owned / Scheduled / History + alerts)
- Linguagem predominante
- TypeScript
- Estrelas
- 1
- Forks
- 1
- Merge médio
- 27min
- PRs com merge (30d)
- 4
Descrição
# Why?
**As a** user of rms-app's web frontend
**I want** a single dashboard showing what I currently have borrowed, what I own, what's scheduled, my history, and alerts for overdue items or unclaimed reservations
**So that** I don't have to hunt across separate pages to know my current status, matching the "User" tab in our internal Retool RMS app.
# What?
Phase 3 of an 8-phase redesign of `web/` modeled after our internal Retool RMS app (`https://a2nseattle.retool.com/p/rms-alpha/main`). Depends on Phase 2's backend routes being merged and deployed.
Scope:
- New `/dashboard` page (or repurpose `/browse` as the landing page — decide during implementation) with tabs: **Currently Borrowed / Owned Items / Scheduled / History**, consuming Phase 2's `ListMyBorrowedItems`/`ListMyOwnedItems`/`ListUpcomingReservations` plus the existing `listReservations` wrapper.
- Alert banners for:
- **Overdue items** (from Phase 2's `ListOverdueItems`).
- **Reservations that haven't been picked up yet** (from `ListUpcomingReservations`), each offering inline **Borrow** (new web wrapper around the existing `BorrowFromSchedule` backend API — `ts-code/src/api/BorrowFromSchedule.ts` already exists, just has no `web/lib/api/*` wrapper yet) or **Cancel** (existing `DeleteReservation` — add a web wrapper if one doesn't already exist).
- User detail fields (email/name) are **read-only** here — no new self-service editing beyond what already exists on `/profile` (GH-306 PR 4/4).
- New `web/lib/api/*` wrappers + types for anything not yet exposed to `web/`, new Server Actions for the Borrow/Cancel alert actions, new Playwright spec covering the alert-action flows.
# Testing
Per this repo's testing policy: Jest/RTL for new components, Playwright e2e for the new dashboard flow and the alert Borrow/Cancel actions.
# Additional context
Part of an 8-phase `web/` redesign series (#333 Phase 1, #334 Phase 2). Phases 4 (basket-style borrow/reserve), 6 (room reservations), 7 (batched return), and 8 (extend reservation) extend this dashboard's Scheduled/History views once built.
Guia de contribuição
Nenhum guia de contribuição indexado para este repositório
Direção de pesquisa
Start by reviewing Phase 2's merged backend routes (`ListMyBorrowedItems`, `ListMyOwnedItems`, `ListUpcomingReservations`, `ListOverdueItems`). Examine the existing `web/lib/api/` wrappers and `ts-code/src/api/` for `BorrowFromSchedule` and `DeleteReservation`. The new `/dashboard` page (or repurposed `/browse`) will need new Server Actions for Borrow/Cancel. Write Jest/RTL tests for new components and a Playwright spec for the dashboard flow and alert actions.
Escrita pelo modelo de indexação a partir do texto da issue.
Avaliação
- Stack de tecnologia
- next.js, react, typescript
- Domínio
- backend-api-design, frontend, full-stack
- Tipo de issue
- Funcionalidade
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Status de atividade
- Pouca atividade
- Clareza
- Razoavelmente clara
- Facilidade para iniciantes
- 45/100