A full-stack task management application with a React and Vite frontend and an Express API backed by SQLite.
- Create, edit, complete, and delete tasks
- Set task priority and due dates
- Assign multiple categories to tasks
- Search and filter the task list
- Responsive UI built with Tailwind CSS and DaisyUI
- Frontend: React, Vite, Tailwind CSS, DaisyUI, React Select
- Backend: Node.js, Express 5
- Database: SQLite via
sqliteandsqlite3
client/ React/Vite frontend
server/ Express API and SQLite data access
- Node.js 18 or newer
- npm
Clone the repository, then install dependencies in both applications:
cd client
npm install
cd ../server
npm installStart the API from the server directory:
npm run devThe API runs at http://localhost:3000.
In a second terminal, start the frontend:
cd client
npm run devOpen the URL printed by Vite, usually http://localhost:5173.
The Vite development server proxies /api requests to the backend at
http://localhost:3000.
The server opens database.db relative to the directory from which the server
is started. The repository includes database helper scripts:
server/createTable.jscreates thetask_categoriesjoin table.server/seedTable.jsinserts the default categories: BCS, Coding, Academic study, and Personal.server/alterTable.jsclears task-category relationships.
These scripts assume the required tasks and categories tables already exist.
Run database scripts from the server directory when needed:
node createTable.js
node seedTable.jsDo not run alterTable.js unless you intend to clear all task-category
assignments.
| Method | Endpoint | Description |
|---|---|---|
GET |
/api/tasks |
List all tasks with categories |
GET |
/api/tasks/:id |
Get one task |
POST |
/api/tasks |
Create a task |
PATCH |
/api/tasks/:id |
Update a task |
DELETE |
/api/tasks/:id |
Delete a task |
| Method | Endpoint | Description |
|---|---|---|
GET |
/api/categories |
List available categories |
Run these from client/:
npm run dev # Start the Vite development server
npm run build # Create a production build
npm run preview # Preview the production build
npm run lint # Run ESLintRun these from server/:
npm start # Start the API
npm run dev # Start the API with Nodemon