Una aplicación móvil moderna para la compra de pasajes de buses en Bolivia de forma rápida y sencilla.
BusRat nace con la idea de facilitar la compra de pasajes de buses desde el celular. Permite a cualquier persona buscar viajes, elegir asientos y confirmar reservas en pocos pasos, todo desde una interfaz móvil intuitiva.
- Frontend: React Native con Expo
- Backend: Node.js con Express
- Base de datos: PostgreSQL con Prisma ORM
- 🔍 Búsqueda de viajes por origen y destino
- 🪑 Selección de asientos interactiva
- 📱 Interfaz móvil optimizada
- 🔐 Sistema de autenticación seguro
- 💳 Confirmación de reservas
- 📊 Gestión de usuarios y viajes
- Node.js (v14 o superior)
- npm o yarn
- PostgreSQL
- Expo CLI
- Expo Go app (para testing en dispositivo físico)
# Clonar el repositorio
git clone [email protected]:link200309/Project-Boletos-Bus.git
cd Project-Boletos-Bus
# Instalar dependencias del backend
cd Server
npm install
# Configurar variables de entorno
cp .env.example .env
# Editar .env con tus credenciales de base de datos
# Configurar Prisma
npx prisma generate
npx prisma db push
# Iniciar servidor de desarrollo
npm run dev
# Instalar dependencias del frontend
cd ../Client
npm install
# Instalar Expo CLI globalmente (si no lo tienes)
npm install -g @expo/cli
# Iniciar el servidor de desarrollo
expo start
# Opciones para ejecutar:
# - Presiona 'a' para abrir en Android
# - Presiona 'i' para abrir en iOS Simulator
# - Escanea el código QR con Expo Go app
Project-Boletos-Bus/
├── Server/
│ ├── src/
│ │ ├── controllers/
│ │ ├── middlewares/
│ │ ├── models/
│ │ ├── routes/
│ │ ├── services/
│ │ └── generated/
│ ├── prisma/
│ ├── config.js
│ ├── index.js
│ ├── package.json
│ └── .env
├── Client/
│ ├── src/
│ │ ├── api/
│ │ ├── assets/
│ │ ├── components/
│ │ ├── context/
│ │ ├── navigation/
│ │ ├── screens/
│ │ └── utils/
│ ├── App.js
│ ├── app.json
│ ├── expo.json
│ ├── metro.config.js
│ ├── package.json
│ └── package-lock.json
└── README.md
- Crear una base de datos PostgreSQL
- Configurar las variables de entorno en
.env
:
DATABASE_URL="postgresql://usuario:contraseña@localhost:5432/busrat_db"
PORT=4000
- Configurar Prisma:
# Generar el cliente de Prisma
npx prisma generate
# Sincronizar el esquema con la base de datos
npx prisma db push
# (Opcional) Visualizar la base de datos
npx prisma studio
- Registro/Login: Los usuarios pueden registrarse o iniciar sesión
- Búsqueda: Buscar viajes por origen, destino y fecha
- Selección: Elegir el viaje y seleccionar asiento
- Reserva: Confirmar y procesar la reserva
- Gestión: Ver historial de reservas
- Fork el proyecto
- Crea una rama para tu feature (
git checkout -b feature/nueva-funcionalidad
) - Commit tus cambios (
git commit -m 'Añadir nueva funcionalidad'
) - Push a la rama (
git push origin feature/nueva-funcionalidad
) - Abre un Pull Request
npm run dev
- Inicia el servidor en modo desarrollonpm run start
- Inicia el servidor en producciónnpx prisma generate
- Genera el cliente de Prismanpx prisma db push
- Sincroniza el esquema con la base de datosnpx prisma studio
- Abre la interfaz visual de la base de datosnpm run test
- Ejecuta las pruebas
expo start
- Inicia el servidor de desarrollo de Expoexpo start --android
- Inicia directamente en Androidexpo start --ios
- Inicia directamente en iOS Simulatorexpo start --web
- Inicia en navegador webexpo build
- Construye la app para producciónnpm run test
- Ejecuta las pruebassetx /M REACT_NATIVE_PACKAGER_HOSTNAME TU-DIRECCION-IP-EN-TU-RED-WIFI
- Cambia la dirección IP donde se ejecuta Expo, en caso se requiera
- Autenticación JWT
- Validación de datos de entrada
- Sanitización de consultas SQL
- Cifrado de contraseñas
Este proyecto está bajo la Licencia MIT. Ver el archivo LICENSE
para más detalles.
Para preguntas o sugerencias, puedes contactarnos a través de:
- GitHub Issues: Reportar un problema
- Email: [[email protected]]
⭐ ¡Si te gusta este proyecto, no olvides darle una estrella en GitHub!