https://github.com/somnath-chattaraj/zapier
This is a scalable and modular Zapier clone designed to handle webhooks, email notifications, and Solana blockchain integration. Built with modern technologies, the platform ensures robust performance, efficient task automation, and seamless integration capabilities.
https://github.com/somnath-chattaraj/zapier
expressjs kafka nextjs nodejs postgresql solana
Last synced: about 2 months ago
JSON representation
This is a scalable and modular Zapier clone designed to handle webhooks, email notifications, and Solana blockchain integration. Built with modern technologies, the platform ensures robust performance, efficient task automation, and seamless integration capabilities.
- Host: GitHub
- URL: https://github.com/somnath-chattaraj/zapier
- Owner: Somnath-Chattaraj
- Created: 2024-07-13T15:21:32.000Z (10 months ago)
- Default Branch: master
- Last Pushed: 2024-11-25T10:00:56.000Z (6 months ago)
- Last Synced: 2025-02-01T13:44:44.784Z (4 months ago)
- Topics: expressjs, kafka, nextjs, nodejs, postgresql, solana
- Language: TypeScript
- Homepage:
- Size: 187 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Zapier Clone
[](https://github.com/Somnath-Chattaraj/Zapier/releases)
[](https://github.com/Somnath-Chattaraj/Zapier/issues)
[](https://github.com/Somnath-Chattaraj/Zapier/network)
[](https://github.com/Somnath-Chattaraj/Zapier/stargazers)
[](https://github.com/Somnath-Chattaraj/Zapier/blob/master/LICENSE)
[](http://makeapullrequest.com)
[](https://github.com/psf/black)
### **Overview**This is a scalable and modular Zapier clone designed to handle webhooks, email notifications, and Solana blockchain integration. Built with modern technologies, the platform ensures robust performance, efficient task automation, and seamless integration capabilities.
### **Features**
- **Webhooks**: Trigger events and actions programmatically.
- **Email Notifications**: Automate sending and receiving emails.
- **Solana Integration**: Utilize Solana blockchain for decentralized operations.
- **Scalable Architecture**: Powered by Kafka for message streaming.
- **Full-Stack Solution**: Built using Next.js, Node.js, and Express for both frontend and backend functionalities.
- **Database Management**: Prisma ORM integrated with PostgreSQL for efficient data handling.---
### **Tech Stack**- **Frontend** : Next.js
- **Backend** : Node.js, Express
- **Database** : PostgresSQL with Prisma
- **Messaging** : Kafka
- **Blockchain** : Solana---
### **System Design**
---
## **Getting Started**
### Prerequisites
Ensure the following tools are installed on your system:
- Docker (for containerized environment)
- Node.js (v18 or later)
- Kafka (for message brokering)### Clone Respositry
```
git clone https://github.com/Somnath-Chattaraj/Zapier.git
cd Zapier
```### Set Up Environment Variables
Create a `.env` file in every location where a `.env.example` file is present. Copy the contents of the corresponding `.env.example` file and update the placeholder values with your actual configuration.
### Start the project
1. **Install Dependencies in every folder**:
```
cd frontend
npm i
cd ../primary_backend
npm i
cd ../hooks
npm i
cd ../worker
npm i
cd ../processor
npm i
```
2. **Start Kafka**:
If using docker, start kafka with
```
docker run -p 9092:9092 -d apache/kafka:3.9.0
```
Then, access the Kafka container:
```
docker exec -it /bin/bash
```
Create a topic named zap-events:```
bin/kafka-topics.sh --create --topic zap-events --bootstrap-server localhost:9092
```3. **Run Database Migrations**:
Go to every folder and migrate the database
```
cd primary_backend
npx prisma migrate dev
cd ../hooks
npx prisma migrate dev
cd ../worker
npx prisma migrate dev
cd ../processor
npx prisma migrate dev
```4. **Run the Application**
Run the frontend
```
cd frontend
npm run dev
```Run the primary backend
```
cd primary_backend
tsc -b
node dist/index.js
```Run the processor
```
cd processor
tsc -b
node dist/index.js
```Run the worker
```
cd worker
tsc -b
node dist/index.js
```Run the hooks
```
cd hooks
tsc -b
node dist/index.js
```5. **Access the application at `http://localhost:3000`**.
## Usage
- **Webhooks**: Configure webhook URLs and trigger actions through the dashboard.
- **Emails**: Set up email templates and automate notifications.
- **Blockchain**: Utilize Solana integration for blockchain-specific triggers and workflows.