Skip to content

Latest commit

 

History

History
343 lines (204 loc) · 5.15 KB

File metadata and controls

343 lines (204 loc) · 5.15 KB

Project Handoff – TaskFlow

Project Overview

I am building a portfolio-quality full-stack web application called TaskFlow.

TaskFlow is not a traditional CRUD To-Do application. It is a Collaborative Productivity Platform where users can organize tasks, communicate, collaborate, and securely verify important task events using blockchain.

The project should prioritize:

  • Clean Architecture
  • Professional UI/UX
  • Scalable Folder Structure
  • Responsive Design
  • Maintainable Code
  • Industry-standard Practices

This project should look and feel like a modern SaaS application rather than a school project.


Tech Stack

Frontend

  • React (Vite)
  • TypeScript
  • Tailwind CSS
  • React Router
  • TanStack Query
  • Zustand
  • Lucide React

Backend

  • Node.js
  • Express.js
  • Prisma ORM
  • JWT Authentication
  • bcrypt

Database

PostgreSQL


Real-Time Features

Socket.IO

Used for:

  • Real-time messaging
  • Notifications
  • User online status

Voice Calls

WebRTC

Only voice calls.

No video calls.


Blockchain

Ethereum

Hardhat

Solidity

The blockchain is NOT the primary database.

PostgreSQL remains the primary database.

Blockchain is only used for immutable task events.


Core Modules

Authentication

  • Register
  • Login
  • Logout
  • JWT
  • Protected Routes

Dashboard

Shows:

  • Today's Tasks
  • Pending Tasks
  • Completed Tasks
  • Recent Activity
  • Upcoming Deadlines

My Tasks

CRUD

Each task contains:

  • Title
  • Description
  • Priority
  • Due Date
  • Category
  • Status
  • Shared Users

Features:

  • Search
  • Filter
  • Sort

Categories

User-created categories.

CRUD:

  • Create
  • Rename
  • Delete

Unlimited categories.


Connections

Instead of Followers/Friends.

Workflow:

User Search → Connect → Connection Request → Accept → Become Connections

Connections are required before:

  • Sending Messages
  • Sharing Tasks

Shared Tasks

Users can share tasks with Connections.

Invitation Flow:

Create Task → Share → Choose Connection → Connection receives invitation → Accept → Task becomes collaborative


Messages

Features:

  • Direct Messages
  • Group Chats
  • File Attachments (optional)
  • Voice Calls (WebRTC)

No video calls.


Notifications

Professional notifications.

Examples:

Connection accepted, Task invitation, Shared task completed, New message, Voice call, Blockchain verification


Statistics

Cards only.

Examples:

Completed Tasks, Pending Tasks, Categories, Shared Tasks, Connections

No XP. No Levels. No Gamification.


Profile

Contains:

Avatar, Bio, Completed Tasks, Shared Tasks, Connections, Member Since, Edit Profile


Blockchain

This project uses a Hybrid Architecture.

PostgreSQL stores current data.

Blockchain stores immutable history.

Never store CRUD data on blockchain.

Only important task events.


Blockchain Module

One smart contract. One ledger. TaskEvent Ledger.

Every important event creates a new blockchain record.

Never edit. Never delete. Never overwrite. Always append.


Events Stored

  • TASK_CREATED
  • TASK_COMPLETED
  • TASK_REOPENED
  • TASK_ARCHIVED
  • PRIORITY_UPDATED
  • DEADLINE_UPDATED

These become immutable blockchain records.


Reopening Tasks

If a completed task is reopened:

Do NOT delete the completion event.

Instead create another blockchain event: TASK_REOPENED (Reason, Timestamp, User).

This preserves the full event history.


Database

PostgreSQL

Users, Tasks, Categories, Connections, TaskShares, Messages, Notifications, TaskLedgerEvents

Blockchain

TaskEventLedger — Only immutable task events (hybrid: Postgres index + optional on-chain).


Navigation

Dashboard, My Tasks, Categories, Messages, Notifications, Ledger, Statistics, Settings, Profile

Connections are accessed through the Profile page. Voice calls start from 1:1 Messages.


UI Style

Modern SaaS. Minimalist. Professional. Dark Mode support.

Rounded cards, soft shadows, consistent spacing, smooth transitions, professional typography, responsive.

Avoid a social-media appearance. The design should resemble professional productivity software.


Development Roadmap

Version 1

  • Authentication
  • Dashboard
  • Task CRUD
  • Categories
  • Statistics
  • Profile

Version 2

  • Connections
  • Shared Tasks
  • Messages
  • Notifications
  • Online Presence (Socket.IO)

Version 3

  • Voice Calls (WebRTC, audio only)
  • Blockchain Task Event Ledger (Hardhat + Solidity)

Coding Standards

  • Clean Architecture
  • Modular Components
  • SOLID Principles where appropriate
  • RESTful APIs
  • Proper error handling
  • Reusable components
  • Strong TypeScript typing
  • Secure authentication
  • Input validation
  • Well-structured folders
  • Scalable database design

Goal

Build a professional portfolio application demonstrating full-stack development, database design, authentication, REST API development, real-time communication, collaboration features, modern React architecture, PostgreSQL with Prisma, and blockchain integration using a hybrid architecture.

The implementation should prioritize maintainability, scalability, and production-ready coding practices over simply making features work.