Project Abstract
TaskFlow is a full-stack, multi-user todo list web app that helps users organize tasks into customizable, color-coded, schedulable lists. Unlike basic apps that store data locally, it is a true client-server system: each user gets a private workspace, and all data is saved to a remote MySQL database. Users can register, log in, create, edit, schedule, reschedule, recolor, and delete lists; add, complete, edit, and remove tasks; and reorder lists by drag-and-drop on mouse or touch. It follows a three-tier architecture: a frontend built with HTML, CSS, and vanilla JavaScript; a backend built with Node.js and Express.js; and a MySQL data tier. The frontend talks to the server through a REST API and never touches the database directly. Node.js, a cross-platform JavaScript runtime, lets JavaScript run on the server, not just the browser, so one language powers the whole stack. Its non-blocking, event-driven model handles many connections efficiently. Express maps HTTP requests like POST /api/login or GET /api/lists to handlers and runs middleware that authenticates users via JWT and enforces authorization. Passwords are hashed with bcrypt, and prepared statements prevent SQL injection. npm supplies libraries (express, mysql2, bcrypt, jsonwebtoken, cors, dotenv), declared in package.json. MySQL stores three linked tables users, lists, tasks with one-to-many relationships and cascading deletes. Full CRUD and drag-and-drop order persist across visits and devices. The UI is responsive via CSS Grid, Flexbox, and media queries. Secrets live in environment variables, and the app deploys to any Node.js/MySQL host and is shareable by URL with no install. Out of scope: collaboration, notifications, attachments, offline mode, native apps, and integrations. TaskFlow is a complete, end-to-end demonstration of modern, secure web engineering
AI Feedback
Good full-stack project with both interface and database.