Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TaskFlow

A collaborative productivity platform built with React, Node.js, PostgreSQL, WebRTC, and Ethereum.

Tech Stack

Layer Technologies
Frontend React, Vite, TypeScript, Tailwind CSS, TanStack Query, Zustand, WebRTC
Backend Node.js, Express, Prisma, JWT, bcrypt, Socket.IO, ethers.js
Database PostgreSQL
Blockchain Solidity, Hardhat, TaskEventLedger

Prerequisites

  • Node.js 20+
  • PostgreSQL 14+

Getting Started

1. Install dependencies

npm install

2. Configure environment

cp server/.env.example server/.env
cp client/.env.example client/.env

Edit server/.env with your PostgreSQL connection string and a secure JWT secret (min 16 characters).

3. Set up the database

npm run db:push

4. Start development servers

npm run dev

Optional: On-chain ledger (Hardhat)

By default the app uses local ledger mode (append-only PostgreSQL records with deterministic hashes). To anchor events on a local Ethereum node:

# Terminal A — local chain
npm run chain:node

# Terminal B — deploy contract
npm run chain:deploy

Then set in server/.env:

BLOCKCHAIN_RPC_URL=http://127.0.0.1:8545
BLOCKCHAIN_PRIVATE_KEY=0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80
TASK_EVENT_LEDGER_ADDRESS=<address from blockchain/deployments/localhost.json>

Restart the API. Ledger mode switches to on-chain.

Project Structure

taskflow/
├── client/          # React frontend (Vite)
├── server/          # Express API + Prisma + WebRTC signaling
├── blockchain/      # Hardhat + TaskEventLedger.sol
├── docs/
│   └── PROJECT.md   # Full project specification
└── package.json     # npm workspaces root

Version Features

  • V1: Auth, Dashboard, Tasks, Categories, Statistics, Profile
  • V2: Connections, Shared Tasks, Messages, Notifications, Online Presence
  • V3 ✅: Voice Calls (WebRTC), Blockchain Task Event Ledger

V3 Highlights

Voice calls

  • Audio-only WebRTC between connections (1:1 from Messages)
  • Socket.IO signaling: invite / accept / reject / offer / answer / ICE
  • Incoming call overlay + mute / end controls

Task Event Ledger

Immutable append-only events (never edit/delete/overwrite):

  • TASK_CREATED
  • TASK_COMPLETED
  • TASK_REOPENED (requires reason; completion history kept)
  • TASK_ARCHIVED
  • PRIORITY_UPDATED
  • DEADLINE_UPDATED

Hybrid architecture: PostgreSQL for queries + optional on-chain anchoring via TaskEventLedger.

See docs/PROJECT.md for the full specification.

About

A TodoList-Application for collaborative productivity platform featuring task management, real-time messaging, connections, voice calls, and blockchain-based task event verification.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages