Skip to content

This is the repository for the frontend, UX and UI development of AymurAI

Notifications You must be signed in to change notification settings

AymurAI/desktop-app

Repository files navigation

AymurAI Desktop App

Technologies

Main technologies

  • ⚛️ React + 🆎 TypeScript as the main framework with type checking tools
  • Electron as the deployment and packaging tool. It also serves the purpose of communicating the webapp with the NodeJS process.
  • 🪡 Stitches as the styling library
  • 🛣️ React Router as the routing library to navigate across the webapp
  • 📄 Mammoth + ExcelJS as the libraries to read and write .docx and datasheet files

Other technologies

  • npm as the package manager
  • ESLint as the code linter

 Getting started

  1. Clone the repository

  2. Add your Google OAuth Client ID as an .env file

    $ vim .env
    
    REACT_APP_CLIENT_ID="XXXXXXXXXXXX" # Your Client ID
  3. Install dependencies with

    npm install
  4. Start the app in development mode with

    npm run dev

Run Aymurai API

  1. First download the image

    docker pull registry.gitlab.com/collective.ai/datagenero-public/aymurai-api-prod
  2. And then create the corresponding container

    docker run -p 8899:8899 -h -d registry.gitlab.com/collective.ai/datagenero-public/aymurai-api-prod:latest

Scripts

Development

  • dev:web: levanta el frontend localmente para poder ser visualizado en un browser convencional
  • dev: levanta el frontend localmente y crea una instancia de Electron para poder visualizarlo

Build

  • build:renderer: genera un build de la aplicación de Electron
  • build:app: genera un build de la aplicación de React
  • build: genera un build de la aplicación de React y luego un build de la aplicación de Electron

Validation

  • lint: corre el linter (ESLint) en todo el proyecto
  • lint:markdown: corre el linter de markdown (MarkdownLint), pero únicamente en los archivos de markdown
  • lint:fix: corrige los errores de linter de formato
  • check-types:react: corre un checko de tipado en la aplicación de React
  • check-types:renderer: corre un checko de tipado en la aplicación de Electron
  • validate: corre el linter y luego el checkeo de tipos
  • pre-commit: corre el LintStaged

Deployment

  • package: genera la aplicación empaquetada en la carpeta /out. El tipo de aplicación depende del OS host
  • make: genera un instalador de la aplicación empaquetada. También depende del OS host

 Colaborators

  • Melina Gatto (Project Manager)
  • Luciana Vega (Project Manager)
  • Andy Orlandi (Product Designer)
  • Luciano Lapenna (Developer)
  • Ender Puentes (Developer)

Special thanks

  • Lucia Wainfeld