Skip to content

andreidem18/flowboard

Repository files navigation

Flowboard

Flowboard is a kanban-style project and task manager, with authentication, mobile support, and a documented REST API.

Deployed project:

Quick setup with Docker 🐳 (3 steps)

  1. Copy the example environment variables
cp .env.docker.example .env.docker
  1. Run docker compose
docker compose --env-file .env.docker up --build
  1. Wait for 🟢 backend running at localhost:3000 to appear

The first build can take around 6 minutes

✅ Access the frontend at

http://localhost:5173

(Don't use 127.0.0.1 as it may cause a CORS error)

✅ Access the backend documentation at

http://localhost:3000/openapi             # General backend
http://localhost:3000/api/v1/auth/openapi # authentication with better auth

Test credentials:

{
  "email": "alice@example.com",
  "password": "admin1234"
}

The password comes from the SEED_USER_PASSWORD variable


Documentation

Monorepo structure

The project uses Turborepo with pnpm workspaces to manage multiple packages efficiently. Turborepo caches the results of tasks like build, lint, and typecheck, and runs them in parallel while respecting dependencies between packages.

flowboard/
├── apps/
│   ├── backend/   # REST API (Elysia + PrismaORM + PostgreSQL)
│   └── frontend/  # SPA (React + React Router DOM + TanStack Query)
└── packages/
    ├── shared/          # Zod schemas and types shared between apps
    ├── eslint-config/   # Common ESLint configuration
    └── typescript-config/ # Shared base tsconfig

The shared package is key: it defines the Zod validation schemas (projects, tasks, users, authentication) consumed by both the frontend and the backend, guaranteeing end-to-end type consistency.

The scripts available from the monorepo root are:

Script Description
pnpm dev Runs frontend and backend in parallel with hot-reload
pnpm build Builds all apps (respects dependencies)
pnpm lint Lints all packages
pnpm typecheck Type checks all packages

Local development

  1. Create a Postgres database
  2. Install Node v18+ and pnpm
  3. Copy and fill in the environment variables:
    • apps/backend/.env.exampleapps/backend/.env
    • apps/frontend/.env.exampleapps/frontend/.env
  4. Run from the root:
pnpm install
  1. Go to the backend, generate prisma, run migrations and seed
cd apps/backend
pnpm run prisma:generate
pnpm run prisma:migrate
pnpm run prisma:seed
  1. Return to the root path and run the project
cd ../..
pnpm dev

For more information about the frontend and backend architecture:

Screenshots

login dashboard dashboard-2 projects task-board task-form mobile backend-endpoints

About

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages