Replace all marketing placeholder content with real MYeasyCMS content
Some checks failed
Workflow / ʦ TypeScript (push) Failing after 6m12s
Workflow / ⚫️ Test (push) Has been skipped

- Logo: Replace generic Makerkit SVG with MYeasyCMS branded logo (grid icon + styled text)
- Blog: Replace 3 SaaS placeholder posts with 5 real articles (Vereinsverwaltung, SEPA, Website, DSGVO, Mitglieder-Tipps)
- Changelog: Replace 6 generic entries with real feature announcements (Verbandsverwaltung, Fischerei, Dateien, Kurse, Einladungen, i18n)
- Documentation: Rewrite all 20 docs from Makerkit references to MYeasyCMS content
- FAQ: Replace 6 generic SaaS questions with 10 real MYeasyCMS questions
- Navigation: Replace Changelog link with Contact in main nav
- Footer: Reorganize into Product/Company/Legal sections
- Translations: Update all EN marketing strings to match real Com.BISS content
This commit is contained in:
Zaid Marzguioui
2026-04-01 21:09:06 +02:00
parent bbb33aa63d
commit a5bbf42901
49 changed files with 1320 additions and 4735 deletions

View File

@@ -1,350 +1,43 @@
---
title: "Configuration"
description: "Configure your application settings and feature flags."
title: "Konfiguration"
description: "MYeasyCMS an Ihren Verein anpassen — Stammdaten, Module, Rollen und Grundeinstellungen konfigurieren."
publishedAt: 2024-04-11
order: 4
order: 2
status: "published"
---
> **Note:** This is mock/placeholder content for demonstration purposes.
Nach dem ersten Login sollten Sie die Grundeinstellungen Ihres Vereins konfigurieren.
Customize your application behavior through configuration files.
## Vereinsstammdaten
## Configuration Files
Unter **Einstellungen → Vereinsdaten** hinterlegen Sie:
All configuration files are located in `apps/web/config/`:
- **Vereinsname** — Der offizielle Name laut Satzung
- **Adresse** — Anschrift des Vereinssitzes
- **Kontaktdaten** — Telefon, E-Mail, Website
- **Bankverbindung** — IBAN und BIC für den SEPA-Einzug
- **Gläubiger-ID** — Ihre SEPA-Gläubiger-Identifikationsnummer
- **Vereinslogo** — Wird auf Ausweisen, Rechnungen und der Website angezeigt
```
config/
├── paths.config.ts # Route paths
├── billing.config.ts # Billing & pricing
├── feature-flags.config.ts # Feature toggles
├── personal-account-navigation.config.tsx
├── team-account-navigation.config.tsx
└── i18n.settings.ts # Internationalization
```
## Abteilungen und Gruppen
## Feature Flags
Unter **Mitglieder → Abteilungen** legen Sie die Struktur Ihres Vereins an. Abteilungen werden für die Beitragsberechnung, Kommunikation und Statistiken verwendet.
Control feature availability:
## Beitragskategorien
```typescript
// config/feature-flags.config.ts
export const featureFlags = {
enableTeamAccounts: true,
enableBilling: true,
enableNotifications: true,
enableFileUploads: false,
enableAnalytics: true,
enableChat: false,
};
```
Unter **Finanzen → Beitragskategorien** definieren Sie die verschiedenen Beitragssätze:
### Using Feature Flags
- **Bezeichnung** — z.B. „Erwachsene", „Jugendliche", „Familie"
- **Jahresbeitrag** — Der reguläre Beitragssatz
- **Aufnahmegebühr** — Einmalige Gebühr bei Eintritt (optional)
- **Abrechnungszeitraum** — Jährlich, halbjährlich oder quartalsweise
```typescript
import { featureFlags } from '~/config/feature-flags.config';
## Rollen und Berechtigungen
export function ConditionalFeature() {
if (!featureFlags.enableChat) {
return null;
}
MYeasyCMS verwendet ein rollenbasiertes Berechtigungssystem. Jeder Benutzer erhält eine oder mehrere Rollen, die seinen Zugriff steuern.
return <ChatWidget />;
}
```
Die Rollen können unter **Einstellungen → Mitarbeiter** zugewiesen werden.
## Path Configuration
## E-Mail-Einstellungen
Define application routes:
```typescript
// config/paths.config.ts
export const pathsConfig = {
auth: {
signIn: '/auth/sign-in',
signUp: '/auth/sign-up',
passwordReset: '/auth/password-reset',
callback: '/auth/callback',
},
app: {
home: '/home',
personalAccount: '/home',
teamAccount: '/home/[account]',
settings: '/home/settings',
billing: '/home/settings/billing',
},
admin: {
home: '/admin',
users: '/admin/users',
analytics: '/admin/analytics',
},
};
```
### Using Paths
```typescript
import { pathsConfig } from '~/config/paths.config';
import Link from 'next/link';
<Link href={pathsConfig.app.settings}>
Settings
</Link>
```
## Navigation Configuration
### Personal Account Navigation
```typescript
// config/personal-account-navigation.config.tsx
import { HomeIcon, SettingsIcon } from 'lucide-react';
export default [
{
label: 'common.routes.home',
path: pathsConfig.app.personalAccount,
Icon: <HomeIcon className="w-4" />,
end: true,
},
{
label: 'common.routes.settings',
path: pathsConfig.app.settings,
Icon: <SettingsIcon className="w-4" />,
},
];
```
### Team Account Navigation
```typescript
// config/team-account-navigation.config.tsx
export default [
{
label: 'common.routes.dashboard',
path: createPath(pathsConfig.app.teamAccount, account),
Icon: <LayoutDashboardIcon className="w-4" />,
end: true,
},
{
label: 'common.routes.projects',
path: createPath(pathsConfig.app.projects, account),
Icon: <FolderIcon className="w-4" />,
},
{
label: 'common.routes.members',
path: createPath(pathsConfig.app.members, account),
Icon: <UsersIcon className="w-4" />,
},
];
```
## Billing Configuration
```typescript
// config/billing.config.ts
export const billingConfig = {
provider: 'stripe', // 'stripe' | 'paddle'
enableTrial: true,
trialDays: 14,
plans: [
{
id: 'free',
name: 'Free',
price: 0,
features: ['5 projects', 'Basic support'],
limits: {
projects: 5,
members: 1,
},
},
{
id: 'pro',
name: 'Professional',
price: 29,
interval: 'month',
features: ['Unlimited projects', 'Priority support'],
limits: {
projects: -1, // unlimited
members: 10,
},
},
],
};
```
## Internationalization
```typescript
// lib/i18n/i18n.settings.ts
export const i18nSettings = {
defaultLocale: 'en',
locales: ['en', 'es', 'fr', 'de'],
defaultNamespace: 'common',
namespaces: ['common', 'auth', 'billing', 'errors'],
};
```
## Email Configuration
```typescript
// config/email.config.ts
export const emailConfig = {
from: {
email: process.env.EMAIL_FROM || 'noreply@example.com',
name: process.env.EMAIL_FROM_NAME || 'Your App',
},
provider: 'resend', // 'resend' | 'sendgrid' | 'postmark'
};
```
## SEO Configuration
```typescript
// config/seo.config.ts
export const seoConfig = {
title: 'Your App Name',
description: 'Your app description',
ogImage: '/images/og-image.png',
twitterHandle: '@yourapp',
locale: 'en_US',
// Per-page overrides
pages: {
home: {
title: 'Home - Your App',
description: 'Welcome to your app',
},
pricing: {
title: 'Pricing - Your App',
description: 'Simple, transparent pricing',
},
},
};
```
## Theme Configuration
```typescript
// config/theme.config.ts
export const themeConfig = {
defaultTheme: 'system', // 'light' | 'dark' | 'system'
enableColorSchemeToggle: true,
colors: {
primary: 'blue',
accent: 'purple',
},
};
```
## Analytics Configuration
```typescript
// config/analytics.config.ts
export const analyticsConfig = {
googleAnalytics: {
enabled: true,
measurementId: process.env.NEXT_PUBLIC_GA_ID,
},
posthog: {
enabled: false,
apiKey: process.env.NEXT_PUBLIC_POSTHOG_KEY,
},
plausible: {
enabled: false,
domain: process.env.NEXT_PUBLIC_PLAUSIBLE_DOMAIN,
},
};
```
## Rate Limiting
```typescript
// config/rate-limit.config.ts
export const rateLimitConfig = {
api: {
windowMs: 15 * 60 * 1000, // 15 minutes
max: 100, // requests per window
},
auth: {
windowMs: 15 * 60 * 1000,
max: 5, // login attempts
},
};
```
## Upload Configuration
```typescript
// config/upload.config.ts
export const uploadConfig = {
maxFileSize: 5 * 1024 * 1024, // 5MB
allowedMimeTypes: [
'image/jpeg',
'image/png',
'image/gif',
'image/webp',
'application/pdf',
],
storage: {
provider: 'supabase', // 'supabase' | 's3' | 'cloudinary'
bucket: 'uploads',
},
};
```
## Environment-Specific Config
```typescript
// config/app.config.ts
const isDev = process.env.NODE_ENV === 'development';
const isProd = process.env.NODE_ENV === 'production';
export const appConfig = {
environment: process.env.NODE_ENV,
apiUrl: isProd
? 'https://api.yourapp.com'
: 'http://localhost:3000/api',
features: {
enableDebugTools: isDev,
enableErrorReporting: isProd,
enableAnalytics: isProd,
},
};
```
## Best Practices
1. **Use environment variables** for secrets
2. **Type your configs** for autocomplete and safety
3. **Document options** with comments
4. **Validate on startup** to catch errors early
5. **Keep configs simple** - avoid complex logic
6. **Use feature flags** for gradual rollouts
7. **Environment-specific values** for dev/prod differences
## Loading Configuration
Configs are automatically loaded but you can validate:
```typescript
// lib/config/validate-config.ts
import * as z from 'zod';
const ConfigSchema = z.object({
apiUrl: z.string().url(),
enableFeatureX: z.boolean(),
});
export function validateConfig(config: unknown) {
return ConfigSchema.parse(config);
}
```
Für den Versand von Newslettern und Benachrichtigungen konfigurieren Sie unter **Einstellungen → E-Mail** Ihre Absenderdaten.

View File

@@ -1,30 +1,50 @@
---
title: "Introduction"
description: "Makerkit is a SaaS Starter Kit that helps you build a SaaS. Learn how to get started with Makerkit."
title: "Einführung"
description: "MYeasyCMS ist die webbasierte Vereins- und Verbandsverwaltung von Com.BISS GmbH. Seit 2004 unterstützt die Plattform Vereine, Verbände und Bildungseinrichtungen in ganz Bayern."
publishedAt: 2024-04-11
order: 0
status: "published"
---
> **Note:** This is mock/placeholder content for demonstration purposes.
MYeasyCMS ist die webbasierte Verwaltungsplattform für Vereine, Verbände und Organisationen. Entwickelt von der Com.BISS GmbH in Schierling bei Regensburg, wird die Software seit 2004 kontinuierlich weiterentwickelt und betreut über 69.000 Mitglieder in mehr als 90 angebundenen Vereinen.
Makerkit is a SaaS Starter Kit that helps you build a SaaS. It provides you with a set of tools and best practices to help you build a SaaS quickly and efficiently.
## Für wen ist MYeasyCMS?
## Getting started
- **Vereine** — Sportvereine, Fischereivereine, Kulturvereine und andere gemeinnützige Organisationen
- **Verbände** — Bezirksfischereiverbände, Kreisverbände und Dachorganisationen mit Untergliedern
- **Bildungseinrichtungen** — Volkshochschulen und andere Kursanbieter
- **Kommunale Einrichtungen** — Städte und Gemeinden mit Veranstaltungs- und Raumbuchungsverwaltung
To get started follow these steps:
## Module im Überblick
1. Sign up for an account on the [website](#).
2. Create a new project by clicking on the "New Project" button.
3. Choose a template for your project. Makerkit provides several templates to help you get started quickly.
MYeasyCMS ist modular aufgebaut. Sie aktivieren nur die Module, die Ihr Verein tatsächlich braucht:
## Features
| Modul | Funktion |
|-------|----------|
| **Mitgliederverwaltung** | Stammdaten, Abteilungen, Mandate, Ausweise, Statistiken |
| **Kursverwaltung** | Kurse, Dozenten, Teilnehmer, Kalender, Online-Anmeldung |
| **Veranstaltungen** | Eventplanung, Anmeldungen, Ferienpässe |
| **Raumbuchungen** | Reservierungen, Kalender, Schlüsselverwaltung |
| **Finanzen & SEPA** | Beiträge, Rechnungen, SEPA-Lastschrift, Kontenverwaltung |
| **Newsletter** | E-Mail-Versand, Vorlagen, Abonnentenverwaltung |
| **Dokumente** | Ausweise, Rechnungen, Briefe, Etiketten aus Vorlagen |
| **Site-Builder** | Vereinswebsite mit Drag-and-Drop-Editor |
| **Individuelle Module** | Eigene Datenmodule für Gewässer, Fangbücher, etc. |
| **Fischereiverwaltung** | Gewässer, Besatzmaßnahmen, Fangbücher, Erlaubnisscheine |
| **Sitzungsprotokolle** | Protokolle, Tagesordnungspunkte, Aufgaben |
| **Verbandsverwaltung** | Hierarchien, Unterglieder, vereinsübergreifende Suche |
Makerkit provides the following features to help you build a SaaS:
1. User authentication
2. User management
3. Subscription management
4. Billing and payments
5. Super Admin
## Technische Grundlagen
... and many more!
- **Webbasiert** — Zugriff über jeden modernen Browser (Chrome, Firefox, Safari, Edge)
- **Responsive** — Funktioniert auf Desktop, Tablet und Smartphone
- **Server in Deutschland** — Hosting in deutschen Rechenzentren
- **DSGVO-konform** — Rollenbasierte Zugriffsrechte, verschlüsselte Datenübertragung
## Support
Bei Fragen erreichen Sie das Com.BISS-Team direkt:
- **Telefon:** 09451 9499-09
- **E-Mail:** info@combiss.de
- **Persönlich:** Kein anonymes Ticketsystem — Sie sprechen direkt mit den Menschen, die Ihre Software entwickeln.

View File

@@ -1,23 +1,46 @@
---
title: "Installing Dependencies"
description: "Learn how to install dependencies for your project."
title: "Abhängigkeiten installieren"
description: "Voraussetzungen und Systemanforderungen für die Nutzung von MYeasyCMS."
publishedAt: 2024-04-11
order: 1
order: 4
status: "published"
---
> **Note:** This is mock/placeholder content for demonstration purposes.
MYeasyCMS ist eine vollständig webbasierte Anwendung. Es muss keine Software installiert werden.
To install dependencies in your project, please install `pnpm` by running the following command:
## Systemanforderungen
```bash
npm install -g pnpm
```
### Browser
Next, navigate to your project directory and run the following command:
MYeasyCMS funktioniert mit allen modernen Browsern:
```bash
pnpm install
```
- **Google Chrome** (empfohlen) — ab Version 90
- **Mozilla Firefox** — ab Version 90
- **Microsoft Edge** — ab Version 90
- **Apple Safari** — ab Version 14
This will install all the dependencies listed in your `package.json` file.
### Internetverbindung
Eine stabile Internetverbindung ist erforderlich. MYeasyCMS funktioniert auch bei langsameren Verbindungen, empfohlen wird jedoch eine Bandbreite von mindestens 2 Mbit/s.
### Endgeräte
- **Desktop-Computer** oder Laptop (empfohlen für die tägliche Arbeit)
- **Tablet** (geeignet für Kursverwaltung und Veranstaltungen vor Ort)
- **Smartphone** (geeignet für schnelle Abfragen und Statusprüfungen)
## Keine Installation nötig
Anders als klassische Vereinssoftware muss MYeasyCMS nicht auf einzelnen Rechnern installiert werden:
- Kein Download oder Setup-Programm
- Keine lokale Datenbank
- Keine manuellen Updates — neue Funktionen stehen automatisch zur Verfügung
- Kein IT-Aufwand für den Verein
## Zugangsdaten
Die Zugangsdaten erhalten Sie vom Com.BISS-Team nach der Einrichtung Ihres Vereins-Accounts. Bei Fragen wenden Sie sich an:
- **Telefon:** 09451 9499-09
- **E-Mail:** info@combiss.de

View File

@@ -1,247 +1,54 @@
---
title: "Project Structure"
description: "Understanding the monorepo structure and organization."
title: "Projektstruktur"
description: "Überblick über die Struktur von MYeasyCMS — Module, Pakete und Konfiguration."
publishedAt: 2024-04-11
order: 3
status: "published"
---
> **Note:** This is mock/placeholder content for demonstration purposes.
MYeasyCMS ist als modulare Plattform aufgebaut. Jedes Funktionsmodul kann unabhängig aktiviert oder deaktiviert werden.
Learn how the codebase is organized and where to find things.
## Modulstruktur
## Monorepo Overview
Die Plattform gliedert sich in folgende Bereiche:
This project uses Turborepo to manage a monorepo with multiple apps and packages.
### Kernmodule
```
project-root/
├── apps/ # Applications
│ ├── web/ # Main Next.js app
│ ├── e2e/ # Playwright E2E tests
│ └── dev-tool/ # Development utilities
├── packages/ # Shared packages
│ ├── features/ # Feature packages
│ ├── ui/ # UI components
│ ├── supabase/ # Supabase utilities
│ └── billing/ # Billing integrations
├── tooling/ # Development tools
├── supabase/ # Database schema & migrations
└── docs/ # Documentation
```
Diese Module bilden das Fundament der Vereinsverwaltung:
## Main Application (`apps/web`)
- **Mitgliederverwaltung** — Stammdaten, Abteilungen, Mandate
- **Finanzen** — Beiträge, SEPA, Rechnungen
- **Benutzer- und Rechteverwaltung** — Rollen, Zugriffsrechte
The primary Next.js application:
### Erweiterte Module
```
apps/web/
├── app/ # Next.js App Router
│ ├── (marketing)/ # Public pages
│ ├── (auth)/ # Authentication
│ ├── home/ # Main application
│ │ ├── (user)/ # Personal account
│ │ └── [account]/ # Team accounts
│ ├── admin/ # Admin panel
│ └── api/ # API routes
├── components/ # Shared components
├── config/ # Configuration files
├── lib/ # Utility functions
├── public/ # Static assets
└── supabase/ # Supabase setup
```
Diese Module erweitern die Plattform um spezifische Funktionen:
## Route Structure
- **Kursverwaltung** — Kursplanung mit Dozenten und Teilnehmern
- **Veranstaltungen** — Eventmanagement mit Registrierungen
- **Raumbuchungen** — Ressourcenverwaltung und Kalender
- **Newsletter** — E-Mail-Kommunikation
- **Dokumente** — Vorlagen und Seriendruckfunktionen
- **Site-Builder** — Vereinswebsite
### Marketing Routes (`(marketing)`)
### Spezialmodule
Public-facing pages:
Module für spezifische Vereinstypen:
```
app/(marketing)/
├── page.tsx # Landing page
├── pricing/ # Pricing page
├── blog/ # Blog
└── docs/ # Documentation
```
- **Fischereiverwaltung** — Gewässer, Besatz, Fangbücher, Erlaubnisscheine
- **Sitzungsprotokolle** — Protokolle, Beschlüsse, Aufgaben
- **Verbandsverwaltung** — Hierarchien, Unterglieder, vereinsübergreifende Verwaltung
### Auth Routes (`(auth)`)
### Individuelle Module
Authentication pages:
Mit dem Modul-Baukasten können Sie eigene Datenmodule erstellen — ohne Programmierung. Definieren Sie Felder, Formulare und Ansichten für beliebige Vereinsdaten.
```
app/(auth)/
├── sign-in/
├── sign-up/
├── password-reset/
└── verify/
```
## Einstellungen
### Application Routes (`home`)
Unter **Einstellungen** konfigurieren Sie:
Main application:
```
app/home/
├── (user)/ # Personal account context
│ ├── page.tsx # Personal dashboard
│ ├── settings/ # User settings
│ └── projects/ # Personal projects
└── [account]/ # Team account context
├── page.tsx # Team dashboard
├── settings/ # Team settings
├── projects/ # Team projects
└── members/ # Team members
```
## Packages Structure
### Feature Packages (`packages/features/`)
Modular features:
```
packages/features/
├── accounts/ # Account management
├── auth/ # Authentication
├── team-accounts/ # Team features
├── billing/ # Billing & subscriptions
├── admin/ # Admin features
└── notifications/ # Notification system
```
### UI Package (`packages/ui/`)
Shared UI components:
```
packages/ui/
└── src/
├── components/ # Shadcn UI components
│ ├── button.tsx
│ ├── input.tsx
│ ├── dialog.tsx
│ └── ...
└── utils/ # UI utilities
```
### Supabase Package (`packages/supabase/`)
Database utilities:
```
packages/supabase/
├── schema/ # Declarative schemas
│ ├── accounts.schema.ts
│ ├── auth.schema.ts
│ └── ...
├── src/
│ ├── clients/ # Supabase clients
│ ├── hooks/ # React hooks
│ └── middleware/ # Auth middleware
└── migrations/ # SQL migrations
```
## Configuration Files
### Root Level
```
project-root/
├── package.json # Root package.json
├── turbo.json # Turborepo config
├── pnpm-workspace.yaml # PNPM workspace
└── tsconfig.json # Base TypeScript config
```
### Application Level
```
apps/web/
├── next.config.js # Next.js configuration
├── tailwind.config.ts # Tailwind CSS
├── tsconfig.json # TypeScript config
└── .env.local # Environment variables
```
### Feature Configuration
```
apps/web/config/
├── paths.config.ts # Route paths
├── billing.config.ts # Billing settings
├── feature-flags.config.ts # Feature flags
├── personal-account-navigation.config.tsx
└── team-account-navigation.config.tsx
```
## Naming Conventions
### Files
- **Pages**: `page.tsx` (Next.js convention)
- **Layouts**: `layout.tsx`
- **Components**: `kebab-case.tsx`
- **Utilities**: `kebab-case.ts`
- **Types**: `types.ts` or `component-name.types.ts`
### Directories
- **Route segments**: `[param]` for dynamic
- **Route groups**: `(group)` for organization
- **Private folders**: `_components`, `_lib`
- **Parallel routes**: `@folder`
### Code Organization
```
feature/
├── page.tsx # Route page
├── layout.tsx # Route layout
├── loading.tsx # Loading state
├── error.tsx # Error boundary
├── _components/ # Private components
│ ├── feature-list.tsx
│ └── feature-form.tsx
└── _lib/ # Private utilities
├── server/ # Server-side code
│ ├── loaders.ts
│ └── actions.ts
└── schemas/ # Validation schemas
└── feature.schema.ts
```
## Import Paths
Use TypeScript path aliases:
```typescript
// Absolute imports from packages
import { Button } from '@kit/ui/button';
import { createClient } from '@kit/supabase/server-client';
// Relative imports within app
import { FeatureList } from './_components/feature-list';
import { loadData } from './_lib/server/loaders';
```
## Best Practices
1. **Keep route-specific code private** - Use `_components` and `_lib`
2. **Share reusable code** - Extract to packages
3. **Collocate related files** - Keep files near where they're used
4. **Use consistent naming** - Follow established patterns
5. **Organize by feature** - Not by file type
## Finding Your Way
| Looking for... | Location |
|----------------|----------|
| UI Components | `packages/ui/src/components/` |
| Database Schema | `packages/supabase/schema/` |
| API Routes | `apps/web/app/api/` |
| Auth Logic | `packages/features/auth/` |
| Billing Code | `packages/features/billing/` |
| Team Features | `packages/features/team-accounts/` |
| Config Files | `apps/web/config/` |
| Types | `*.types.ts` files throughout |
- Vereinsstammdaten und Logo
- Benutzer und Rollen
- Modulaktivierung
- E-Mail-Einstellungen
- SEPA-Konfiguration

View File

@@ -1,133 +1,59 @@
---
title: "Quick Start"
description: "Get your application running in minutes with this quick start guide."
title: "Schnellstart"
description: "In wenigen Schritten mit MYeasyCMS loslegen — Testzugang einrichten, Module aktivieren und die erste Mitgliederliste importieren."
publishedAt: 2024-04-11
order: 2
order: 1
status: "published"
---
> **Note:** This is mock/placeholder content for demonstration purposes.
Dieser Schnellstart-Guide führt Sie durch die ersten Schritte mit MYeasyCMS.
Get your development environment up and running quickly.
## 1. Testzugang anfordern
## Prerequisites
Fordern Sie einen kostenlosen Testzugang an. Das Team von Com.BISS richtet Ihren Vereins-Account ein und gibt Ihnen eine persönliche Einführung.
Before you begin, ensure you have:
- **Node.js** 18.x or higher
- **pnpm** 8.x or higher
- **Git** for version control
- A **Supabase** account (free tier works great)
- **Online:** Über das Kontaktformular auf der Website
- **Telefon:** 09451 9499-09
- **E-Mail:** info@combiss.de
## Step 1: Clone the Repository
## 2. Anmelden
```bash
git clone https://github.com/yourorg/yourapp.git
cd yourapp
```
Nach der Einrichtung erhalten Sie Ihre Zugangsdaten per E-Mail. Melden Sie sich unter der bereitgestellten URL an. Beim ersten Login werden Sie aufgefordert, Ihr Passwort zu ändern.
## Step 2: Install Dependencies
## 3. Module aktivieren
```bash
pnpm install
```
Unter **Einstellungen → Module** sehen Sie alle verfügbaren Module. Aktivieren Sie die Module, die Ihr Verein benötigt:
This will install all required dependencies across the monorepo.
- **Mitgliederverwaltung** — Fast immer der erste Schritt
- **Finanzen & SEPA** — Wenn Sie Beiträge per Lastschrift einziehen
- **Kursverwaltung** — Für Vereine mit Kursangebot
- **Veranstaltungen** — Für Eventplanung
## Step 3: Set Up Environment Variables
Nicht benötigte Module können jederzeit aktiviert oder deaktiviert werden.
Copy the example environment file:
## 4. Mitglieder importieren
```bash
cp apps/web/.env.example apps/web/.env.local
```
Unter **Mitglieder → Import** können Sie bestehende Mitgliederlisten hochladen:
Update the following variables:
1. Laden Sie die Importvorlage als Excel-Datei herunter
2. Tragen Sie Ihre Mitgliederdaten in die Vorlage ein
3. Laden Sie die ausgefüllte Datei hoch
4. Prüfen Sie die Zuordnung der Spalten
5. Starten Sie den Import
```bash
# Supabase Configuration
NEXT_PUBLIC_SUPABASE_URL=http://localhost:54321
NEXT_PUBLIC_SUPABASE_ANON_KEY=your-anon-key-here
SUPABASE_SERVICE_ROLE_KEY=your-service-role-key-here
Das System zeigt Ihnen eine Vorschau und weist auf mögliche Probleme hin (fehlende Pflichtfelder, doppelte Einträge).
# Application
NEXT_PUBLIC_SITE_URL=http://localhost:3000
```
## 5. Team einladen
## Step 4: Start Supabase
Unter **Einstellungen → Mitarbeiter** können Sie weitere Benutzer einladen. Vergeben Sie Rollen, um den Zugriff zu steuern:
Start your local Supabase instance:
- **Administrator** — Vollzugriff auf alle Module und Einstellungen
- **Kassenwart** — Zugriff auf Finanzen, Beiträge und Mitgliederdaten
- **Kursleiter** — Zugriff auf Kursverwaltung und Teilnehmer
- **Schriftführer** — Zugriff auf Protokolle und Dokumente
```bash
pnpm supabase:web:start
```
## Nächste Schritte
This will:
- Start PostgreSQL database
- Start Supabase Studio (localhost:54323)
- Apply all migrations
- Seed initial data
## Step 5: Start Development Server
```bash
pnpm dev
```
Your application will be available at:
- **App**: http://localhost:3000
- **Supabase Studio**: http://localhost:54323
- **Email Testing**: http://localhost:54324
## Step 6: Create Your First User
1. Navigate to http://localhost:3000/auth/sign-up
2. Enter your email and password
3. Check http://localhost:54324 for the confirmation email
4. Click the confirmation link
5. You're ready to go!
## Next Steps
Now that your app is running:
1. **Explore the Dashboard** - Check out the main features
2. **Review the Code** - Familiarize yourself with the structure
3. **Read the Docs** - Learn about key concepts
4. **Build Your Feature** - Start customizing
## Common Issues
### Port Already in Use
If port 3000 is already in use:
```bash
# Find and kill the process
lsof -i :3000
kill -9 <PID>
```
### Supabase Won't Start
Try resetting Supabase:
```bash
pnpm supabase:web:stop
docker system prune -a # Clean Docker
pnpm supabase:web:start
```
### Database Connection Error
Ensure Docker is running and restart Supabase:
```bash
docker ps # Check Docker is running
pnpm supabase:web:reset
```
## What's Next?
- Learn about the [project structure](/docs/getting-started/project-structure)
- Understand [configuration options](/docs/getting-started/configuration)
- Follow [best practices](/docs/development/workflow)
- [Module konfigurieren](/docs/getting-started/configuration) — Passen Sie die Module an Ihren Verein an
- [Beiträge einrichten](/docs/features/features) — SEPA-Mandate und Beitragskategorien definieren
- [Website erstellen](/docs/features/features) — Vereinswebsite mit dem Site-Builder aufbauen