Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Idea Generator PRO

🇺🇸 English · 🇪🇸 Español

Idea Generator PRO is a cross-platform application designed to generate creative ideas based on customizable character and style parameters.

The project started as a desktop application and was later reorganized into a modular architecture with a shared business-logic layer and separate desktop and Android interfaces.


Screenshots

Desktop Version

Desktop Version

Android Version

Android Version


🇺🇸 English

Features

  • Creative idea generation based on configurable parameters.
  • Favorite ideas with local persistence.
  • Generation history.
  • Copyable generated results.
  • English and Spanish interface support.
  • Desktop interface using Tkinter.
  • Android application using Kivy.
  • Cross-platform sound handling.
  • Input and output sanitization.
  • Batch generation with UI feedback.

Quick Start

Clone the repository

git clone https://github.com/R00TME0W/ideagen.git cd ideagen

Run the application:

python ui_desktop/main.py

The desktop version uses Tkinter and shares the same business logic located in:

core/

Architecture

The project follows a separation-of-responsibilities approach:

ideagen/ ├── core/ │ ├── init.py │ ├── generator.py │ └── sound.py │ ├── mobile_kivy/ │ ├── core/ │ ├── main.py │ └── buildozer.spec │ ├── ui_desktop/ │ └── main.py │ ├── screenshots/ │ ├── desktop.png │ └── android.png │ ├── .gitignore └── README.md


### Separation of responsibilities

The `core/` module contains the application's business logic and does not depend on Tkinter or Kivy.

The desktop and Android interfaces use this shared logic and are responsible for handling their respective user interface components and events.

This architecture allows the same business rules to be maintained across multiple platforms without duplicating the application's core logic.

## Technologies

| Component | Technology |
|---|---|
| Programming language | Python |
| Desktop UI | Tkinter |
| Mobile UI | Kivy |
| Android build tool | Buildozer |
| Android build backend | python-for-android |
| Android API | 33 |
| Minimum Android API | 24 |
| Android architectures | ARM64-v8a / armeabi-v7a |

## Desktop Version

To run the desktop application:

```bash
cd ideagen
python ui_desktop/main.py

The desktop version uses Tkinter and shares the same core application logic found in core/.

Android Version

The Android version uses Kivy for the user interface and Buildozer for APK packaging.

The project has been successfully compiled into an Android APK and tested on a compatible Android device.

Android build environment

The APK was successfully built using:

Python 3.11.9
Java 17
Buildozer 1.6.0
Kivy
Android SDK API 33
Android minimum API 24
Android NDK r28c

Compatibility note: Python 3.11.9 and Java 17 were used because they provide compatibility with the Buildozer and python-for-android toolchain used by this project.

Building the Android APK

Android builds are performed using Buildozer.

Linux is recommended for the Android build environment.

Create and activate a Python virtual environment:

python3.11 -m venv buildozer-env
source buildozer-env/bin/activate

Install the required build tools:

pip install buildozer cython

Navigate to the Android project:

cd mobile_kivy

Build the debug APK:

buildozer -v android debug

The first build may take some time because Buildozer downloads and configures the required Android SDK, NDK, and other dependencies.

After a successful build, the APK will be available in:

mobile_kivy/bin/

📲 Installing the APK

The generated APK can be transferred to a compatible Android device and installed manually for testing.

Alternatively, if the device is connected through USB and USB debugging is enabled:

buildozer android deploy run

🗂️ Data Persistence

The application stores favorites and generation history locally using JSON files:

  • favorites.json — saved favorite ideas.
  • history.json — generation history.

JSON loading includes error handling for missing or invalid files.

🌐 Internationalization

The application currently supports:

  • 🇺🇸 English
  • 🇪🇸 Spanish

Interface strings are centralized using:

STRINGS["EN"]
STRINGS["ES"]

This keeps interface text separate from the application's core logic and makes future language additions easier.

Cross-Platform Sound

Sound handling is separated into:

core/sound.py

The implementation detects the current platform and avoids using Windows-specific dependencies on unsupported platforms.

Project Status

Version: 0.1

Current project status:

  • Functional desktop version.
  • Functional Kivy mobile interface.
  • Shared core business logic.
  • Persistent favorites and history.
  • English and Spanish interface support.
  • Android APK successfully built with Buildozer.
  • Android testing build available.

Technical Highlights

Area Improvement
Architecture Separated business logic from platform-specific interfaces
Persistence Added safe JSON loading and generation history
Internationalization Added English and Spanish interface strings
Cross-platform support Added platform-aware sound handling
Android Added Kivy interface and Buildozer packaging
Reliability Added input sanitization and generation-state feedback

Future Improvements

Potential improvements for future versions include:

  • Export ideas as plain text.
  • Share generated ideas directly from Android using plyer.
  • Native Android sound and vibration support.
  • Editable user templates for character and style variations.
  • Light and dark themes.
  • Adjustable font size.
  • Cloud synchronization for favorites using an external backend or OAuth-based service.

🇪🇸 Español

Características

  • Generación de ideas creativas basada en parámetros configurables.
  • Sistema de favoritos con persistencia local.
  • Historial de ideas generadas.
  • Resultados que pueden copiarse.
  • Interfaz disponible en inglés y español.
  • Interfaz de escritorio desarrollada con Tkinter.
  • Aplicación Android desarrollada con Kivy.
  • Manejo de sonido multiplataforma.
  • Sanitización de entradas y resultados.
  • Generación por lotes con retroalimentación visual de la interfaz.

Inicio rápido

Clonar el repositorio

git clone https://github.com/R00TME0W/ideagen.git cd ideagen

Versión de escritorio

python ui_desktop/main.py core/

Arquitectura

El proyecto utiliza una separación de responsabilidades:

ideagen/ ├── core/ │ ├── init.py │ ├── generator.py │ └── sound.py │ ├── mobile_kivy/ │ ├── core/ │ ├── main.py │ └── buildozer.spec │ ├── ui_desktop/ │ └── main.py │ ├── screenshots/ │ ├── desktop.png │ └── android.png │ ├── .gitignore └── README.md


### Separación de responsabilidades

El módulo `core/` contiene la lógica de negocio de la aplicación y no depende de Tkinter ni de Kivy.

Las interfaces de escritorio y Android utilizan esta lógica compartida y se encargan de sus respectivos componentes y eventos de interfaz.

Esta arquitectura permite mantener las mismas reglas de negocio en diferentes plataformas sin duplicar la lógica principal de la aplicación.

## Tecnologías

| Componente | Tecnología |
|---|---|
| Lenguaje de programación | Python |
| Interfaz de escritorio | Tkinter |
| Interfaz móvil | Kivy |
| Herramienta de compilación Android | Buildozer |
| Backend de compilación Android | python-for-android |
| Android API | 33 |
| API mínima de Android | 24 |
| Arquitecturas Android | ARM64-v8a / armeabi-v7a |

## Versión de Escritorio

Para ejecutar la aplicación de escritorio:

```bash
cd ideagen
python ui_desktop/main.py

La versión de escritorio utiliza Tkinter y comparte la misma lógica de aplicación ubicada en core/.

Versión Android

La versión Android utiliza Kivy para la interfaz y Buildozer para empaquetar la aplicación como APK.

El proyecto fue compilado exitosamente como APK de Android y probado en un dispositivo Android compatible.

Entorno de compilación Android

El APK fue compilado utilizando:

Python 3.11.9
Java 17
Buildozer 1.6.0
Kivy
Android SDK API 33
Android minimum API 24
Android NDK r28c

Nota de compatibilidad: Se utilizaron Python 3.11.9 y Java 17 debido a su compatibilidad con las herramientas Buildozer y python-for-android utilizadas en el proyecto.

Compilación del APK

La compilación de Android se realiza mediante Buildozer.

Se recomienda utilizar Linux para el entorno de compilación.

Crear y activar un entorno virtual de Python:

python3.11 -m venv buildozer-env
source buildozer-env/bin/activate

Instalar las herramientas necesarias:

pip install buildozer cython

Entrar al proyecto Android:

cd mobile_kivy

Compilar el APK de depuración:

buildozer -v android debug

La primera compilación puede tardar debido a que Buildozer descarga y configura el Android SDK, NDK y otras dependencias necesarias.

Después de una compilación exitosa, el APK estará disponible en:

mobile_kivy/bin/

📲 Instalación del APK

El APK generado puede transferirse a un dispositivo Android compatible e instalarse manualmente para realizar pruebas.

También puede instalarse directamente mediante USB si el dispositivo tiene habilitada la depuración USB:

buildozer android deploy run

🗂️ Persistencia de Datos

La aplicación almacena localmente los favoritos y el historial mediante archivos JSON:

  • favorites.json — ideas guardadas como favoritas.
  • history.json — historial de ideas generadas.

La carga de archivos JSON incluye manejo de errores para evitar fallos causados por archivos inexistentes o inválidos.

🌐 Internacionalización

La aplicación actualmente admite:

  • 🇺🇸 Inglés
  • 🇪🇸 Español

Los textos de la interfaz se centralizan mediante:

STRINGS["EN"]
STRINGS["ES"]

Esto mantiene los textos de interfaz separados de la lógica principal y facilita agregar nuevos idiomas en el futuro.

Sonido Multiplataforma

El manejo del sonido se encuentra separado en:

core/sound.py

La implementación detecta la plataforma actual y evita utilizar dependencias específicas de Windows en plataformas no compatibles.

Estado del Proyecto

Versión: 0.1

Estado actual:

  • Versión de escritorio funcional.
  • Interfaz móvil Kivy funcional.
  • Lógica de negocio compartida.
  • Persistencia de favoritos e historial.
  • Interfaz disponible en inglés y español.
  • APK de Android compilado exitosamente con Buildozer.
  • Build de prueba disponible para Android.

Aspectos Técnicos Destacados

Área Mejora
Arquitectura Separación de la lógica de negocio de las interfaces específicas de cada plataforma
Persistencia Carga segura de JSON e historial de generación
Internacionalización Incorporación de textos de interfaz en inglés y español
Compatibilidad multiplataforma Manejo del sonido según la plataforma
Android Incorporación de interfaz Kivy y empaquetado mediante Buildozer
Confiabilidad Sanitización de entradas y retroalimentación durante la generación

Mejoras Futuras

Algunas mejoras consideradas para futuras versiones:

  • Exportar ideas como archivos de texto.
  • Compartir ideas directamente desde Android mediante plyer.
  • Soporte nativo de sonido y vibración en Android.
  • Plantillas editables para variaciones de personajes y estilos.
  • Temas claro y oscuro.
  • Tamaño de fuente ajustable.
  • Sincronización de favoritos mediante un backend externo u OAuth.

👤 Autor

Abraham Estrada

Master's student in Information Technology Management with a focus on Cybersecurity.

This project was developed as part of my continued work in software development, Python, cross-platform application development, and cybersecurity-oriented technical training.

About

Cross-platform creative idea generator built with Python, Tkinter and Kivy.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages