Contributing to Traqify

Thank you for your interest in contributing! This guide covers everything you need to set up a development environment, follow project conventions, and submit quality pull requests.

Getting Started

Prerequisites

ToolMin version
Node.js18.x
npm9.x
PostgreSQL14+ (or Supabase project)
1

Fork and clone

git clone https://github.com/<your-username>/traqify.git
cd traqify
2

Install dependencies

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

Configure environment

# Backend
cp backend/.env.example backend/.env
# Frontend
cp frontend/.env.example frontend/.env.local
4

Run database migrations

cd backend
npx prisma migrate dev
npx prisma generate
5

Start dev servers

# Terminal 1 — backend (port 5000)
cd backend && npm run dev

# Terminal 2 — frontend (port 3000)
cd frontend && npm run dev

Code Conventions

TypeScript

TypeScript everywhere, no any types unless unavoidable

Functional Components

React class components are not used

Named Exports

Prefer named exports over default exports for components

Tailwind CSS

All styling via Tailwind utility classes

Commit Messages

Follow the Conventional Commits spec:

<type>(<scope>): <short description>
feat

New feature

fix

Bug fix

docs

Documentation only

style

Formatting, no logic change

refactor

Code restructure, no feature/fix

chore

Dependency updates, build scripts

Pull Request Process

  • Title: use the same Conventional Commits format as your commit messages
  • Description: include what changed, why, and how to test it
  • TypeScript must compile: both backend and frontend tsc --noEmit must pass
  • No breaking schema changes without a migration file
  • One concern per PR: split large features into reviewable chunks

Reporting Bugs

Open a GitHub issue with:

  • Environment (OS, Node version, browser)
  • Steps to reproduce
  • Expected vs actual behaviour
  • Screenshots if applicable

For security vulnerabilities, see the Security Policy page.