A Calendar with seasonal backgrounds, events, holidays, weather, weathers and ability to upload events from just an image.
- Node.js v20+
Gemini API Key
: For reading dates from images (Optional)Mongo DB
: For saving events and login data (Optional)SMTP Server
: For sending events notifications
- Without optional requirements, your calendar will still work but will have a lot less features
- Mail wasn't tested, use it at your own risk
To install and run the project locally, follow these steps:
- Clone the repository:
git clone https://github.com/itzshubhamdev/seasonal-calendar.git
- Navigate to the project directory:
cd seasonal-calendar
- Install dependencies:
npm install
-
Configure the Environment Variables
-
Start the application:
npm run dev
- Clone the repository:
git clone https://github.com/itzshubhamdev/seasonal-calendar.git
- Navigate to the project directory:
cd seasonal-calendar
- Install dependencies:
npm install
-
Configure the Environment Variables
-
Build the client side code:
npm run build
- Serve using
npm start
- GEMINI_KEY: Gemini Api Key for reading images
- MONGODB_URI: MongoDB connection string for storing events and user data
- AUTH_SECRET: Random string, you can use https://generate-secret.vercel.app/32
- MAIL_HOST: SMTP Host
- MAIL_PORT: SMTP Port
- MAIL_USER: SMTP User
- MAIL_PASS: SMTP Password
Download holidays using Abstract API
- Configure
index.ts
- Run
npx tsx index.ts
to download holidays - If anything goes wrong, there should a backup in backups/
Once the application is running, you can access the calendar through your web browser at http://localhost:3000
.