Time-Cal is a SaaS platform designed for professionals to seamlessly manage schedules, bookings, and client interactions. It features Google Calendar integration, custom availability settings, and automated notifications.
- Profile & Availability: customized profiles and 5-day availability scheduling.
- Google Calendar Sync: Two-way synchronization for bookings.
- Public Booking System: Shareable unique links for clients to book appointments without authentication.
- Notifications: Automated email (Nodemailer) and real-time browser notifications.
- Secure Authentication: Powered by Firebase (Email/Password & Google Sign-In).
- Frontend: Next.js 14 (App Router), React, Tailwind CSS, shadcn/ui
- Backend: Next.js API Routes, MongoDB (via Mongoose)
- Services: Firebase Auth, Google Calendar API, Cloudinary, Nodemailer
- Node.js v18+
- MongoDB (Local or Atlas)
- Accounts for: Firebase, Google Cloud, Cloudinary, and an SMTP provider (e.g., Gmail).
-
Clone the repository
git clone https://github.com/Odunsih1/time-cal.git cd time-cal -
Install dependencies
npm install
-
Configure Environment Variables Create a
.env.localfile with the following keys:# Firebase FIREBASE_API_KEY=... FIREBASE_AUTH_DOMAIN=... FIREBASE_PROJECT_ID=... FIREBASE_STORAGE_BUCKET=... FIREBASE_MESSAGING_SENDER_ID=... FIREBASE_APP_ID=... # Firebase Admin FIREBASE_ADMIN_PROJECT_ID=... FIREBASE_ADMIN_PRIVATE_KEY=... FIREBASE_ADMIN_CLIENT_EMAIL=... # MongoDB MONGODB_URI=... # Google Calendar GOOGLE_CLIENT_ID=... GOOGLE_CLIENT_SECRET=... NEXT_PUBLIC_GOOGLE_CLIENT_ID=... NEXT_PUBLIC_GOOGLE_CLIENT_SECRET=... # Cloudinary CLOUDINARY_CLOUD_NAME=... CLOUDINARY_API_KEY=... CLOUDINARY_API_SECRET=... # Nodemailer EMAIL_HOST=... EMAIL_PORT=... EMAIL_USER=... EMAIL_PASS=... EMAIL_FROM=... # App NEXTAUTH_URL=http://localhost:3000
-
Run the application
npm run dev
This project is licensed under the MIT License. For support, contact henryodunsi@gmail.com.