A modern, production-ready scheduling platform with Three.js animations and parallax effects.
npm installAdditional TypeScript types (optional but recommended):
npm install -D @types/threeYour .env.local should have:
NEXT_PUBLIC_APPWRITE_PROJECT_ID=bookr-niv
NEXT_PUBLIC_APPWRITE_PROJECT_NAME=bookr
NEXT_PUBLIC_APPWRITE_ENDPOINT=https://sgp.cloud.appwrite.io/v1
NEXT_PUBLIC_APPWRITE_DATABASE_ID=bookr-db
NEXT_PUBLIC_APPWRITE_USERS_COLLECTION_ID=users
NEXT_PUBLIC_APPWRITE_EVENT_TYPES_COLLECTION_ID=event_types
NEXT_PUBLIC_APPWRITE_AVAILABILITY_COLLECTION_ID=availability
NEXT_PUBLIC_APPWRITE_BOOKINGS_COLLECTION_ID=bookings
NEXT_PUBLIC_APPWRITE_AVATARS_BUCKET_ID=avatarsUse the appwrite.config.json file in your project root to create collections. This file contains all the schema definitions.
Required Collections:
users- User profilesevent_types- Meeting types (30min, 60min, etc.)availability- Weekly schedulesbookings- Guest reservations
Required Bucket:
avatars- User profile pictures
npm run dev- 🎨 Three.js Animation - Floating particles background
- 📜 Parallax Scrolling - Smooth scroll effects
- 📱 Fully Responsive - Mobile-first design
- 🗓️ Event Types - Create custom meeting types
- ⏰ Availability - Weekly schedule editor
- 📅 Public Booking - Share booking links
- 👥 Admin Dashboard - Full CRUD management
src/
├── app/
│ ├── page.tsx # Landing (Three.js + Parallax)
│ ├── auth/ # Login, Signup
│ ├── dashboard/ # User dashboard
│ ├── admin/ # Admin dashboard
│ └── book/[username]/ # Public booking
├── components/
│ ├── ui/ # shadcn/ui components
│ ├── dashboard/ # Sidebar, Layout
│ ├── three/ # Three.js background
│ └── animations/ # Parallax components
└── lib/
├── appwrite/ # Backend services
└── hooks/ # Auth context
| Technology | Purpose |
|---|---|
| Next.js 16 | App Router |
| TypeScript | Type safety |
| Tailwind CSS | Styling |
| Three.js | 3D animations |
| @react-three/fiber | React Three.js |
| Framer Motion | Animations |
| Radix UI | UI primitives |
| Appwrite | Backend |
| Route | Description |
|---|---|
/ |
Marketing landing page |
/auth/login |
User login |
/auth/signup |
User registration |
/dashboard |
User dashboard home |
/dashboard/event-types |
Manage event types |
/dashboard/availability |
Weekly schedule |
/dashboard/bookings |
View bookings |
/dashboard/settings |
Profile settings |
/admin |
Admin overview |
/book/[username] |
Public booking page |
The UI matches the Schedulr Pro design with:
- Cream background (#FAFAF8)
- Yellow primary color (#FBBF24)
- Rounded cards with subtle shadows
- Clean sidebar navigation
- Status badges with dot indicators
MIT