Open
Conversation
- 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
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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.