|
| 1 | +# Requirements: Cheminformatics Microservice Frontend Overhaul |
| 2 | + |
| 3 | +**Defined:** 2026-03-12 |
| 4 | +**Core Value:** The frontend must feel noticeably modern, fast, and polished — while never breaking existing functionality. Zero security alerts, production-grade quality. |
| 5 | + |
| 6 | +## v1 Requirements |
| 7 | + |
| 8 | +Requirements for this milestone. Each maps to roadmap phases. |
| 9 | + |
| 10 | +### Build & Infrastructure |
| 11 | + |
| 12 | +- [x] **BUILD-01**: Frontend builds and runs on Vite instead of Create React App (react-scripts) |
| 13 | +- [x] **BUILD-02**: All dependabot security vulnerabilities are resolved (zero alerts) |
| 14 | +- [x] **BUILD-03**: All package.json overrides are eliminated (proper dependency upgrades) |
| 15 | +- [x] **BUILD-04**: All dependencies updated to latest stable versions |
| 16 | +- [x] **BUILD-05**: Docker frontend build (Dockerfile.frontend) works with Vite |
| 17 | +- [x] **BUILD-06**: Environment variables migrated from REACT_APP_* to VITE_* prefix |
| 18 | + |
| 19 | +### Framework Upgrades |
| 20 | + |
| 21 | +- [x] **FRAME-01**: React upgraded from 18.2 to 19.x (latest stable) |
| 22 | +- [x] **FRAME-02**: Tailwind CSS upgraded from v3.3 to v4.x with CSS-first config |
| 23 | +- [x] **FRAME-03**: TypeScript upgraded from 4.9.5 to 5.x (latest stable) |
| 24 | +- [x] **FRAME-04**: All Tailwind v3 class renames and breaking changes resolved |
| 25 | +- [x] **FRAME-05**: Framer Motion verified compatible with React 19 |
| 26 | + |
| 27 | +### Component System |
| 28 | + |
| 29 | +- [x] **COMP-01**: shadcn/ui installed and configured for Vite + Tailwind v4 |
| 30 | +- [x] **COMP-02**: Core buttons replaced with shadcn/ui Button component |
| 31 | +- [x] **COMP-03**: Cards and content containers replaced with shadcn/ui Card |
| 32 | +- [x] **COMP-04**: Modals and dialogs replaced with shadcn/ui Dialog/Sheet |
| 33 | +- [x] **COMP-05**: Form inputs replaced with shadcn/ui Input/Select/Textarea |
| 34 | +- [x] **COMP-06**: Icons migrated from react-icons to lucide-react |
| 35 | +- [x] **COMP-07**: Consistent component usage across all 9 pages |
| 36 | + |
| 37 | +### Theming & Dark Mode |
| 38 | + |
| 39 | +- [x] **THEME-01**: Dark mode toggle available in UI (header/nav) |
| 40 | +- [x] **THEME-02**: System preference auto-detection (prefers-color-scheme) |
| 41 | +- [x] **THEME-03**: Theme preference persisted in localStorage |
| 42 | +- [x] **THEME-04**: CSS variable-based theming using shadcn/ui approach |
| 43 | +- [x] **THEME-05**: All pages and components render correctly in both light and dark modes |
| 44 | + |
| 45 | +### Visual Design System |
| 46 | + |
| 47 | +- [x] **VISUAL-01**: Glassmorphism + liquid glass fusion aesthetic applied to cards, containers, and panels across all pages |
| 48 | +- [x] **VISUAL-02**: Glass-styled tabbed navigation for tool pages (tab-based UX with glassmorphism aesthetic, replacing the originally planned bento grid layouts per user preference) |
| 49 | +- [x] **VISUAL-03**: Animated molecule structure cards with hover shimmer, glow effects, and expand/collapse |
| 50 | +- [x] **VISUAL-04**: Resizable input/output panels with draggable divider on wide screens |
| 51 | +- [x] **VISUAL-05**: Result comparison mode for side-by-side molecule analysis |
| 52 | +- [x] **VISUAL-06**: Claymorphism accents blended with glass effects for depth and tactile feel |
| 53 | + |
| 54 | +### Loading & Feedback |
| 55 | + |
| 56 | +- [x] **LOAD-01**: Skeleton loading states replace full-page spinners during API calls |
| 57 | +- [x] **LOAD-02**: Toast notification system (Sonner) replaces alert() calls |
| 58 | +- [x] **LOAD-03**: Per-component error states with clear messages and retry actions |
| 59 | +- [x] **LOAD-04**: Loading indicators for individual API operations (not full-page) |
| 60 | + |
| 61 | +### Animations & Polish |
| 62 | + |
| 63 | +- [x] **ANIM-01**: Smooth page transitions when navigating between routes |
| 64 | +- [x] **ANIM-02**: Micro-interactions on buttons (press scale, hover glow/lift) |
| 65 | +- [x] **ANIM-03**: Focus ring animations on interactive elements |
| 66 | +- [x] **ANIM-04**: View transitions when switching tabs within tool pages |
| 67 | +- [x] **ANIM-05**: Staggered list animations for results and data displays |
| 68 | +- [x] **ANIM-06**: Layout animations on content state changes (expand/collapse, show/hide) |
| 69 | + |
| 70 | +### Power User Features |
| 71 | + |
| 72 | +- [x] **POWER-01**: Cmd+K / Ctrl+K command palette for quick tool navigation |
| 73 | +- [x] **POWER-02**: Inline molecule structure preview when entering SMILES strings |
| 74 | +- [x] **POWER-03**: Breadcrumb navigation showing current location in tool hierarchy |
| 75 | + |
| 76 | +### UX Improvements |
| 77 | + |
| 78 | +- [x] **UX-01**: Responsive layout works well on mobile and tablet viewports |
| 79 | +- [x] **UX-02**: Code splitting with React.lazy for route-level lazy loading |
| 80 | +- [x] **UX-03**: Improved navigation structure and visual wayfinding |
| 81 | +- [x] **UX-04**: Faster initial page load (measurable improvement via Lighthouse) |
| 82 | + |
| 83 | +## v2 Requirements |
| 84 | + |
| 85 | +Deferred to future release. Tracked but not in current roadmap. |
| 86 | + |
| 87 | +### Advanced Features |
| 88 | + |
| 89 | +- **ADV-01**: Interactive 3D molecule viewer (3Dmol.js or similar) |
| 90 | +- **ADV-02**: Result comparison mode (side-by-side molecule comparison) |
| 91 | +- **ADV-03**: Persistent workspace (save and resume sessions) |
| 92 | +- **ADV-04**: Export results to PDF/CSV |
| 93 | +- **ADV-05**: Keyboard shortcuts for common operations beyond Cmd+K |
| 94 | + |
| 95 | +## Out of Scope |
| 96 | + |
| 97 | +| Feature | Reason | |
| 98 | +|---------|--------| |
| 99 | +| Backend API changes | This is frontend-only; backend is stable | |
| 100 | +| New API endpoints | Not adding new backend functionality | |
| 101 | +| Mobile native app | Web-first, responsive is sufficient for now | |
| 102 | +| Complete visual rebrand | Evolving current design, not replacing it | |
| 103 | +| Real-time collaboration | Complexity too high for this milestone | |
| 104 | +| User accounts/auth | Not part of current architecture | |
| 105 | +| Internationalization (i18n) | Not requested, can add later | |
| 106 | + |
| 107 | +## Traceability |
| 108 | + |
| 109 | +Which phases cover which requirements. Updated during roadmap creation. |
| 110 | + |
| 111 | +| Requirement | Phase | Status | |
| 112 | +|-------------|-------|--------| |
| 113 | +| BUILD-01 | Phase 1 | Complete | |
| 114 | +| BUILD-02 | Phase 1 | Complete | |
| 115 | +| BUILD-03 | Phase 1 | Complete | |
| 116 | +| BUILD-04 | Phase 1 | Complete | |
| 117 | +| BUILD-05 | Phase 1 | Complete | |
| 118 | +| BUILD-06 | Phase 1 | Complete | |
| 119 | +| FRAME-01 | Phase 2 | Complete | |
| 120 | +| FRAME-02 | Phase 3 | Complete | |
| 121 | +| FRAME-03 | Phase 2 | Complete | |
| 122 | +| FRAME-04 | Phase 3 | Complete | |
| 123 | +| FRAME-05 | Phase 2 | Complete | |
| 124 | +| COMP-01 | Phase 4 | Complete | |
| 125 | +| COMP-02 | Phase 4 | Complete | |
| 126 | +| COMP-03 | Phase 4 | Complete | |
| 127 | +| COMP-04 | Phase 4 | Complete | |
| 128 | +| COMP-05 | Phase 4 | Complete | |
| 129 | +| COMP-06 | Phase 4 | Complete | |
| 130 | +| COMP-07 | Phase 4 | Complete | |
| 131 | +| THEME-01 | Phase 4 | Complete | |
| 132 | +| THEME-02 | Phase 4 | Complete | |
| 133 | +| THEME-03 | Phase 4 | Complete | |
| 134 | +| THEME-04 | Phase 4 | Complete | |
| 135 | +| THEME-05 | Phase 4 | Complete | |
| 136 | +| VISUAL-01 | Phase 4.1 | Complete | |
| 137 | +| VISUAL-02 | Phase 4.1 | Complete | |
| 138 | +| VISUAL-03 | Phase 4.1 | Complete | |
| 139 | +| VISUAL-04 | Phase 4.1 | Complete | |
| 140 | +| VISUAL-05 | Phase 4.1 | Complete | |
| 141 | +| VISUAL-06 | Phase 4.1 | Complete | |
| 142 | +| LOAD-01 | Phase 5 | Complete | |
| 143 | +| LOAD-02 | Phase 5 | Complete | |
| 144 | +| LOAD-03 | Phase 5 | Complete | |
| 145 | +| LOAD-04 | Phase 5 | Complete | |
| 146 | +| ANIM-01 | Phase 6 | Complete | |
| 147 | +| ANIM-02 | Phase 6 | Complete | |
| 148 | +| ANIM-03 | Phase 6 | Complete | |
| 149 | +| ANIM-04 | Phase 6 | Complete | |
| 150 | +| ANIM-05 | Phase 6 | Complete | |
| 151 | +| ANIM-06 | Phase 6 | Complete | |
| 152 | +| POWER-01 | Phase 6 | Complete | |
| 153 | +| POWER-02 | Phase 6 | Complete | |
| 154 | +| POWER-03 | Phase 6 | Complete | |
| 155 | +| UX-01 | Phase 5 | Complete | |
| 156 | +| UX-02 | Phase 5 | Complete | |
| 157 | +| UX-03 | Phase 5 | Complete | |
| 158 | +| UX-04 | Phase 5 | Complete | |
| 159 | + |
| 160 | +**Coverage:** |
| 161 | +- v1 requirements: 46 total |
| 162 | +- Mapped to phases: 46 |
| 163 | +- Unmapped: 0 |
| 164 | + |
| 165 | +--- |
| 166 | +*Requirements defined: 2026-03-12* |
| 167 | +*Last updated: 2026-03-12 after roadmap creation* |
0 commit comments