A modern scheduling platform that makes booking appointments effortless.
- 🔐 Secure Authentication - User management with Clerk
- 📊 Event Management - Create and manage booking events
- ⏰ Smart Scheduling - Set weekly availability with timezone support
- 🔄 Real-time Updates - Instant booking confirmations
- 📱 Responsive Design - Optimized for all devices
- Node.js 18+
- npm or yarn
- Neon PostgreSQL database
- Clerk account
-
Clone the repository
git clone https://github.com/yourusername/bookingtime.git cd bookingtime -
Install dependencies
npm install
-
Set up environment variables
cp .env.example .env.local
Fill in your environment variables:
DATABASE_URL=your_neon_database_url CLERK_SECRET_KEY=your_clerk_secret_key NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=your_clerk_publishable_key
-
Run database migrations
npm run db:migrate
-
Start the development server
npm run dev
- Framework: Next.js 15.2
- UI: Tailwind CSS, shadcn/ui
- State Management: React Hooks
- Forms: React Hook Form
- Runtime: Next.js App Router
- Database: Neon PostgreSQL
- ORM: Drizzle
- Authentication: Clerk
interface Event {
id: UUID
name: string
description?: string
durationInMinutes: number
clerkUserId: string
isActive: boolean
createdAt: Date
updatedAt: Date
}interface Schedule {
id: UUID
timezone: string
clerkUserId: string
createdAt: Date
updatedAt: Date
}GET /api/events- List user's eventsPOST /api/events- Create new eventPUT /api/events/:id- Update eventGET /api/schedule- Get user's schedulePOST /api/book- Book a time slot
# Development
npm run dev # Start development server
npm run build # Build for production
npm run start # Start production server
# Database
npm run db:generate # Generate migrations
npm run db:migrate # Run migrations
npm run db:studio # Open database UI
# Testing
npm run lint # Run ESLint- Connect your GitHub repository to Vercel
- Configure environment variables in Vercel dashboard
- Deploy with
git pushto main branch
Required variables for deployment:
DATABASE_URL
CLERK_SECRET_KEY
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Distributed under the MIT License. See LICENSE for more information.