Fullstack Kanban task management application built with Angular, TypeScript, Supabase and PostgreSQL.
Live: join.maxbelich.de
Join allows users to organize tasks across multiple workflow stages, assign contacts, manage subtasks and track progress with drag and drop.
- Sign up and log in with email and password
- Guest login without creating an account
- Summary dashboard with task statistics and upcoming deadlines
- Kanban board with To Do, In Progress, Await Feedback and Done
- Drag-and-drop task management
- Search tasks by title, description or assigned contact
- Create, edit and delete tasks
- Priorities, due dates, categories, contacts and subtasks
- Create, edit and delete contacts
- Realtime updates through Supabase
- Angular 22
- TypeScript
- SCSS
- Angular CDK
- Supabase
- PostgreSQL
- Supabase Authentication
- Supabase Realtime
The portfolio version uses its own Supabase project and PostgreSQL database.
The database schema is versioned in the repository through Supabase migrations and includes the main application tables:
contactstaskssubtaskstask_contacts
The schema defines relationships between tasks, contacts and subtasks, including foreign keys and cascading deletes. Row Level Security is enabled for the application tables.
Database migrations are stored in:
supabase/migrations/
Clone the repository:
git clone https://github.com/maxbelich/join.gitOpen the project directory:
cd joinInstall the dependencies:
npm installConfigure your Supabase project in:
src/environments/environment.ts
src/environments/environment.development.ts
Example:
export const environment = {
production: false,
supabaseUrl: 'YOUR_SUPABASE_URL',
supabaseAnonKey: 'YOUR_SUPABASE_PUBLISHABLE_KEY',
};Link your Supabase project:
supabase link --project-ref YOUR_PROJECT_REFERENCEApply the included database migration:
supabase db pushEnable Anonymous Sign Ins and Realtime for:
contactstaskssubtaskstask_contacts
Start the application:
npm startThen open:
http://localhost:4200
Join was originally developed as a team project during my Fullstack Developer training at Developer Akademie.
This repository is my personal continuation of that project. It preserves the original Git history and team-project origin while using an independent Supabase backend and database for my portfolio version.
The Supabase schema required by the application is included in this repository so the backend structure can be reproduced in a separate project.
Original team repository:
https://github.com/Umeyrp/join
Max Belich
© 2026 Max Belich. All rights reserved.