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.
- 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.
To get started with AutomateX, follow these steps:
Ensure you have Docker installed on your machine. You can download Docker from here.
-
Clone the repository:
git clone https://github.com/rakeshkanneeswaranofficial/AutomateX.git cd automatex
-
Start PostgreSQL:
docker run -p 5432:5432 --name zapier_postgres -e POSTGRES_USER=automatex -e POSTGRES_PASSWORD=automatex -e POSTGRES_DB=automatex_db postgres:13
-
Start Apache Kafka:
docker run --name zapier_kafka -p -d 9092:9092 apache/kafka:3.7.1
-
Get shell access to the Kafka container:
docker ps docker exec -it zapier_kafka /bin/bash
-
Create a Kafka topic:
Inside the Kafka container:
cd /opt/kafka/bin ./kafka-topics.sh --create --topic zap-events --bootstrap-server localhost:9092
Navigate to each service directory and install the required dependencies:
cd hookservice
npm install
cd ../worker
npm install
cd ../processor
npm install
cd ../primarybackend
npm install
To start each service, use the following commands:
-
Hook Service:
cd hookservice npm run start
-
Worker Service:
cd worker npm run start
-
Processor Service:
cd processor npm run start
-
Primary Backend:
cd primarybackend npm run start
-
Frontend:
Navigate to your frontend directory and start the frontend server:
cd frontend npm run dev
Feel free to adjust any paths or details according to your project's structure.