blob: d360b8e45cd3687505e1cd5dc4c9072d12d079aa (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
# FCTDrive Frontend Development
## Project Overview
- Simple Google Drive style application
- Next.js frontend with TypeScript and TailwindCSS
- CLI tool (`fctdrive`) handles all drive logic - NOT my responsibility
## Important Constraints
- **DO NOT** create new drive functions in drive.ts
- **DO NOT** attempt hacks or workarounds with the CLI tool
- If I encounter problems with the CLI tool: STOP, report problem, wait for fix
## Available Commands
- `just build` - Build the CLI tool
- `just dev` - Start development servers (uses demon to run background processes)
- `just stop` - Stop development servers
- `just logs` - View logs
- `just deploy-frontend` - Deploy frontend to production
- `fctdrive` - CLI tool is available in PATH
## Current Implementation
- Frontend directory: `frontend/` (note: frontend code is in frontend/ directory)
- Drive functions: `frontend/lib/drive_server.ts`
- `Drive_ls(path, recursive)` - Lists files/directories
- `Drive_blob_path(blob)` - Gets filesystem path for a blob ID
- Current page shows v0 generated UI with mockData but has /api/list endpoint available
## Tech Stack
- Next.js 15.4.6 with App Router
- React 19.1.0
- TypeScript 5
- TailwindCSS 4
- Geist fonts
## Development Workflow
1. Use `just dev` to start servers
2. Frontend runs on localhost:3000
3. Make changes, auto-reload enabled
4. Use `just stop` to stop servers
## Requirements Summary
- **UI**: Clean, simple, information-dense table for files/directories
- **Scope**: Only file browsing for now (no upload/auth)
- **File Handling**: All file types supported, clicking downloads file
- **Error Handling**: Crash on CLI errors (for now)
- **Mobile**: Must be mobile-friendly
- **Architecture**: Server-side rendering, modular reusable components
- **Updates**: Manual refresh only (no real-time)
- the server is running at `127.0.0.1:3000` and you can use curl to test the page
## HTTP Testing
- For testing authenticated endpoints in development, use header `AUTH: 1`
|