IgniteCall is a scheduling application designed to simplify the process of booking and managing appointments. Users can reserve a username, complete their profile using Google authentication, and set their availability for others to schedule meetings.
- User registration with username reservation and Google account linkage.
- Profile completion with availability preferences.
- Dynamic calendar with clickable dates to view available time slots.
- Appointment booking with confirmation and detailed event information (name, email, notes).
- Automatic event creation in Google Calendar with a meeting link.
- Next.js
- React.js
- Stitches (CSS-in-JS)
- React Hook Form
- Prisma ORM
- Axios
- React Query
- Day.js
- NextAuth.js
- Next SEO
- Nookies
- Phosphor React Icons
- Zod
- PostgreSQL database (with Docker for local development)
- Google APIs
Follow these steps to set up the project locally.
Ensure you have the following installed:
- Node.js (latest LTS version recommended)
- npm or Yarn
- Docker (for local PostgreSQL database)
Create a .env
file in the root directory and include the following variables:
# Database connection string for Prisma ORM
DATABASE_URL="" # Example: "postgresql://user:password@host:port/database_name"
# Direct connection string for specific database operations
DATABASE_DIRECT_URL="" # Same format as DATABASE_URL
# Google oAuth credentials
GOOGLE_CLIENT_ID="" # Client ID from Google Cloud Console
GOOGLE_CLIENT_SECRET="" # Client secret from Google Cloud Console
# Secret for NextAuth.js
NEXTAUTH_SECRET="" # Strong random string for securing session data
-
Clone the repository:
git clone https://github.com/your-username/IgniteCall.git
-
Navigate to the project directory:
cd IgniteCall
-
Install dependencies:
npm install # or yarn install
-
Set up the local database:
docker run --name postgres-ignitecall -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=docker -p 5432:5432 -d postgres
-
Run database migrations:
npx prisma migrate dev
-
Start the development server:
npm run dev # or yarn dev
- Open the application in your browser at
http://localhost:3000
. - Register with a username and connect your Google account.
- Configure your availability and share your calendar link with others.
- Manage and track appointments directly from your Google Calendar.