A modern web application that integrates with Google Calendar to help manage and track schedules and events.
Check out the demo of the Calendar app:
- 🔐 Google OAuth2.0 Authentication
- 📅 Google Calendar Integration
- 📱 Responsive Design
- 🗓️ Calendar View with Event Management
- 👤 User Profile Management
├── frontend/ # Frontend React application
│ ├── src/
│ │ ├── components/ # Reusable React components
│ │ ├── pages/ # Page components
│ │ └── App.jsx # Main application component
│ ├── .env # Frontend environment variables
│ └── package.json # Frontend dependencies
│
└── backend/ # Backend Node.js application
├── api/ # API routes and controllers
│ ├── auth.js # Authentication endpoints
│ └── calendar.js # Calendar-related endpoints
├── .env # Backend environment variables
├── index.js # Server entry point
└── package.json # Backend dependencies
- React.js
- React Router
- Google Calendar API
- Modern UI Components
- Node.js
- Express.js
- Google OAuth2.0
- Cookie-based Authentication
Make sure you have the following installed:
- Node.js (v14 or higher)
- npm or yarn
- Google Cloud Console Project with Calendar API enabled
- Google OAuth2.0 credentials
GOOGLE_CLIENT_ID=your_client_id
GOOGLE_CLIENT_SECRET=your_client_secret
PORT=3000
NODE_ENV=development
VITE_GOOGLE_CLIENT_ID=your_client_id
VITE_API_URL=http://localhost:3000
-
Clone the repository:
git clone https://github.com/harsh-791/Calendly cd Calendly
-
Install Backend Dependencies:
cd backend npm install
-
Install Frontend Dependencies:
cd frontend npm install
-
Start the Backend Server:
cd backend npm run dev
-
Start the Frontend Development Server:
cd frontend npm run dev
The application should now be running at:
- Frontend: http://localhost:5173
- Backend: http://localhost:3000
- Go to the Google Cloud Console
- Create a new project or select an existing one.
- Enable the Google Calendar API.
- Configure the OAuth consent screen.
- Create OAuth 2.0 credentials (Client ID and Client Secret).
- Add authorized JavaScript origins and redirect URIs.
- Copy the credentials to your
.env
files.