Skip to content

AradhyaTiwari10/Schedulo

Repository files navigation

🗓️ Schedulo

Schedulo Banner

Next.js React JavaScript Tailwind CSS Prisma PostgreSQL

A modern scheduling platform that helps professionals manage their time effectively and streamline meeting bookings.

Features Tech Stack Getting Started Project Structure Environment Variables API Routes

✨ Features

🔐 Authentication & Authorization
  • Secure user authentication with Clerk
  • Role-based access control
  • Protected routes and API endpoints
📅 Event Management
  • Create and customize event types
  • Set duration and availability
  • Private/public event visibility
  • Google Calendar integration
🕒 Availability Management
  • Set weekly availability
  • Custom time slots
  • Buffer time between meetings
  • Timezone support
📱 Booking System
  • Custom booking links
  • Automated scheduling
  • Email notifications
  • Google Meet integration
📊 Dashboard
  • Overview of upcoming meetings
  • Meeting history
  • Analytics and insights
  • Quick actions

🛠️ Tech Stack

Frontend

Category Technologies
Framework Next.js 14 (App Router)
UI Library React 18
Language JavaScript (ES6+)
Styling Tailwind CSS
Components Radix UI, Shadcn/ui
State Management React Hooks
Form Handling React Hook Form + Zod
Icons Lucide Icons

Backend

Category Technologies
Database Neon DB
Database type PostgreSQL
ORM Prisma 6.7
Authentication Clerk
API Routes Next.js API Routes
Calendar Integration Google Calendar API

Development Tools

Category Tools
Package Manager npm
Code Quality ESLint
Version Control Git
Deployment Vercel

🚀 Getting Started

Prerequisites

  • Node.js 18+
  • PostgreSQL database
  • Clerk account
  • Google Cloud Platform account
  • Neon DB

Installation

  1. Clone the repository

    git clone https://github.com/AradhyaTiwari10/Schedulo.git
    cd Schedulo
  2. Install dependencies

    npm install
  3. Set up environment variables

    cp .env.example .env

    Fill in your environment variables (see Environment Variables)

  4. Set up the database

    npx prisma generate
    npx prisma db push
  5. Run the development server

    npm run dev

📁 Project Structure

Schedulo/
├── app/                    # Next.js app directory
│   ├── (main)/            # Main application routes
│   ├── api/               # API routes
│   └── layout.js          # Root layout
├── components/            # React components
│   ├── ui/               # UI components
│   └── shared/           # Shared components
├── lib/                  # Utility functions
├── hooks/               # Custom React hooks
├── actions/            # Server actions
├── prisma/             # Database schema and migrations
├── public/             # Static assets
└── styles/             # Global styles

🔑 Environment Variables

# Database
DATABASE_URL="postgresql://..."

# Authentication
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=...
CLERK_SECRET_KEY=...

# Other
NEXT_PUBLIC_CLERK_SIGN_IN_URL=/sign-in
NEXT_PUBLIC_CLERK_SIGN_UP_URL=/sign-up

📝 API Routes

Method Endpoint Description
POST /api/events Create new event
GET /api/events List user's events
POST /api/bookings Create booking
GET /api/bookings List user's bookings
PUT /api/availability Update availability

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors