Práctica Universitaria - UCSD

UCSD Print

Sistema de Gestión de Impresiones Universitarias

Análisis y Diseño de Sistemas Orientado a Objetos II
JP

Jeffry Patiño

Desarrollador Full Stack

JM

Jose Martinez

Desarrollador Full Stack

Acerca del Proyecto

¿Qué es UCSD Print?

UCSD Print es una aplicación web completa para la gestión de impresiones en la Universidad Católica Santo Domingo. Permite a los estudiantes subir documentos, configurar opciones de impresión, realizar pagos digitales y recoger sus impresiones en puntos designados del campus.

Multi-Usuario

Estudiantes, Staff y Administradores

Seguro

Autenticación JWT y bcrypt

Web Moderno

Interfaz responsive y atractiva

Tiempo Real

Actualizaciones instantáneas

Tecnologías Utilizadas

Stack Tecnológico

Construido con las tecnologías más modernas y demandadas en el mercado

Frontend

Next.js 15

Framework React con App Router y Server Components

React 18

Librería de UI con Hooks y Suspense

TypeScript

Tipado estático para código más seguro

Tailwind CSS

Framework de CSS utility-first

Backend

API Routes

Endpoints REST integrados en Next.js

Prisma ORM

ORM moderno con migrations y type-safe

MySQL

Base de datos relacional robusta

NextAuth.js

Autenticación con JWT y sessions

// Ejemplo de API Route con Prisma
import { prisma } from '@/lib/prisma'
import { getServerSession } from 'next-auth'

export async function GET() {
  const session = await getServerSession()

  const orders = await prisma.order.findMany({
    where: { userId: session.user.id },
    include: { items: true }
  })

  return Response.json(orders)
}
Diseño de Datos

Arquitectura de Base de Datos

Modelo relacional normalizado con Prisma ORM y MySQL

User

id: String (CUID)
email: String (único)
password: String (hash)
firstName, lastName
studentId: String
role: STUDENT | ADMIN | STAFF
balance: Decimal
isActive: Boolean

Order

id: String (CUID)
orderNumber: String
pickupPin: String
userId: FK → User
status: PENDING | READY...
totalPages: Int
totalCost: Decimal
pickupLocation: String

OrderItem

id: String (CUID)
orderId: FK → Order
fileName: String
pages, copies: Int
colorMode: BW | COLOR
paperSize: LETTER | A4...
printSides: SINGLE | DOUBLE
itemCost: Decimal

Transaction

id: String (CUID)
userId: FK → User
orderId: FK → Order
type: RECHARGE | PAYMENT
amount: Decimal
balanceBefore/After
status: COMPLETED...

Notification

id: String (CUID)
userId: FK → User
title, message: String
type: INFO | SUCCESS...
isRead: Boolean
link: String (opcional)

SupportTicket

id: String (CUID)
userId: FK → User
subject, message: String
category: String
status: OPEN | RESOLVED
priority: LOW | HIGH...
responses: JSON[]

Relaciones Principales

User → Orders (1:N)
Order → OrderItems (1:N)
User → Transactions (1:N)
Order → Transaction (1:1)
User → Notifications (1:N)
User → SupportTickets (1:N)
Arquitectura

Arquitectura del Sistema

Capa de Presentación

  • React Components
  • Tailwind CSS
  • Client-side State
  • Form Validation

Capa de Negocio

  • API Routes (REST)
  • Authentication
  • File Processing
  • Business Logic

Capa de Datos

  • Prisma ORM
  • MySQL Database
  • File Storage
  • Data Validation
Módulos del Sistema

Funcionalidades Principales

Portal Estudiante

  • Dashboard con estadísticas personales
  • Subida y configuración de documentos
  • Gestión de saldo y recargas
  • Historial de pedidos y transacciones
  • Sistema de soporte con tickets
  • Notificaciones en tiempo real

Portal Staff

  • Cola de pedidos pendientes
  • Scanner QR para entregas
  • Actualización de estados
  • Procesamiento de impresiones
  • Verificación con PIN de pickup
  • Registro de entregas

Panel Administrativo

Estadísticas globales del sistema
Gestión de usuarios y roles
Control de pedidos y estados
Configuración de precios
Reportes y analíticas
Gestión de puntos de recogida
Experiencia de Usuario

Diseno Mobile-First

Aplicacion 100% responsive con diseno optimizado para dispositivos moviles

UCSD Print

Sistema de Impresiones

Bienvenido

Login Movil

Hola,

Usuario

Saldo Disponible

RD$ 485.00

Este mes

12

Paginas

156

ACCIONES

Imprimir

Recargar

Pedidos

Dashboard App

Mis Pedidos

Documento.pdf

ORD-2411-X7K2

Listo
12 pagRD$ 36.00

Documento.pdf

ORD-2411-X7K2

Proceso
12 pagRD$ 36.00

Documento.pdf

ORD-2411-X7K2

Entregado
12 pagRD$ 36.00

Lista de Pedidos

📱

Navegacion Inferior

Bottom navigation tipo app nativa para facil acceso

👆

Touch Optimizado

Botones y controles grandes para interaccion tactil

🎨

UI Adaptativo

Interfaces diferentes para movil y escritorio

Gestos Nativos

Soporte para swipe, tap y gestos comunes

¿Listo para explorar la aplicación?

Accede al sistema completo de UCSD Print y descubre todas sus funcionalidades