Flowziac Docs

Contributing

Setup Guide

Get Flowziac running locally for development and contributing.

Prerequisites

Node.js18+
Python3.11+
PostgreSQL14+
Redis7+

Quick start

1. Clone the repository

git clone https://github.com/your-org/flowziac.git
cd flowziac

2. Install dependencies

cd frontend && npm install
cd ../backend && npm install

3. Set up environment

cp backend/.env.example backend/.env
# Edit .env with your database URL and secrets

4. Run database migrations

cd backend
npx prisma migrate dev

5. Start development servers

# Terminal 1 — Backend
cd backend && npm run dev

# Terminal 2 — Frontend
cd frontend && npm run dev

Project structure

flowziac/
├── backend/           # Express + TypeScript API
│   ├── src/
│   │   ├── controllers/   # Request handlers
│   │   ├── services/      # Business logic
│   │   ├── routes/        # Express routers
│   │   ├── middleware/     # Auth, rate limiting, etc.
│   │   └── engine/        # Flow execution engine
│   ├── prisma/            # Database schema & migrations
│   └── tests/             # Test files
├── frontend/          # Next.js + React dashboard
│   ├── src/
│   │   ├── app/           # App router pages
│   │   ├── components/    # React components
│   │   ├── services/      # API client services
│   │   ├── store/         # Redux state
│   │   └── types/         # TypeScript types
│   └── public/            # Static assets
└── Docs/                 # Documentation files

Development guidelines

• Follow the existing code style (ESLint + Prettier configured)

• Write tests for new features (Jest for backend, React Testing Library for frontend)

• Use conventional commits (feat:, fix:, docs:)

• Open a draft PR early for feedback on larger changes

• Update documentation for any API changes

Useful commands

npm run devStart development server
npm run buildBuild for production
npx prisma studioOpen database GUI
npx prisma migrate devRun pending migrations
npm run lintRun linter
npm testRun tests

Getting help

Questions or stuck?

  • • Check the documentation first
  • • Search existing GitHub issues
  • • Open a new issue with the "question" label