Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/rakeshkanneeswaran/zapier
This project is a robust, microservices-based automation platform that replicates the core functionality of Zapier. It enables users to create automated workflows (Zaps) that respond to specific events (webhooks) by triggering predefined actions, such as sending emails.
https://github.com/rakeshkanneeswaran/zapier
apache-kafka docker eventqueue eventstreaming express microservices-architecture nextjs postgersql prisma-orm system-design
Last synced: about 1 month ago
JSON representation
This project is a robust, microservices-based automation platform that replicates the core functionality of Zapier. It enables users to create automated workflows (Zaps) that respond to specific events (webhooks) by triggering predefined actions, such as sending emails.
- Host: GitHub
- URL: https://github.com/rakeshkanneeswaran/zapier
- Owner: rakeshkanneeswaran
- Created: 2024-08-06T08:48:04.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2024-08-19T08:25:45.000Z (4 months ago)
- Last Synced: 2024-08-21T16:06:46.747Z (4 months ago)
- Topics: apache-kafka, docker, eventqueue, eventstreaming, express, microservices-architecture, nextjs, postgersql, prisma-orm, system-design
- Language: TypeScript
- Homepage:
- Size: 8.64 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Zapier
Zapier is a microservices-based automation platform replicating Zapier's core functionalities. It enables users to create automated workflows (Zaps) triggered by webhooks, performing actions like sending emails. The system features a scalable microservices architecture and an event-driven design.
## System Design Architecture
![Untitled-2024-07-26-0244](https://github.com/user-attachments/assets/14ac90db-f4ed-41e1-a05d-486943d724f9)
## Tech Stack
- **Apache Kafka:** Reliable event streaming.
- **Docker:** Consistent deployment environments.
- **Next.js:** React framework for frontend.
- **Express.js:** API handling and routing.
- **Prisma ORM:** Type-safe database access.
- **PostgreSQL:** Robust relational database.## Getting Started
To get started with AutomateX, follow these steps:
### Prerequisites
Ensure you have Docker installed on your machine. You can download Docker from [here](https://www.docker.com/products/docker-desktop).
### Running PostgreSQL and Apache Kafka with Docker
1. **Clone the repository:**
```bash
git clone https://github.com/rakeshkanneeswaranofficial/AutomateX.git
cd automatex
```2. **Start PostgreSQL:**
```bash
docker run -p 5432:5432 --name zapier_postgres -e POSTGRES_USER=automatex -e POSTGRES_PASSWORD=automatex -e POSTGRES_DB=automatex_db postgres:13
```3. **Start Apache Kafka:**
```bash
docker run --name zapier_kafka -p -d 9092:9092 apache/kafka:3.7.1
```4. **Get shell access to the Kafka container:**
```bash
docker ps
docker exec -it zapier_kafka /bin/bash
```5. **Create a Kafka topic:**
Inside the Kafka container:
```bash
cd /opt/kafka/bin
./kafka-topics.sh --create --topic zap-events --bootstrap-server localhost:9092
```### Installing Dependencies
Navigate to each service directory and install the required dependencies:
```bash
cd hookservice
npm installcd ../worker
npm installcd ../processor
npm installcd ../primarybackend
npm install
```### Starting the Services
To start each service, use the following commands:
- **Hook Service:**
```bash
cd hookservice
npm run start
```- **Worker Service:**
```bash
cd worker
npm run start
```- **Processor Service:**
```bash
cd processor
npm run start
```- **Primary Backend:**
```bash
cd primarybackend
npm run start
```### Running the Application
- **Frontend:**
Navigate to your frontend directory and start the frontend server:
```bash
cd frontend
npm run dev
```Feel free to adjust any paths or details according to your project's structure.