Arquitectura completa con múltiples servicios: backend de administración (Django), backend de usuarios (Spring Boot), frontend web (React) y aplicación móvil (Kotlin/Android).
proyecto-principal/
├── backend-admin/ # Django REST API (Administración)
├── backend-user/ # Spring Boot (Gestión de Usuarios)
├── frontend-web/ # React (Interfaz Web)
├── frontend-movil/ # Kotlin Android (App Móvil)
├── .gitignore
└── README.md
Asegúrate de tener instalado:
- Java 17+ - Descargar
- Maven 3.8+ - Descargar
- Python 3.10+ - Descargar
- Node.js 18+ - Descargar
- PostgreSQL 12+ - Descargar
- Android Studio (para frontend-movil) - Descargar
- Git - Descargar
git clone https://github.com/tu-usuario/proyecto-principal.git
cd proyecto-principal# Conectarse a PostgreSQL
psql -U postgres
# Crear bases de datos
CREATE DATABASE backend_user;
CREATE DATABASE backend_admin;
# Crear usuario (opcional)
CREATE USER tecunify WITH PASSWORD 'tu_contraseña';
ALTER ROLE tecunify SET client_encoding TO 'utf8';
ALTER ROLE tecunify SET default_transaction_isolation TO 'read committed';
GRANT ALL PRIVILEGES ON DATABASE backend_user TO tecunify;
GRANT ALL PRIVILEGES ON DATABASE backend_admin TO tecunify;cd backend-user
mvn clean install -DskipTestsEdita src/main/resources/application.yml:
spring:
datasource:
url: jdbc:postgresql://localhost:5432/backend_user
username: postgres
password: tu_contraseña
jpa:
hibernate:
ddl-auto: update
show-sql: false
server:
port: 8081
servlet:
context-path: /api
jwt:
secret: tu_super_secret_key_aqui_minimo_256_bits
expiration: 86400000# Opción 1: Con Maven
mvn spring-boot:run
# Opción 2: Con JAR
java -jar target/backend-user-0.0.1-SNAPSHOT.jarAcceso:
- API Base:
http://localhost:8081/api - Swagger:
http://localhost:8081/api/swagger-ui.html - Health Check:
http://localhost:8081/api/actuator/health
cd backend-admin
# Crear entorno virtual
python -m venv venv
# Activar entorno
# En Windows:
venv\Scripts\activate
# En macOS/Linux:
source venv/bin/activate
# Instalar dependencias
pip install -r requirements.txtCopia .env.example a .env y edita:
DEBUG=True
SECRET_KEY=tu_secret_key_aqui
DATABASE_URL=postgresql://postgres:tu_contraseña@localhost:5432/backend_admin
ALLOWED_HOSTS=localhost,127.0.0.1
python manage.py migrate
python manage.py createsuperuserpython manage.py runserverAcceso:
- API Base:
http://localhost:8000/api - Admin:
http://localhost:8000/admin
cd frontend-web
# Instalar dependencias
npm installCrea .env:
REACT_APP_API_URL=http://localhost:8081/api
REACT_APP_ADMIN_URL=http://localhost:8000/api
# Desarrollo
npm start
# Producción
npm run build
npm run build-serveAcceso:
- Aplicación:
http://localhost:3000
- Abre Android Studio
- File → Open → Selecciona carpeta
frontend-movil - Espera a que sincronice las dependencias
Edita app/build.gradle.kts:
android {
compileSdk = 34
defaultConfig {
applicationId = "com.tuempresa.frontend_movil"
minSdk = 24
targetSdk = 34
versionCode = 1
versionName = "1.0"
// URL del backend
buildConfigField("String", "API_URL", "\"http://10.0.2.2:8081/api\"")
}
}# Desde Android Studio
# Presiona Shift + F10 (o Run → Run 'app')
# Desde terminal
cd frontend-movil
./gradlew installDebugAcceso:
- Emulador Android o dispositivo físico
Terminal 1: Backend User (Spring Boot)
cd backend-user
mvn spring-boot:runTerminal 2: Backend Admin (Django)
cd backend-admin
source venv/bin/activate # o venv\Scripts\activate en Windows
python manage.py runserverTerminal 3: Frontend Web (React)
cd frontend-web
npm startTerminal 4: Frontend Móvil (Android)
- Abre Android Studio y ejecuta desde la interfaz
Después de ejecutar todos los servicios:
# Backend User
curl http://localhost:8081/api/actuator/health
# Backend Admin
curl http://localhost:8000/api/health
# Frontend Web
# Abre en navegador: http://localhost:3000mvn clean install # Compilar
mvn spring-boot:run # Ejecutar
mvn test # Tests
mvn clean install -DskipTests # Compilar sin testspip install -r requirements.txt # Instalar deps
python manage.py runserver # Ejecutar
python manage.py migrate # Migraciones
python manage.py createsuperuser # Crear admin
python manage.py test # Testsnpm install # Instalar deps
npm start # Desarrollo
npm run build # Producción
npm test # Tests
npm run eject # Expulsar configcd frontend-movil
./gradlew build # Compilar
./gradlew installDebug # Instalar en emulador
./gradlew test # TestsCrea archivos .env en cada carpeta:
backend-user: application.yml (ya configurado)
backend-admin: .env
DEBUG=True
SECRET_KEY=your-secret-key
DATABASE_URL=postgresql://user:password@localhost:5432/backend_admin
ALLOWED_HOSTS=localhost,127.0.0.1
CORS_ALLOWED_ORIGINS=http://localhost:3000,http://localhost:8081
frontend-web: .env
REACT_APP_API_URL=http://localhost:8081/api
REACT_APP_ADMIN_URL=http://localhost:8000/api
frontend-movil: local.properties
sdk.dir=/path/to/android-sdk
| Servicio | Puerto | URL |
|---|---|---|
| Backend User | 8081 | http://localhost:8081/api |
| Backend Admin | 8000 | http://localhost:8000/api |
| Frontend Web | 3000 | http://localhost:3000 |
| PostgreSQL | 5432 | localhost:5432 |
| Android Emulador | - | 10.0.2.2 (para acceder localhost) |
# Instala Maven y agrega a PATH
# Verifica: mvn --version# Verifica que PostgreSQL esté corriendo
# Windows: services.msc
# macOS: brew services start postgresql
# Linux: sudo service postgresql start# Usa otro puerto
PORT=3001 npm start
# O mata el proceso
# Windows: netstat -ano | findstr :3000
# macOS/Linux: lsof -i :3000# Abre Android Studio → File → Invalidate Caches
# Luego reconstruye: Build → Clean Projectgit checkout -b feature/nueva-funcionalidad
# Haz tus cambios
git add .
git commit -m "Add: descripción de cambios"
git push origin feature/nueva-funcionalidad- Ve a GitHub/GitLab
- Crea un Pull Request
- Describe tus cambios
- Espera review
# Backend User
mvn clean package -DskipTests
# Backend Admin
pip freeze > requirements.txt
# Configura DEBUG=False en .env
# Frontend Web
npm run build
# Despliega carpeta 'build'
# Frontend Móvil
# Build Release desde Android StudioPara preguntas o problemas:
- Email: soporte@tuempresa.com
- Issues: GitHub Issues
- Wiki: Ver documentación
Este proyecto está bajo licencia MIT. Ver LICENSE para más detalles.
- Desarrollador Principal: Jefferson
- Fecha de Inicio: 2025-10-14
Última actualización: Octubre 2025