Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

120 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

FlowHub Logo

This project is developed as both a school project and a potential SaaS product.

Status React TypeScript Vite Backend License: GPL v3 Backend Check Frontend Check

A modern task and workflow management system inspired by tools like Linear and Trello, built as a full-stack web application using a React SPA frontend and ASP.NET Core Web API backend.


🌐 Website: getflowhub.app


Some dashboard sections are intentionally mocked/preview-only while corresponding backend systems are still under development.


Tech Stack

Frontend

  • React + TypeScript (Vite)
  • Tailwind CSS
  • React Router
  • Component-based SPA architecture
  • Optimistic UI updates
  • API-driven frontend

Backend

  • ASP.NET Core Web API
  • Entity Framework Core (Code First)
  • JWT Authentication

Database

  • PostgreSQL

Hosting (planned)

  • Frontend: Vercel
  • Backend: Railway
  • Database: Railway

Concept

FlowHub is not just a Trello clone.

The goal is to create a fast, minimal, and structured workflow system focused on:

  • Speed
  • Clean UI
  • Real usability
  • Smooth interactions
  • Modern SaaS UX

The frontend is heavily inspired by modern productivity tools like Linear while maintaining its own structure and branding.


Core Features

Authentication

  • Register / Login
  • JWT-based authentication
  • Protected app routes
  • Persistent login via local storage

Workspaces

  • Create and manage workspaces
  • Workspace switching
  • Multi-workspace structure

Boards

  • Create boards inside workspaces
  • Kanban-style workflow organization

Tasks

  • Create, edit, move, and delete tasks
  • Drag & drop between columns
  • Inline editing
  • Optimistic UI updates

Columns

  • Default Todo / In Progress / Done columns
  • Column-based task organization

Collaboration Features

  • Task comments
  • Labels / tags
  • Activity logging foundation

Frontend / UX

  • Fully redesigned SaaS-style interface
  • Premium animated landing page
  • Responsive dashboard layout
  • Custom error pages
  • Mocked future-product sections clearly marked

Planned / Future Features

  • Workspace invitations / collaboration
  • Real notifications
  • Real-time updates (SignalR)
  • Due dates & reminders
  • File uploads
  • Advanced filtering/search
  • Keyboard shortcuts
  • Analytics / productivity insights
  • Deployment & production environment

Database Schema

The database is designed for scalability, workspace isolation, and clean relational integrity.

Key design decisions:

  • Multi-workspace architecture
  • Soft delete support across core entities
  • Relational integrity with proper foreign keys
  • Indexed fields for performance
  • EF Core code-first workflow

Interactive Diagram

πŸ‘‰ https://dbdiagram.io/d/FlowHub-69cd9c4678c6c4bc7ac35520

Database Schema


Architecture Overview

Frontend (React SPA)

  • React + TypeScript SPA
  • React Router navigation
  • Centralized API service layer
  • Optimistic UI state updates
  • Protected routes with auth context

Backend (ASP.NET Core)

  • RESTful API
  • JWT authentication
  • EF Core + PostgreSQL
  • Data annotations validation
  • Simple controller-based architecture

Database

  • EF Core migrations
  • PostgreSQL relational structure
  • Code-first development flow

Fresh Setup

Prerequisites

Tool Minimum version Notes
Node.js 18 Required for the frontend
.NET SDK 8.0 Required for the backend
PostgreSQL 14 Local instance or Docker
EF Core CLI 8.0 dotnet tool install -g dotnet-ef

1. Clone the repository

git clone <repo-url>
cd FlowHub

2. Configure backend environment

Copy the example settings file and fill in your values:

cp backend/appsettings.Development.example.json backend/appsettings.Development.json

Then edit backend/appsettings.Development.json:

Example:

{
  "ConnectionStrings": {
    "DefaultConnection": "Host=localhost;Port=5432;Database=flowhub_dev;Username=postgres;Password=YOUR_PASSWORD"
  },
  "Jwt": {
    "Key": "REPLACE_WITH_A_LONG_RANDOM_SECRET_AT_LEAST_32_CHARS",
    "Issuer": "FlowHub",
    "Audience": "FlowHubClient",
    "ExpiresInDays": 7
  }
}

appsettings.Development.json is intentionally not committed to GitHub.

JWT key: Generate a secure random string (32+ characters). On macOS/Linux: openssl rand -base64 32


3. Configure frontend environment (optional)

The frontend auto-targets http://localhost:5000 when VITE_API_URL is not set. To override:

# frontend/.env.local  (not committed)
VITE_API_URL=http://localhost:5000

4. Install dependencies

Frontend:

cd frontend
npm install

Backend:

cd ../backend
dotnet restore

4. Apply migrations

dotnet ef database update

5. Start the app

From the root folder:

npm run dev

Or separately:

Backend:

cd backend
dotnet run

Frontend:

cd frontend
npm run dev

The app will be available at:


Development Seed User

A seeded development account is automatically created in Development mode.

Email:    dev@getflowhub.app
Password: 12345678

You can use this account immediately after running migrations and starting the app.


Reset Local Development Database

Drop and recreate the local database:

cd backend

dotnet ef database drop
dotnet ef database update

Seed data is recreated automatically in Development mode.


Project Structure

FlowHub/
β”œβ”€β”€ backend/
β”‚   β”œβ”€β”€ Controllers/      # API endpoints
β”‚   β”œβ”€β”€ DTOs/             # Request/response shapes
β”‚   β”œβ”€β”€ Models/           # EF Core entities + shared constants
β”‚   β”œβ”€β”€ Data/             # AppDbContext, development seeder
β”‚   β”œβ”€β”€ Services/         # JWT token service, helper extensions
β”‚   └── Migrations/       # EF Core migration history
β”‚
β”œβ”€β”€ frontend/
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ components/   # Reusable UI, layout, auth, board, workspace
β”‚   β”‚   β”œβ”€β”€ pages/        # Route-level page components
β”‚   β”‚   β”œβ”€β”€ services/     # API call helpers (one file per domain)
β”‚   β”‚   β”œβ”€β”€ types/        # Shared TypeScript interfaces
β”‚   β”‚   └── utils/        # Pure utility helpers (e.g. colorHash)
β”‚   └── public/
β”‚
└── .github/
    β”œβ”€β”€ copilot-instructions.md
    └── design.md

Development Notes

Backend Philosophy

The backend intentionally avoids unnecessary complexity.

Not used intentionally:

  • Repository pattern
  • CQRS
  • AutoMapper
  • ASP.NET Identity
  • Heavy abstraction layers

Goal:

  • Keep code easy to understand
  • Keep architecture production-like but explainable
  • Make debugging straightforward

Frontend Philosophy

The frontend focuses more heavily on:

  • Product feel
  • UX polish
  • Animations
  • Responsive design
  • SaaS-style presentation

AI-Assisted Development

This project is AI-assisted, but:

  • Architecture and technical decisions are human-driven
  • Project-specific rules are enforced through:
    • .github/copilot-instructions.md
    • .github/design.md
  • Focus is on maintainable and understandable code, not blindly generated output

Status

Backend

  • ASP.NET Core Web API
  • PostgreSQL + EF Core
  • JWT authentication
  • Migrations + development seeding
  • Workspaces / Boards / Tasks APIs
  • Comments & labels
  • Protected endpoints

Frontend

  • Full React + TypeScript SPA
  • Premium landing page
  • Dashboard/app shell
  • Drag & drop task movement
  • Authentication flow
  • Optimistic UI updates
  • Responsive UI
  • Mocked future SaaS features

Current Focus

  • Deployment
  • Workspace collaboration
  • Real notifications
  • Production hardening

About

A modern task and workflow management system inspired by tools like Linear and Trello, built as a full-stack web application using a React SPA frontend and ASP.NET Core Web API backend.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages