An automation platform that interconnects various services to trigger actions based on predefined conditions.
The Area Project is designed to provide a platform similar to IFTTT or Zapier, enabling users to automate tasks by connecting different web services. It allows users to link Actions from one service to REActions in another, creating automated sequences.
The project focuses on integrating existing libraries and services rather than reinventing the wheel. The core challenge lies in orchestrating these components effectively to deliver a functional automation platform.
The application is divided into three parts:
- Application servers to handle the business logic and API endpoints.
- A web client to provide a user interface for managing and configuring automations.
- A mobile client to allow users to interact with the application from their mobile devices.
-
User Management: Registration, and account confirmation.
-
Service Integration: Connecting various services like Google, X, and others via OAuth2.
-
AREA Creation: Linking Actions and REActions to create automated tasks.
-
Triggers: System to initiate REActions based on the occurrence of linked Actions.
Follow these instructions to get a copy of the project on your local machine.
- Docker
- Clone the repository:
git clone https://github.com/ItsZcx/area.git
- Navigate to the project directory:
cd area
- Set up environment variables:
cp .env.example .env
- Start the services using Docker Compose:
docker compose up -d
General:
- Docker: Containerization platform to run the application services.
Backend:
- FastAPI: For building the backend APIs.
- Poetry: For dependency management in Python.
- SQLAlchemy: ORM for database interactions.
- Alembic: Database migrations.
Frontend:
- Next.js: React framework for building the web frontend.
- Tailwind CSS: Utility-first CSS framework for styling.
Mobile:
- React Native: For the mobile frontend.
- Expo: Framework and platform for universal React applications.
- Android SDK: For building Android applications.
Database:
- PostgreSQL: Relational database management system.
Others:
- OAuth2: For authentication and authorization.
- Pydantic: For data validation and settings management.
- Dotenv: For managing environment variables.
- Ngrok: For tunneling local servers to the internet.
This project is licensed under the MIT License - see the LICENSE file for details.
- Joan Pau Mérida Ruiz: Backend Developer, Infra Manager (GitHub, LinkedIn, Email)
- Alex Arteaga Contijoch: Backend Developer (GitHub, LinkedIn, Email)
- David Salvatella Gelpi: Fullstack Developer (GitHub, LinkedIn, Email)
- Joel Revuelta Gomez: Frontend Developer (GitHub, LinkedIn, Email)
- Pol Rodriguez Garcia: Mobile Developer (GitHub, LinkedIn, Email)
- This project was inspired by IFTTT and Zapier.