First commit
This commit is contained in:
124
README.md
Normal file
124
README.md
Normal file
@@ -0,0 +1,124 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user