A practice project built to explore React, TypeScript, drag-and-drop interactions, SQLite persistence, and automated testing with Vitest and React Testing Library.
Create, complete, delete, and reorder tasks with drag and drop. Includes filtering, theme switching (light/dark), and a simple Node.js + Express.js + SQLite backend.
- Create a todo
- Mark a todo as completed
- Delete a todo
- Reorder todos by drag and drop
- Filter by All, Active, and Completed
- Clear all completed todos
- Switch between Light and Dark themes
- Save todos in a local SQLite database
- Fully responsive for Desktop and Mobile
Frontend: React + Vite + TypeScript + Tailwind CSS
Animations: Framer Motion
Backend: Node.js + Express.js + SQLite
Testing: Vitest + React Testing Library
- Node.js (v18 or higher)
- npm or yarn
-
Clone this repository:
git clone https://github.com/dev-david-alves/todo-app-with-reordering.git cd todo-app-with-reordering -
Install dependencies:
cd server && npm install cd ../client && npm install
-
Start the backend:
cd server npm start -
Start the frontend:
cd client npm run dev -
Open the local address (usually):
http://localhost:5173
Run unit and integration tests using Vitest and React Testing Library:
npm run testor
npm run test:uiDavid Alves
Bachelor in Computer Science at the Federal University of Ceará
💼 LinkedIn
📧 david.als.soares@gmail.com
📂 Project Link: https://github.com/dev-david-alves/todo-app-with-reordering
This project is licensed under the MIT License.
⭐ If you found this project useful or inspiring, consider giving it a star!




