Language: ES EN

Technical Documentation

Technical specifications, requirements and guides for our products and services.

v1.1

Managed Hosting

Complete web hosting service with personalized support

General Description

De Anda Tech's Managed Hosting service is a complete solution that lets you manage, create and host websites professionally and without complications. We are currently a one-person team (Daniel de Anda) that provides personalized support and direct attention.

Technical Infrastructure

Team and Support

Included Services

Costs

Item Cost
Monthly base cost (hosting + domain) $215 MXN/month
with employee costs, maintenance and support included (real cost) $600 MXN/month

Future Projection

Workflow

  1. The client requests the hosting service
  2. The infrastructure is configured (AWS)
  3. The domain is registered or transferred (GoDaddy)
  4. The website is deployed
  5. GoDaddy credentials are sent and credentials are provided to access the server administration panel
  6. Continuous maintenance is performed
  7. Support and personalized attention

Technical Requirements

MIpunto - POS System

Point of sale system developed in Python with Tkinter

General Description

MIpunto is a point of sale (POS) system developed in Python with Tkinter for the graphical interface. It is designed for sales, inventory, employee and invoicing management in small and medium-sized businesses.

System Structure

Total files: 13 Python files

File Function
dashboard.pyManages updates, images and files on startup. Controls the main GUI
config.pyManages updates through the API (mipunto-server.vercel.app/api). Checks update.json
actualizaciones.pyManages updates of the executable (.exe) or package (.deb)
categoria.pyManages product categories
producto.pyManages products and their inventory
proveedor.pyManages suppliers
empleados.pyManages system employees
ventas.pyManages completed sales
factura.pyManages invoicing
recargas.pyManages recharges (if applicable)
registros.pyManages system records and logs
paths.pyDefines file and directory paths
lms.dbSQLite database - Contains all the information. It is downloaded from the API. Without it, the app fails

System Workflow

  1. Application startup -> dashboard.py loads the GUI and checks for updates
  2. config.py connects to the API (mipunto-server.vercel.app/api)
  3. update.json check -> Checks which files need updating
  4. lms.db download -> If it doesn't exist or is outdated, it is downloaded from the API
  5. actualizaciones.py -> Updates the executable (.exe) or package (.deb) if necessary
  6. Data management -> The modules work with the downloaded database

System Requirements

Requirement Specification
Operating SystemWindows (executable .exe) / Linux (package .deb)
PythonPython 3.x (for development)
DatabaseSQLite (lms.db file)
Internet connectionRequired for updates and database download
APImipunto-server.vercel.app/api

Modules and Features

Dashboard (dashboard.py)

Configuration (config.py)

Updates (actualizaciones.py)

Data Management

Paths (paths.py)

Database (lms.db)

Dependencies

Installation

  1. Download the executable (.exe) or package (.deb) from the repository or the API
  2. Run the installer
  3. The application will automatically verify the API connection
  4. It will download the lms.db database if necessary
  5. The system will be ready to use

Nova Alfa - Intelligent Assistant

Offline-first intelligent assistant with local AI, voice and automation

General Description

Nova Alfa is an "Alexa-like" intelligent assistant developed in Python, designed to be 100% offline. The project combines:

Note:

The project is designed for Linux environments to be used on a Raspberry Pi via GPIO and serial ports.

System Flow

Flow diagram
┌─────────────────────────────────────────────────────────────────────────────────────┐
│                                SYSTEM START                                          │
└─────────────────────────────────────────────────────────────────────────────────────┘
                                          │
                                          ▼
┌─────────────────────────────────────────────────────────────────────────────────────┐
│  inicio.py (BOOTSTRAP)                                                               │
│  • Creates directories (txt/, tmp/, notas/, listas/, calendario/, backup/, sonidos/) │
│  • Initializes configuration files                                                   │
│  • Checks internet connection (DNS: 8.8.8.8, 1.1.1.1)                                │
│  • If there is no network, tries to connect Wi-Fi with nmcli                          │
│  • Checks for updates                                                                │
│  • Updates state files (txt/estado_red.txt, txt/version.txt)                         │
│  • Loads customization (txt/personalizacion.txt)                                     │
└─────────────────────────────────────────────────────────────────────────────────────┘
                                          │
                                          ▼
┌─────────────────────────────────────────────────────────────────────────────────────┐
│  main.py (FASTAPI SERVER - Port 8000)                                                │
│  • Runs in the background (subprocess)                                               │
│  • Endpoints: /v1/completions, /health                                               │
│  • MAIN ORCHESTRATOR - Manages the entire flow                                       │
└─────────────────────────────────────────────────────────────────────────────────────┘
                                          │
                    ┌─────────────────────┴─────────────────────┐
                    │                                           │
                    ▼                                           ▼
    ┌──────────────────────────┐              ┌──────────────────────────────┐
    │  wake.py (DETECTOR)      │              │  cliente.py (INTERFACE)       │
    │  • Listens "okay nabu"   │              │  • Console client             │
    │  • OpenWakeWord + PyAudio│              │  • Sends prompts to server    │
    │  • Sends POST to /wake   │              │  • Shows responses            │
    └──────────────────────────┘              └──────────────────────────────┘
                    │                                           │
                    │ (detection)                               │ (user input)
                    ▼                                           ▼
    ┌──────────────────────────┐              ┌──────────────────────────────┐
    │  POST /wake_detected     │              │  POST /chat                  │
    │  • main.py receives event│              │  • main.py receives text     │
    │  • Activates cliente_voz()│             │  • Text or voice mode        │
    └──────────────────────────┘              └──────────────────────────────┘
                          │                                   │
                          └───────────────┬───────────────────┘
                                          ▼
                    ┌─────────────────────────────────────────────────┐
                    │  intencion.py (CLASSIFIER)                      │
                    │  • Loads models/medin_alfa.pkl (joblib)        │
                    │  • Predicts text intent                         │
                    │  • Returns: time, weather, music, alarm, etc.  │
                    └─────────────────────────────────────────────────┘
                                          │
                                          ▼
                    ┌─────────────────────────────────────────────────┐
                    │  ifs.py (INTENT ROUTER)                         │
                    │  • Switch/case of intents                       │
                    │  • Redirects to a specific function             │
                    │  • Handles errors and fallbacks                 │
                    └─────────────────────────────────────────────────┘
                                          │
                    ┌─────────────────────┼─────────────────────┐
                    │                     │                     │
                    ▼                     ▼                     ▼
        ┌─────────────────┐  ┌─────────────────┐  ┌─────────────────┐
        │  funciones.py   │  │  audio.py       │  │  comunicacion.py│
        │  • USB Music    │  │  • Record       │  │  • Serial       │
        │  • Weather      │  │  • Transcribe   │  │  • GPIO         │
        │  • Notes        │  │  • Local ASR    │  │  • Hardware     │
        │  • Alarms       │  │                 │  │                 │
        │  • Lists        │  └─────────────────┘  └─────────────────┘
        │  • Agenda       │
        │  • Local AI     │
        └─────────────────┘
                    │
                    ▼
        ┌─────────────────────────────────────────────────┐
        │  voz.py (VOICE SYNTHESIS)                       │
        │  • edge-tts (cloud - neural voice)              │
        │  • pyttsx3 (local - fallback)                   │
        │  • Plays the response to the user               │
        └─────────────────────────────────────────────────┘
            

Project Objective

Nova Alfa acts as a personal assistant that can:

General Architecture

files

  1. inicio.py handles startup, directory structure, state files, connection check, Wi-Fi, updates and running the main assistant
  2. main.py runs a FastAPI API on localhost:8000 with a completions endpoint
  3. ifs.py acts as the user intent orchestrator and redirects to specific functions
  4. funciones.py contains the assistant's functional logic: music, notes, weather, conversational AI, alarms, lists, agenda, device control, translation and research
  5. voz.py manages audio playback and the fallback between cloud voice and local voice
  6. intencion.py loads the classification model to infer the user's intent
  7. audio.py manages audio recording and transcription with local ASR models
  8. wake.py detects the "okay nabu" wake word using OpenWakeWord
  9. cliente.py provides an interactive console client that consumes the server API
  10. detener_musica.py monitors external audio to stop playback if there is sound outside the assistant
  11. comunicacion.py sends serial signals to external hardware
  12. hadware.py contains the hardware logic for Raspberry Pi

Features:

Music

Notes and reminders

Lists and agenda

Weather, research and translation

Voice

voz.py:

  1. Reads the language and preferences from txt/personalizacion.txt
  2. Checks txt/estado_de_red.txt
  3. If there is a network, tries to use edge-tts with a neural voice
  4. If there is no network or the cloud fails, uses local pyttsx3
  5. Plays the audio and cleans up temporary files

Hardware and serial

Author and Scope

Nova Alfa is a local/semi-local assistant project developed to automate daily tasks, integrate voice, intent logic, speech recognition, wake word detection and automatic update support.

Frequently Asked Questions

Managed Hosting

What does the $215 MXN base cost include?

The base cost includes managed hosting, a .com/.mx domain, SSL certificate, initial setup, basic maintenance and technical support.

Can I migrate my existing website?

Yes, we offer migration service. The cost depends on the complexity of the current site.

What happens if the website grows and I need more resources?

Resources can be scaled easily. Contact us to get a quote for a custom plan.

MIpunto POS

Which operating system does MIpunto support?

MIpunto supports Windows (executable .exe) and Linux (package .deb).

Do I need an Internet connection to use MIpunto?

Yes, an Internet connection is required for the initial database download and updates. Once installed, it can work offline for local sales, but it needs to connect periodically to sync data.

What happens if the lms.db file is lost?

The application will automatically download a new copy of the database from the API on startup. However, unsynced local data could be lost.

Nova Assistant

What is Nova Alfa?

Nova Alfa is an offline-first intelligent assistant that combines local AI, speech recognition, wake word detection and home automation.

What hardware does Nova need to work?

Nova is designed for Linux and can run on a regular PC or on a Raspberry Pi for GPIO and serial port integration.

Does Nova require an Internet connection?

It is not required. Nova works in offline-first mode. The Internet connection is only used for optional services such as neural voice (edge-tts), weather, research and updates.

How do I activate Nova by voice?

Nova uses the "okay nabu" wake word with OpenWakeWord. Just say "okay nabu" and the assistant will activate to listen to your command.

What models does Nova need to work?

Nova requires three models: modelos/kamutini-5b.gguf (local LLM), modelos/medin_alfa.pkl (intent classifier) and an ASR model in modelo/ for speech transcription.

back