Skip to content

jeremycalvo/autopilot

Repository files navigation

RIC-AREA

Summary

  1. What is AREA ?
  2. Goals
  3. How to run
  4. Architecture
  5. Data-Base
  6. Back-end
  7. Add your own AREAs

AREA is a project realized during the 3rd year of epitech. To do this, you must implement a software suite that functions similar to that of IFTTT and/or Zapier.

The goal of this project is to discover, as a whole, the software platform that you have chosen through the creation of a business application. This software suite will be broken into three parts :

  1. An application server to implement all the features listed below (see Features)
  2. A web client to use the application from your browser by querying the application server
  3. A mobile client to use the application from your phone by querying the application server
  1. Clone repository
git clone [email protected]:EpitechPromo2025/B-DEV-500-MAR-5-2-area-jeremy.calvo.git
  1. Download prerequisites
* Mobile -> React Native
* Web -> ReactJS
* Back-end -> NestJS
* DB -> MongoDB

You should also download Docker and Docker-compose

  1. At the root of the repository, run :
sudo docker-compose up --build

You can build only one of the three parts with the following commands

sudo docker-compose up --build mongo
sudo docker-compose up --build server
sudo docker-compose up --build client_web (also gives you mobile APK)

Troubleshooting

If you can't run database, make sure port 27017 isn't used by another process. If so, you should kill the process.

Make sure you're using last Docker version.

Some schemes that explain the architecture of the data-base. We have the first Table:

User Table

Used to manage all of the users.

Recipe Table

Used to manage all the data needed to handle the Areaction

If you want more details about the root/api, launch the project and go to the following link: http://localhost:8080/api

This is all of the services that are provided by our RIC-AREA.

Service:

* Spotify
* Github
* Gmail
* Google sheets
* Discord

One of the strenghts of our project, is that it is really simple to add your own AREAs !

To do so :

Add an app

You don't have anything to change client-side, everything is handled by the server. The easiest way to understand how to contribute to the project is to use this branch and to take a look at TemplateService.

Implement a new controller and service in src/integrations/

Each app should provide a route

/services/$appname/auth

This route will be responsible for OAuth authentication with the service.

Then, go to integrations/integration.service and add your app to processRecipes(), and executeReaction()

That's it ! Now, all you have to do is to add your own triggers and reactions following TemplateService syntax. Make sure your trigger is calling integrationService.executeReaction() when triggered.

Don't forget to update integrations.ts JSON with you addings !

autopilot

AutoPilot

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published