TaskFlow is a full-stack task management application that allows multiple users to create, update, delete, and manage their tasks efficiently. Built with modern web technologies, it provides a seamless experience for organizing tasks.
- Frontend: React (Vite), TypeScript, Tailwind CSS
- Backend: Node.js, Express.js
- Database: PostgreSQL with Prisma ORM
- Authentication: JWT (JSON Web Token)
- Real-time Updates: WebSockets (optional)
✅ User Authentication (Sign-up & Sign-in with JWT)
✅ Task CRUD Operations (Create, Read, Update, Delete)
✅ Protected Routes (Only authenticated users can access tasks)
✅ Responsive UI with Dark Mode Toggle
✅ Error Handling & Validation with Zod
✅ Secure API with JWT Middleware
TaskFlow/
├── backend/ # Express.js backend
│ ├── prisma/ # Prisma schema & migrations
│ ├── routes/ # API routes (auth, tasks)
│ ├── middleware/ # JWT authentication middleware
│ ├── index.ts # Express server entry point
│
├── frontend/ # React frontend
│ ├── src/
│ │ ├── pages/ # Dashboard, Landing, Auth Pages
│ │ ├── components/ # Reusable UI components
│ │ ├── utils/ # API requests & validation
│ │ ├── App.tsx # Main app component
│
├── .env # Environment variables
├── package.json # Dependencies & scripts
├── README.md # Project documentation
- Clone the repository
git clone https://github.com/BeastxD7/TaskFlow.git
cd taskflow
- Set up the backend
cd backend
npm install
- Configure
.env
with your PostgreSQL URL & JWT secret. - Run Prisma migrations:
npx prisma migrate dev
npx prisma generate
- Start the backend server:
npm run dev
- Set up the frontend
cd ../frontend
npm install
npm run dev
Create a .env
file in the backend folder with:
DATABASE_URL=postgresql://your_db_url
JWT_SECRET=your_secret_key
SALT=6
- Open
http://localhost:5173
for the frontend. - The backend runs on
http://localhost:3000
.
Method | Endpoint | Description |
---|---|---|
POST | /api/signup | Register new user |
POST | /api/signin | Authenticate user |
Method | Endpoint | Description |
---|---|---|
GET | /api/tasks | Get all tasks |
POST | /api/tasks | Create a task |
PUT | /api/tasks/:id | Update a task |
DELETE | /api/tasks/:id | Delete a task |
🔹 Task prioritization (High, Medium, Low)
🔹 Drag & Drop Task Sorting
🔹 Real-time Task Updates using WebSockets
Feel free to contribute! Open an issue or submit a PR.
This project is licensed under the MIT License.
Made with ❤️ by Beast