Skip to content

Develop jeison tamara#2

Open
iaprogrammerjtb4 wants to merge 19 commits intoRed-Valley:mainfrom
iaprogrammerjtb4:develop-jeison-tamara
Open

Develop jeison tamara#2
iaprogrammerjtb4 wants to merge 19 commits intoRed-Valley:mainfrom
iaprogrammerjtb4:develop-jeison-tamara

Conversation

@iaprogrammerjtb4
Copy link
Copy Markdown

No description provided.

- Document requirements vs implementation in README; submission and AI notes
- PATCH /api/tasks/:id accepts optional priority alongside title, description, columnId
- package.json engines: add Bun; empty states mention bun/npm seed
- Fix ESLint: remove unused import; suppress set-state-in-effect for mount fetch
Implements the Red-Valley mid-level fullstack challenge end-to-end.

API and data:
- Next.js App Router routes for boards, columns, and tasks with Zod validation
  and consistent JSON responses (ok/data vs error with codes)
- SQLite via node:sqlite: schema, indexes, foreign keys, WAL; migration for
  task_type and assignee_name; seed script for Sample board

UI and UX:
- Home and board pages with loading and empty states
- Kanban columns, task cards (priority badges, task-type icons, assignee avatars)
- Modal to create tasks; move tasks via column select and drag-and-drop
- Inter font, Tailwind, enterprise-style surfaces (#F4F5F7 background)

Documentation:
- README.md (Spanish, default on GitHub) and README.en.md with run instructions,
  architecture, API overview, AI assistance note, and submission guidance
- bun.lock added for reproducible Bun installs
- Lockfiles for reproducible installs (Bun/npm)
- .env.example for AUTH_SECRET and optional chat/LiveKit
- Ignore SQLite data dir and profile uploads; keep uploads/.gitkeep

Made-with: Cursor
- Boards, columns, tasks, comments, users, presence, cowork rooms (challenge minimum + extensions)
- Idempotent seed with Sample board and demo users per README

Made-with: Cursor
…actions

Challenge API: GET/POST /api/boards, GET /api/boards/:id, POST /api/columns, POST/PATCH/DELETE /api/tasks
- Consistent JSON envelope; 400/404/409 as appropriate
- Extra routes: admin, me, team, auth handler; livekit/cowork/presence actions

Made-with: Cursor
Challenge UI: kanban columns and cards, modal new task, move task (select + DnD), loading/empty
- FlowKanban branding, responsive navigation drawer, EN/ES
- Board chat dock, coworking, LiveKit voice, presence, admin dashboards

Made-with: Cursor
- Run bun run socket alongside Next for board chat + live refresh (NEXT_PUBLIC_CHAT_SOCKET_URL)
- README: local setup, API table, architecture, seed, AI assistance note (challenge submission)

Made-with: Cursor
…docs

- Add full-screen splash with logo before the sign-in page

- Add 4-step swipeable pre-auth onboarding carousel (i18n EN/ES)

- Add post-auth welcome modal and gate product tour until dismissed (WelcomePortal)

- Fix hydration by deferring localStorage reads until after client mount

- Move theme bootstrap to inline script in head (avoid Script component warnings)

- Document Vercel limits (SQLite, Socket.io) in docs/vercel-deploy.md; add vercel.json

- Expand README AI assistance (Claude Code, Cursor, skills) and AUTH_URL in .env.example

Made-with: Cursor
…pile

When NEXT_PHASE is phase-production-build, use a placeholder so Vercel/CI can collect page data. Runtime still requires AUTH_SECRET for real sessions.

Update Vercel deploy doc to note Build vs runtime env vars.

Made-with: Cursor
- Store app.db under os.tmpdir() when VERCEL=1 (read-only deploy root)

- Insert pm@example.com and dev@example.com (password123) if users table is empty

- Optional VERCEL_SKIP_DEMO_USERS=1; document Configuration troubleshooting

- Update README and .env.example

Made-with: Cursor
- Route all DB access through async sqlGet/sqlAll/sqlRun with local SQLite fallback

- Extract node:sqlite bootstrap to sqlite-local.ts; seed supports Turso when env is set

- Rename useTurso to isTursoConfigured; fix local bind param typing for node:sqlite

- Document TURSO_* and Vercel deploy in README and docs

Made-with: Cursor
- Remove TURSO_SEED_DEMO gate so Vercel+Turso login works without extra env

- Case-insensitive email lookup with LOWER(TRIM(email))

- Update README, .env.example, and vercel-deploy docs

Made-with: Cursor
- Force nodejs runtime on NextAuth route (avoid Edge + DB/bcrypt issues)

- bootstrapLoginDb + Turso demo seed re-check before authorize

- COUNT(*) via first cell; robust Zod parsing for form fields

- Use async bcrypt.compare and coerce password_hash to string

Made-with: Cursor
Ensure demo accounts are always usable by updating password hash and role on conflict,
so Vercel logins keep working even when users table already has existing rows.

Made-with: Cursor
Use secureCookie when the request arrives over HTTPS so Vercel middleware reads
the same Auth.js session cookie that login writes in production.

Made-with: Cursor
Pass the callback target through next-auth/react and force a full browser
navigation so production logins leave /login once the session cookie is set.

Made-with: Cursor
Replace the simple sample board with a fuller launch scenario that includes
multiple project phases, richer tasks, and seeded comments for more realistic demos.

Made-with: Cursor
Persist profile images in the database instead of writing to public/uploads,
add an avatar read route, and clear avatar blobs when admins remove them.

Made-with: Cursor
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants