TaskFlow is a small full-stack project built to practice real-world software development fundamentals: clear architecture, clean data flow, and maintainable code — without unnecessary complexity.
The focus is not on features, but on structure, clarity, and learning by building.
- Create, update, and delete tasks
- Task status tracking: To Do / In Progress / Done
- Priority levels (High / Medium / Low)
- Progress overview (completed vs open tasks)
- Clean, minimal UI
- REST API with input validation
- SQLite persistence
Screenshot of TaskFlow UI - A ticket is created.
Screenshot of TaskFlow UI - A ticket has been completed.
Screenshot of TaskFlow UI - A ticket is being edited.
Frontend
- React
- TypeScript
- Vite
- HTML / CSS
Backend
- Node.js
- Express
- TypeScript
- Zod (validation)
Database
- SQLite
Tooling
- Git & GitHub
- REST API
- Docker setup (Optional)
Base URL
http://localhost:4000
Endpoints
Get all tasks
GET /tasks
Create a task
POST /tasks
Content-Type: application/json
{
"title": "Finish TaskFlow MVP",
"description": "Implement backend and frontend",
"status": "todo",
"priority": 2
}
Update a task
PUT /tasks/:id
Delete a task
DELETE /tasks/:id
Prerequisites
- Node.js v20 LTS
- npm
Backend
cd server
npm install
npm run dev
Backend runs on:
http://localhost:4000
Frontend
cd client
npm install
npm run dev
Frontend runs on:
http://localhost:5173
docker-compose up --build
Frontend → http://localhost:5173
Backend → http://localhost:4000
-
Simple structure scales better than clever code
-
Clear naming reduces bugs
-
Debugging is a core skill
-
Building end-to-end systems improves understanding
-
Authentication (JWT)
-
Filters & search
-
Better test coverage
-
Deployment (cloud)
-
UI refinements
This project was built as a junior software development portfolio project to practice building and structuring a complete application from scratch.
Feedback and suggestions are always welcome.
MIT License
Copyright (c) 2025
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND.