Skip to content
This repository was archived by the owner on Jan 31, 2026. It is now read-only.

bobis33/Area-2026

Area logo

EPITECH | Area

CI - Build & Test CI - CodeQL CI - Gitleaks CD - Mirror License

The AREA project is a project that aims to create a platform that allows users to create and manage their own automation scenarios. The platform is composed of three main parts:

  • A backend that manages the user's data and the automation scenarios.
  • A web frontend that allows users to create and manage their automation scenarios.
  • A mobile frontend that allows users to create and manage their automation scenarios.

Project architecture

Area diagram

Prerequisites

Make sure you have the following dependencies installed on your system:

Getting started

With docker

First create a .env fil at the root of the repository:

PROJECT_NAME=area
MODE=development
JWT_SECRET="jwt-secret-key"

API_CONTAINER_PORT=8080
WEB_CONTAINER_PORT=8081
MOBILE_CONTAINER_PORT=8082

API_URL="http://localhost:${API_CONTAINER_PORT}"
FRONTEND_URLS="http://localhost:${WEB_CONTAINER_PORT},http://localhost:${MOBILE_CONTAINER_PORT},http://localhost:${API_CONTAINER_PORT}"

POSTGRES_DB="${PROJECT_NAME}_database"
POSTGRES_USER="${PROJECT_NAME}_postgres-user"
POSTGRES_PASSWORD="${PROJECT_NAME}_postgres-password"
POSTGRES_CONTAINER_PORT=8000
POSTGRES_URL="postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${PROJECT_NAME}_postgresql:${POSTGRES_CONTAINER_PORT}/${POSTGRES_DB}"

GOOGLE_CLIENT_ID=""
GOOGLE_CLIENT_SECRET=""
GOOGLE_CLIENT_CALLBACK_URL=""

GITHUB_CLIENT_ID=""
GITHUB_CLIENT_SECRET=""
GITHUB_CLIENT_CALLBACK_URL=""

DISCORD_CLIENT_ID=""
DISCORD_CLIENT_SECRET=""
DISCORD_CLIENT_CALLBACK_URL=""
DISCORD_BOT_TOKEN=""

SPOTIFY_CLIENT_ID=""
SPOTIFY_CLIENT_SECRET=""
SPOTIFY_CLIENT_CALLBACK_URL=""

GITLAB_CLIENT_ID=""
GITLAB_CLIENT_SECRET=""
GITLAB_CLIENT_CALLBACK_URL=""

Build and run docker compose:

docker compose up

Important

While developing you probably going to change dockerfile image, or build instruction, or whatever ...Sometimes your change will not appear, in this case you need to delete old area image/caches and volumes.

Manually with node

First create a .env fil at the root of the repository:

PROJECT_NAME=area

POSTGRES_DB="${PROJECT_NAME}_database"
POSTGRES_USER="${PROJECT_NAME}_postgres-user"
POSTGRES_PASSWORD="${PROJECT_NAME}_postgres-password"
POSTGRES_CONTAINER_PORT=8000
POSTGRES_URL="postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${PROJECT_NAME}_postgresql:${POSTGRES_CONTAINER_PORT}/${POSTGRES_DB}"

Change postgres network config in docker-compose.yml (internal become false):

networks:
  area_network_postgresql:
    name: ${PROJECT_NAME}_network_postgresql
    driver: bridge
    internal: false

Run postgresSQL container:

docker compose up -d area_service_postgresql ## Run only Postgres DB

Then install dependencies and build UI package:

npm i ## Install dependencies
npm run ui:build ## Build UI package

Create .env files in each project folder:

Server (.env in ./packages/server)

PROJECT_NAME=area
PORT=8080
JWT_SECRET="jwt-secret-key"

POSTGRES_DB="${PROJECT_NAME}_database"
POSTGRES_USER="${PROJECT_NAME}_postgres-user"
POSTGRES_PASSWORD="${PROJECT_NAME}_postgres-password"
POSTGRES_CONTAINER_PORT=8000
POSTGRES_URL="postgresql://area_postgres-user:area_postgres-password@localhost:8000/area_database"

GOOGLE_CLIENT_ID=""
GOOGLE_CLIENT_SECRET=""
GOOGLE_CLIENT_CALLBACK_URL=""

GITHUB_CLIENT_ID=""
GITHUB_CLIENT_SECRET=""
GITHUB_CLIENT_CALLBACK_URL=""

DISCORD_CLIENT_ID=""
DISCORD_CLIENT_SECRET=""
DISCORD_CLIENT_CALLBACK_URL=""
DISCORD_BOT_TOKEN=""

SPOTIFY_CLIENT_ID=""
SPOTIFY_CLIENT_SECRET=""
SPOTIFY_CLIENT_CALLBACK_URL=""

GITLAB_CLIENT_ID=""
GITLAB_CLIENT_SECRET=""
GITLAB_CLIENT_CALLBACK_URL=""

FRONTEND_URLS="http://localhost:${WEB_CONTAINER_PORT},http://localhost:${MOBILE_CONTAINER_PORT},http://localhost:${API_CONTAINER_PORT}"

Web (.env in ./packages/web)

PORT=8081
API_PORT=8080
API_URL="http://localhost:${API_PORT}"

Mobile (.env in ./packages/mobile)

PORT=8082
API_PORT=8080
API_URL="http://localhost:${API_PORT}"

Finally, run the project you want:

npm run server:start ## run server
npm run web:start ## run web frontend
npm run mobile:start ## run mobile frontend

Note

For more information, see the package.json.

Documentation

Security

Please review our Security Policy for more information on reporting security vulnerabilities.

Contributing

Want to contribute? See Contributing guidelines.

License

This project is licensed under the MIT License - see the License file for details.