You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

124 lines
3.2 KiB

# Root Organization Platform
Team collaboration platform with Documents, Kanban, and Calendar - no messaging.
## Tech Stack
- **Frontend**: SvelteKit 2 + Svelte 5 + TailwindCSS 4
- **Backend**: Supabase (PostgreSQL + Auth + Realtime)
- **Deployment**: Docker + adapter-node
## Features
- 📁 **Documents** - Folders and rich text documents with collaborative editing
- 📋 **Kanban** - Visual task boards with drag-drop and real-time sync
- 📅 **Calendar** - Team scheduling with events and attendees
- 👥 **Teams** - Organizations, members, roles (Owner/Admin/Editor/Viewer)
## Quick Start
### 1. Install dependencies
```bash
npm install
```
### 2. Set up Supabase
1. Create a project at [supabase.com](https://supabase.com)
2. Copy `.env.example` to `.env` and fill in your credentials:
```bash
cp .env.example .env
```
```env
PUBLIC_SUPABASE_URL=https://your-project.supabase.co
PUBLIC_SUPABASE_ANON_KEY=your-anon-key
```
3. Run the database migration in Supabase SQL editor:
- Open `supabase/migrations/001_initial_schema.sql`
- Execute in your Supabase dashboard
### 3. Run development server
```bash
npm run dev
```
Visit http://localhost:5173
## Docker
### Production
```bash
docker-compose up app
```
### Development (with hot reload)
```bash
docker-compose up dev
```
## Routes
| Route | Description |
|-------|-------------|
| `/` | Organization list (home) |
| `/login` | Auth (login/signup) |
| `/style` | UI component showcase |
| `/health` | Health check endpoint |
| `/[orgSlug]` | Organization overview |
| `/[orgSlug]/documents` | Documents with rich text editor |
| `/[orgSlug]/kanban` | Kanban boards |
| `/[orgSlug]/calendar` | Calendar events |
## Project Structure
```
src/
├── lib/
│ ├── api/ # Supabase API functions
│ │ ├── organizations.ts
│ │ ├── documents.ts
│ │ ├── kanban.ts
│ │ └── calendar.ts
│ ├── components/
│ │ ├── ui/ # Reusable UI components
│ │ ├── documents/ # FileTree, Editor
│ │ ├── kanban/ # KanbanBoard
│ │ └── calendar/ # Calendar
│ ├── stores/ # Svelte 5 state stores
│ └── supabase/ # Supabase client & types
├── routes/
│ ├── login/ # Auth pages
│ ├── style/ # Component showcase
│ ├── health/ # Health endpoint
│ ├── auth/callback/ # OAuth callback
│ ├── auth/logout/ # Sign out
│ └── [orgSlug]/ # Organization routes
│ ├── documents/
│ ├── kanban/
│ └── calendar/
└── hooks.server.ts # Auth middleware
```
## UI Components
All components available in `$lib/components/ui`:
- `Button` - Primary, Secondary, Ghost, Danger, Success variants
- `Input` - Text input with label, error, hint
- `Textarea` - Multi-line input
- `Select` - Dropdown select
- `Avatar` - User avatars with status
- `Badge` - Status badges
- `Card` - Content containers
- `Modal` - Dialog windows
- `Spinner` - Loading indicators
- `Toggle` - On/off switches
Visit `/style` to see all components.