{"id":26536009,"url":"https://github.com/shreekar11/automate-workflow","last_synced_at":"2025-03-21T21:17:28.717Z","repository":{"id":271006778,"uuid":"912037776","full_name":"Shreekar11/Automate-Workflow","owner":"Shreekar11","description":"Workflow Automation enables seamless automation of your workflows. Users can effortlessly create workflows and configure them to the available trigger providers and multiple available actions with precision. Designed with a robust event-driven architecture, the application ensures reliable and asynchronous execution of actions upon each trigger.","archived":false,"fork":false,"pushed_at":"2025-03-21T17:59:47.000Z","size":1728,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-21T18:30:24.928Z","etag":null,"topics":["express","mvc-architecture","nextjs","nodejs","oops-in-typescript","postgresql","prisma","react-flow","redis","redis-queue-worker","typescript","webhook"],"latest_commit_sha":null,"homepage":"https://workflows-flax.vercel.app","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Shreekar11.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-01-04T14:19:50.000Z","updated_at":"2025-03-14T12:23:57.000Z","dependencies_parsed_at":"2025-02-04T18:30:17.969Z","dependency_job_id":"004f0ef3-0a56-4b15-bcef-0226e1b5d959","html_url":"https://github.com/Shreekar11/Automate-Workflow","commit_stats":null,"previous_names":["shreekar11/zapier","shreekar11/automate-workflow"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Shreekar11%2FAutomate-Workflow","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Shreekar11%2FAutomate-Workflow/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Shreekar11%2FAutomate-Workflow/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Shreekar11%2FAutomate-Workflow/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Shreekar11","download_url":"https://codeload.github.com/Shreekar11/Automate-Workflow/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244868756,"owners_count":20523592,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["express","mvc-architecture","nextjs","nodejs","oops-in-typescript","postgresql","prisma","react-flow","redis","redis-queue-worker","typescript","webhook"],"created_at":"2025-03-21T21:17:28.222Z","updated_at":"2025-03-21T21:17:28.690Z","avatar_url":"https://github.com/Shreekar11.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# [Workflow Automation](https://workflows-flax.vercel.app)\n\n![Landing Page](assets/landing.png)\n\n\u003e Automate your Workflows with ease\n\n## Solution\n\nWorkflow Automation enables seamless automation of your workflows. Users can effortlessly create workflows and configure them to the available trigger providers and multiple available actions with precision. Designed with a robust event-driven architecture, the application ensures reliable and asynchronous execution of actions upon each trigger, providing high performance.\n\n## Demo Video\n\n[Watch Workflow Automation Demo 🚀](https://www.loom.com/share/45ca04286a0e4497b78689a3fbe48b3f?sid=5e3795c0-6343-4087-86af-b4b46e82b206)\n\n## Features\n\n- Streamlined Workflow Creation\n- Webhook trigger provider\n- Automate your Google Sheet\n- Mailing service for instant mails\n- Clean and MVC OOPs architecture\n- Secure Clerk Authentication and Authorization\n- Beautiful User Interface\n- React Flow for User-Friendly Experience\n- Webhook secret key to authenticate and secure the Webhook endpoint\n\n\n## System Architecture\n\n![Architecture Diagram](assets/architecture.png)\n\n\n## DB Diagram\n\n![DB Diagram](assets/db-diagram.png)\n\n## Tech Stack\n\n### Backend\n- **PostgerSQL** - SQL database for storing data and maintain complex data relations\n- **Prisma** - Efficient ORM for database interactions\n- **Redis** - In-memory database and queue management\n- **Node.js** - JavaScript runtime for server-side development\n- **Express** - Web framework for Node.js\n- **Nodemailer** - For sending emails\n- **Zod** - Used for validation\n\n### Frontend\n- **Next.js** - React framework for production\n- **TypeScript** - Superset of JavaScript for type safety\n- **Tailwind CSS** - Utility-first CSS framework\n- **React Flow** - React library to built user friendly workflows\n\n### Deployment\n- **Vercel** - Deployment platform for frontend\n- **Render** - Deployment platform for backend services\n\n## Deployment Links\n\n- Frontend: [Workflow Automation](https://workflows-flax.vercel.app)\n- Backend: [Backend Server](https://automate-workflow-backend.onrender.com)\n- Webhook: [Webhook Server](https://workflow-hooks.onrender.com)\n- Worker: [Worker Server](https://workflow-worker-o8lo.onrender.com)\n\n## Solution Future Aspects\n\n- Add more Trigger and Action provider to expand the Workflow Automation\n- Provide user to connect with the provider to reduce manual workload\n- Add notification channels (Slack, Discord)\n- Integrate AI for enhanced workflow automation\n\n## Pros and Cons of Proposed Solution\n\n### Pros\n- Streamlined and user-friendly interface\n- Event-driven asynchronous processing\n- Clean and MVC OOPs architecture\n- Dedicated Webhook Server for scalable event handling\n- Secured Webhook endpoint using unique secret key\n\n### Cons\n- Transition to microservices architecture\n\n## Getting Started\n\n### Installation\n\n1. Clone the repository:\n\n    ```\n    git clone https://github.com/Shreekar11/Automate-Workflow.git\n    ```\n\n2. Navigate to the project directory:\n\n    ```\n    cd Automate-Workflow\n    ```\n\n### Running Frontend\n\n1. Navigate to the project directory:\n\n    ```\n    cd frontend\n    ```\n\n\n2. Install dependencies:\n\n    ```\n    npm install\n    ```\n\n3. Create a `.env` file in the root directory and add your environment variables:\n\n    ```\n    NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=\n    CLERK_SECRET_KEY=\n    NEXT_PUBLIC_CLERK_SIGN_IN_URL=\n    NEXT_PUBLIC_CLERK_SIGN_UP_URL=\n    NEXT_PUBLIC_CLERK_AFTER_SIGN_IN_URL=\n    NEXT_PUBLIC_CLERK_AFTER_SIGN_UP_URL=\n    WEBHOOK_SECRET=\n    NEXT_PUBLIC_BASE_URL=\n    NEXT_PUBLIC_WEBHOOK_URL=\n    ```\n\n4. Run the frontend:\n\n    ```\n    npm run dev\n    ```\n\n5. Open [http://localhost:3000](http://localhost:3000) in your browser to see the application.\n\n### Running Backend Server\n\n1. Create a `.env` file in the root directory and add your environment variables:\n\n    ```\n    DATABASE_URL=\n    CLERK_PUBLISHABLE_KEY=\n    CLERK_SECRET_KEY=\n    BACKEND_URL=\n    FRONTEND_URL=\n    ```\n\n2. Navigate to the backend directory and start the server:\n\n    ```\n    cd backend\n    npm install\n    npm run dev\n    ```\n\n3. Server will run on endpoint :- [http://localhost:8080](http://localhost:8080) \n\n### Running Webhook Server\n\n1. Create a `.env` file in the root directory and add your environment variables:\n\n    ```\n    DATABASE_URL=\n    WEBHOOK_URL=\n    REDIS_URL=\n    FRONTEND_URL=\n    ```\n\n2. Install Redis using Docker, run the below Docker command to pull the redis docker image: \n\n    ```\n    docker run -d --name redis-queue -p 6379:6379 -p 8001:8001 redis/redis-stack:latest\n    ```\n\n3. Navigate to the hooks directory and start the server:\n\n    ```\n    cd hooks\n    npm install\n    npm run dev\n    ```\n\n4. Webhook Server will run on endpoint :- [http://localhost:5000](http://localhost:5000) \n\n### Running Worker Server\n\n1. Create a `.env` file in the root directory and add your environment variables:\n\n    ```\n    DATABASE_URL=\n    MAIL_USERNAME=\n    MAIL_PASSWORD=\n    GOOGLE_CLIENT_EMAIL=\n    GOOGLE_PRIVATE_KEY=\n    WORKER_URL=\n    REDIS_URL=\n    ```\n\n2. Navigate to the worker directory and start the server:\n\n    ```\n    cd worker\n    npm install\n    npm run dev\n    ```\n3. Worker Server will run on endpoint :- [http://localhost:8000](http://localhost:8000) \n\n## Run the project via **Docker**\n\n## Prerequisites\n\n- Docker\n\n## For Linux System:\n\nTo install Docker, run the following commands in your terminal:\n\n    ```\n    curl -fsSL https://get.docker.com -o get-docker.sh\n    sudo sh get-docker.sh\n    ```\n\n## Development Environment For Server\n\n- Navigate into **backend** directory\n- Add the `.env` file in the directory. The env file being used for development is called `.env`\n- To get started with development first build the dev containers using the following command\n\n    ```bash\n    docker-compose build\n    ```\n\n- Run the containers using the command\n\n    ```bash\n    docker-compose -up\n    ```\n\n## Development Environment For Client\n\n- Navigate into **frontend** directory\n- Add the `.env` file in the directory. The env file being used for development is called `.env`\n- To get started with development first build the dev containers using the following command\n\n    ```bash\n    docker-compose build\n    ```\n\n- Run the containers using the command\n\n    ```bash\n    docker-compose -up\n    ```\n\n## Development Environment For Webhook Server\n\n- Navigate into **hooks** directory\n- Add the `.env` file in the directory. The env file being used for development is called `.env`\n- To get started with development first build the dev containers using the following command\n\n    ```bash\n    docker-compose build\n    ```\n\n- Run the containers using the command\n\n    ```bash\n    docker-compose -up\n    ```\n\n## Development Environment For Worker Server\n\n- Navigate into **worker** directory\n- Add the `.env` file in the directory. The env file being used for development is called `.env`\n- To get started with development first build the dev containers using the following command\n\n    ```bash\n    docker-compose build\n    ```\n\n- Run the containers using the command\n\n    ```bash\n    docker-compose -up\n    ```\n\n## Contact\n\nFor any inquiries or support, please email us at shreekargade2004@gmail.com or open an issue in this repository.\n\nEnjoy your workflow automation process!⚒️🚀\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshreekar11%2Fautomate-workflow","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshreekar11%2Fautomate-workflow","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshreekar11%2Fautomate-workflow/lists"}