Repositorio oficial: https://github.com/WilkinsFiguereo/BillNova
BillNova es un sistema ERP con:
- frontend web en
Next.js - app mobile en
Expo / React Native - backend en
Odoo 19 - base de datos en
PostgreSQL 15
El backend Odoo de este proyecto esta configurado para trabajar solamente con la base de datos wilkins.
ProyectRijo/
|-- FrontendReactWeb/
| `-- mi-app/
|-- FrontendReactApp/
| `-- App-Mobile/
|-- odooBackend/
| |-- addons/
| | `-- Proyect/
| |-- config/
| | `-- odoo.conf
| `-- docker-compose.yml
`-- README.md
Node.js 20+npm 10+DockerDocker ComposeGit
La configuracion actual de Odoo ya fija la base de datos del proyecto:
Valores clave:
db_name = wilkins
dbfilter = ^wilkins$
db_user = odoo
db_password = odooEso significa:
- Odoo trabajara con la base
wilkins - el proyecto no debe quedarse usando otra base como
billnova - si en algun momento creaste otra base para pruebas, la base final a usar en este proyecto debe ser
wilkins
git clone https://github.com/WilkinsFiguereo/BillNova.git
cd BillNovaSi ya tienes este proyecto abierto localmente, puedes continuar directamente.
cd FrontendReactWeb/mi-app
npm installcd FrontendReactApp/App-Mobile
npm installArchivo usado:
Desde la carpeta odooBackend ejecuta:
docker compose up -dSi tu Docker aun usa el comando anterior, tambien funciona:
docker-compose up -dCredenciales de PostgreSQL dentro de Docker:
POSTGRES_DB=postgresPOSTGRES_USER=odooPOSTGRES_PASSWORD=odoo
Contenedores esperados:
odoo-dbodoo-web
URL local de Odoo:
http://localhost:8079
Si es la primera vez que levantas el proyecto:
- abre
http://localhost:8079 - entra a la pantalla de creacion de base de datos
- crea la base con el nombre
billnovasi necesitas completar la instalacion inicial de Odoo - despues ajusta el entorno para que el proyecto quede usando solo la base
wilkins
Importante:
- la configuracion del proyecto en odooBackend/config/odoo.conf deja fijo
db_name = wilkins - por lo tanto, para el uso normal del proyecto la base que debe existir y quedar operativa es
wilkins - si todavia no existe
wilkins, creala y usala como base definitiva del proyecto
En resumen: para este proyecto deja Odoo trabajando solamente con la base wilkins.
Modulo:
Manifest:
Paso a paso:
- entra a Odoo con la base
wilkins - activa el modo desarrollador
- ve a
Apps - pulsa
Update Apps List - busca el modulo
BillNovaoProyect - instala el modulo
Si el modulo ya estaba instalado y cambiaste codigo:
- reinicia Odoo:
docker restart odoo-web- vuelve a Odoo
- actualiza la lista de apps si hace falta
- actualiza el modulo
BillNova / Proyect
El proyecto envia correos de:
- verificacion de cuenta
- recuperacion de contrasena
- invitaciones a empleados
Eso se usa desde el modelo:
Si vas a usar Gmail para enviar correos desde Odoo, primero debes preparar tu cuenta de Google.
Paso a paso:
- entra a tu cuenta de Google
- ve a
Administrar tu cuenta de Google - entra a
Seguridad - activa la verificacion en dos pasos
- busca la opcion
Contrasenas de aplicaciones - crea una nueva contrasena de aplicacion para Odoo
- guarda esa contrasena porque la vas a usar en Odoo
Importante:
- no uses tu contrasena normal de Gmail
- para Odoo debes usar una
contrasena de aplicacion - ese correo sera el que enviara verificacion de cuenta, recuperacion de contrasena e invitaciones
En Odoo:
- entra con un usuario administrador
- ve a
Settings - activa modo desarrollador si aun no esta activo
- entra a
Technical -> Email -> Outgoing Mail Servers - crea o edita un servidor SMTP
Campos recomendados:
Description: nombre libre, por ejemploSMTP BillNovaSMTP Server:smtp.gmail.comsi usas GmailSMTP Port:587paraTLS/STARTTLSo465paraSSL/TLSConnection Security:TLS/STARTTLSoSSL/TLSUsername: tu correo de Google completoPassword: la contrasena de aplicacion que generaste en tu cuenta de GoogleFrom Filtering: opcional
Luego:
- guarda
- pulsa
Test Connection - confirma que el test responda correctamente
En Odoo entra a:
Settings -> Technical -> Parameters -> System Parameters
Crea o revisa este parametro:
mail.default.from=tu-correo@tudominio.com
El modulo usa ese valor como remitente. Si no existe, intenta usar el correo de la compania en Odoo y, como ultimo fallback, usa no-reply@billnova.local.
Endpoints relacionados:
POST /api/auth/forgot-passwordPOST /api/auth/verify-emailPOST /api/auth/resend-codePOST /api/auth/reset-password
Controlador:
El proyecto maneja dos tipos de autenticacion:
- login normal con correo y contrasena
- Google OAuth
Controlador principal:
No requiere una configuracion externa especial aparte de:
- tener la base
wilkins - tener el modulo
BillNova / Proyectinstalado - tener usuarios creados en
billnova.useryres.users - tener el correo configurado si quieres verificacion y reset de contrasena
Endpoints principales:
POST /api/auth/loginPOST /api/auth/registerGET /api/auth/sessionPOST /api/auth/logout
El modulo depende de auth_oauth, segun el manifest del modulo.
Antes de configurar los parametros en Odoo, tienes que instalar el modulo necesario y crear las credenciales en Google Cloud.
Paso a paso:
- entra a Odoo con la base
wilkins - activa el modo desarrollador
- ve a
Apps - pulsa
Update Apps List - busca e instala el modulo
OAuth Authenticationoauth_oauthsi no esta instalado - busca e instala o actualiza el modulo
BillNova / Proyect
Tienes que sacar las credenciales desde Google Cloud Console.
Paso a paso:
- entra a Google Cloud Console
- crea un proyecto nuevo o selecciona uno existente
- entra a
APIs & Services - configura la pantalla de consentimiento OAuth
- completa los datos basicos de la aplicacion
- agrega usuarios de prueba si Google te lo pide
- entra a
Credentials - pulsa
Create Credentials - selecciona
OAuth client ID - elige el tipo de aplicacion correspondiente
- registra la URL de callback autorizada
- crea la credencial
Debes copiar estos datos:
Client IDClient Secret
Para este proyecto local, la URL de callback que debes registrar en Google Cloud es:
http://localhost:8079/api/auth/google/mobile/callback
Si usas otro dominio o servidor, registra esa URL real.
Despues, en Odoo:
- entra a
Settings -> Technical -> Parameters -> System Parameters - crea o revisa estos parametros obligatorios:
web.base.url=http://localhost:8079
billnova.google_oauth_client_id=TU_CLIENT_ID
billnova.google_oauth_client_secret=TU_CLIENT_SECRET
billnova.google_oauth_token_endpoint=https://oauth2.googleapis.com/token
billnova.google_oauth_userinfo_endpoint=https://openidconnect.googleapis.com/v1/userinfo
En este proyecto esos parametros no son opcionales si vas a usar Google OAuth.
Ademas, revisa que el proveedor OAuth de Google exista en Odoo si lo vas a manejar por interfaz:
Settings -> Technical -> Authentication -> OAuth Providers- crea o valida un proveedor de Google
- verifica que tenga
client_id,client_secrety endpoint de autorizacion
Las credenciales que pongas en Odoo tienen que salir de Google Cloud Console.
El callback que construye el proyecto es:
http://localhost:8079/api/auth/google/mobile/callback
Si publicas Odoo en otra URL, cambia web.base.url para que el callback generado sea correcto.
GET /api/auth/google/mobile/authorize-urlGET /api/auth/google/mobile/callback
Archivo recomendado:
FrontendReactWeb/mi-app/.env.local
Contenido:
NEXT_PUBLIC_ODOO_URL=http://localhost:8079Luego ejecuta:
cd FrontendReactWeb/mi-app
npm run devAbre:
http://localhost:3000
Archivo recomendado:
FrontendReactApp/App-Mobile/.env
Contenido:
EXPO_PUBLIC_ODOO_URL=http://localhost:8079Luego ejecuta:
cd FrontendReactApp/App-Mobile
npx expo startSi pruebas desde un telefono fisico, no uses localhost; usa una IP local accesible o un tunel.
- instalar dependencias web y mobile
- correr
docker compose up -denodooBackend - entrar a Odoo en
http://localhost:8079 - dejar operativa la base
wilkins - instalar el modulo
BillNova / Proyect - configurar SMTP en Odoo
- configurar
mail.default.from - configurar
web.base.url - configurar Google OAuth si se usara login con Google
- correr frontend web y/o mobile
- README.md
- odooBackend/docker-compose.yml
- odooBackend/config/odoo.conf
- odooBackend/addons/Proyect/manifest.py
- odooBackend/addons/Proyect/controllers/auth_controller.py
- odooBackend/addons/Proyect/models/users.py
Aunque durante una instalacion inicial puedas llegar a crear una base billnova, la configuracion final del proyecto debe quedar usando solamente la base de Odoo wilkins.