Skip to content

Noahxel/Area

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AREA

Table of Contents 📑


Overview of AREA 🔎

AREA (Action Reaction) is an automation platform designed to automate interactions between various services. Inspired by platforms like IFTTT (If This Then That) and Zapier, AREA aims to provide users with a means to automate repetitive tasks.

Main Objectives:

  • Provide an intuitive user interface for creating and managing automations.
  • Integrate a variety of popular services and enable seamless interactions between them.

Key Features:

  • Automation Creation: Users can create automations by linking an action from one service to a reaction from another service.
  • User Management: Users can register, log in, and manage their profiles.
  • Service Management: Users can connect and manage different services to their AREA account.

General Architecture:

  • Server: The heart of AREA, managing users, services, and automations.
  • Web Client: A web interface for users to interact with the platform.
  • Mobile Client: A mobile application for interaction on mobile devices.
  • Database: Stores user data, service configurations, and automations.

Documentation 📖

Below you'll find links to detailed documentation for the AREA project, including technical information, user guides, and system diagrams.

  • Technical Documentation: Detailed information on the system architecture, libraries used, and API references.
    🔗 Read the Technical Documentation 🔗

  • User Guide: Instructions on how to use the AREA platform, set up triggers and actions, and integrate services.
    🔗 Read the User Guide 🔗

  • System Diagram: Visual representation of the AREA system components and their interactions.
    🔗 View the AREA Diagram 🔗


Technology Stack 💻

This section describes the key technologies used for building and deploying AREA, covering the database, server, mobile, and web clients, as well as the containerization environment.


Database:

  • MongoDB: A NoSQL database chosen for its flexibility and ability to handle structured and unstructured data (stores data in BSON documents).
  • Mongo Compass: Used for a visual representation and easy interaction with the MongoDB database.

Server:

  • Node.js: Server-side JavaScript execution environment, chosen for its rich library ecosystem.

Mobile Client:

  • Flutter: Google's mobile development SDK, enabling the creation of high-quality native applications for iOS and Android from a single codebase.

Web Client:

  • React: JavaScript library for building user interfaces, chosen for its modularity.

Containerization and Deployment:

  • Docker: Used to containerize the application and ensure consistent deployment environments.
  • Docker Compose: Used to define and run multi-container Docker applications.

Cloud and Infrastructure Services:

  • AWS (Amazon Web Services):
    • EC2 (Elastic Compute Cloud): For hosting the application servers with an EC2 instance.
    • Route 53: For domain name management, using AWS for the DNS system.
    • Elastic Load Balancing: For efficiently distributing incoming traffic and for high availability.
    • VPC (Virtual Private Cloud): Configuring an isolated network within AWS, allowing control over AREA's network environment.
    • Network Interfaces: For configuring network interfaces associated with EC2 instances.
    • ARN (Amazon Resource Name): A unique identifier assigned to the Load Balancer in AWS.

Libraries Used 📚

For a comprehensive list of all libraries and dependencies utilized in this project, as well as their versions and purposes, please refer to our detailed technical documentation. The documentation provides in-depth insights into how each library contributes to the functionality of AREA and ensures that all components work seamlessly together.

🔗 Read the full technical documentation for libraries details.


AREA Diagram 📈

Draw.io Logo

🔗 View AREA Diagram.


Integrated External Services

OpenWeather Logo dateTime logo Google Logo Gmail Logo YouTube Logo Dropbox Logo GitHub Logo Spotify Logo Twitch Logo

These external services are integrated into AREA, allowing users to link their accounts from these platforms with their AREA profile, thus facilitating the automation of interactions between various services.

To enhance this experience, AREA employs the concept of "ingredients." Ingredients are key data snippets extracted from triggers, automatically identified to simplify the creation of actions. Ingredients might include device names, trigger times, or other service-specific data. Look for the flask icon to use them in action setups, adding a layer of customization to your automation flows.


For complete details of each service trigger, actions and ingredients read the full technical documentation:

🔗 AREA Technical Documentation.


Starting AREA 🚀

Local Setup:

  1. Ensure Docker and Docker Compose are installed on your local machine.
  2. Clone the AREA project repository.
  3. Environment Configuration:
    • Navigate to the server directory.
    • Create a .env file with the necessary environment variables for your setup.
  4. Navigate to the project root directory in your terminal.
  5. Run docker-compose build to construct the required Docker images.
  6. Start the services with docker-compose up.
  7. Verify the services:
    • AREA Server: http://localhost:8080
    • AREA Web Client: http://localhost:8081

AWS Setup:

  1. Connect to your AWS EC2 instance via SSH.
  2. Environment Configuration:
    • Navigate to the server directory.
    • Create a .env file with the necessary environment variables for your setup.
  3. If you have made changes to the code or if it's the first setup, run docker-compose build.
  4. Start the services with docker-compose up -d to run them in the background.
  5. Verify the services:
    • AREA Server: Access https://api.techparisarea.com to ensure the server is up and running.
    • AREA Web Client: Access https://techparisarea.com to ensure the web client is operational.
  6. Ensure proper ports are opened in your EC2 security group and services are configured to use HTTPS with the correct SSL certificates for encryption.

Contributors 👥

  • ADELE DE PREMONVILLE
  • NOAH LE VEVE
  • LUCAS HOLCZINGER
  • HUGO PATTEIN
  • LOUIS CHAMBON

About

⚙️ React / NodeJS automation plateform (Similar to IFTTT / Zapier)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors