From 45ceeba9e34f4fe1a8bf12a10483f5e7b94c847d Mon Sep 17 00:00:00 2001 From: Ivan Date: Sun, 8 Feb 2026 02:46:29 +0000 Subject: [PATCH] feat: rebrand application from Padel Pro to SmashPoint Complete rename across all layers: UI branding, package names (@smashpoint/web, @smashpoint/shared), infrastructure (Docker, DB config), seed data, documentation, and logo/favicon. Co-Authored-By: Claude Opus 4.6 --- Dockerfile | 2 +- README.md | 16 ++-- apps/web/.env.example | 2 +- apps/web/app/(admin)/settings/page.tsx | 4 +- apps/web/app/(auth)/login/page.tsx | 53 ++++------- apps/web/app/api/bookings/route.ts | 2 +- apps/web/app/api/clients/route.ts | 2 +- apps/web/app/icon.svg | 6 ++ apps/web/app/layout.tsx | 4 +- apps/web/app/page.tsx | 13 ++- apps/web/components/layout/sidebar.tsx | 13 ++- apps/web/next.config.js | 2 +- apps/web/package-lock.json | 4 +- apps/web/package.json | 4 +- apps/web/prisma/seed.ts | 22 ++--- apps/web/public/logo.png | Bin 0 -> 1228445 bytes docker-compose.yml | 16 ++-- docs/API.md | 4 +- docs/DEPLOYMENT.md | 84 +++++++++--------- docs/plans/2026-02-01-padel-pro-design.md | 6 +- .../2026-02-01-padel-pro-implementation.md | 22 ++--- package-lock.json | 4 +- package.json | 2 +- packages/shared/package-lock.json | 4 +- packages/shared/package.json | 2 +- pnpm-lock.yaml | 2 +- scripts/init-db.sql | 4 +- 27 files changed, 152 insertions(+), 147 deletions(-) create mode 100644 apps/web/app/icon.svg create mode 100644 apps/web/public/logo.png diff --git a/Dockerfile b/Dockerfile index 12cdd6d..37760a2 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -# Dockerfile para Padel Pro +# Dockerfile para SmashPoint # Multi-stage build para optimizar el tamano de la imagen # ============================================ diff --git a/README.md b/README.md index 581f585..a87e0fc 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Padel Pro +# SmashPoint Sistema integral de gestion para clubes de padel. Una solucion moderna y completa para administrar reservas, ventas, torneos, membresias y multiples sedes. @@ -69,8 +69,8 @@ Sistema integral de gestion para clubes de padel. Una solucion moderna y complet ```bash # Clonar el repositorio -git clone https://github.com/tu-organizacion/padel-pro.git -cd padel-pro +git clone https://github.com/tu-organizacion/smashpoint.git +cd smashpoint # Instalar dependencias pnpm install @@ -99,7 +99,7 @@ La aplicacion estara disponible en `http://localhost:3000` ## Estructura del Proyecto ``` -padel-pro/ +smashpoint/ ├── apps/ │ └── web/ # Aplicacion Next.js principal │ ├── app/ @@ -137,7 +137,7 @@ Crear un archivo `.env` en `apps/web/` con las siguientes variables: ```env # Base de datos -DATABASE_URL="postgresql://usuario:password@localhost:5432/padel_pro?schema=public" +DATABASE_URL="postgresql://usuario:password@localhost:5432/smashpoint_db?schema=public" # NextAuth NEXTAUTH_SECRET="tu-clave-secreta-aqui" @@ -211,8 +211,8 @@ Despues de ejecutar el seed, puedes acceder con: | Usuario | Password | Rol | |---------|----------|-----| -| `admin@padelpro.com` | `admin123` | Super Admin | -| `recepcion@padelpro.com` | `recepcion123` | Recepcionista | +| `admin@smashpoint.com` | `admin123` | Super Admin | +| `recepcion@smashpoint.com` | `recepcion123` | Recepcionista | > **IMPORTANTE:** Cambiar estas credenciales inmediatamente en entornos de produccion. @@ -254,7 +254,7 @@ Este proyecto esta bajo la Licencia MIT. Ver el archivo [LICENSE](LICENSE) para ``` MIT License -Copyright (c) 2024 Padel Pro +Copyright (c) 2024 SmashPoint Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/apps/web/.env.example b/apps/web/.env.example index eb2c8ef..d265cd5 100644 --- a/apps/web/.env.example +++ b/apps/web/.env.example @@ -1,4 +1,4 @@ -DATABASE_URL="postgresql://user:password@localhost:5432/padel_pro?schema=public" +DATABASE_URL="postgresql://user:password@localhost:5432/smashpoint_db?schema=public" NEXTAUTH_SECRET="your-secret-key-here" NEXTAUTH_URL="http://localhost:3000" NEXT_PUBLIC_APP_URL="http://localhost:3000" diff --git a/apps/web/app/(admin)/settings/page.tsx b/apps/web/app/(admin)/settings/page.tsx index 949af60..206aa65 100644 --- a/apps/web/app/(admin)/settings/page.tsx +++ b/apps/web/app/(admin)/settings/page.tsx @@ -55,8 +55,8 @@ export default function SettingsPage() { const [message, setMessage] = useState<{ type: "success" | "error"; text: string } | null>(null); // Organization state - const [orgName, setOrgName] = useState("Padel Pro Demo"); - const [orgEmail, setOrgEmail] = useState("info@padelpro.com"); + const [orgName, setOrgName] = useState("SmashPoint Demo"); + const [orgEmail, setOrgEmail] = useState("info@smashpoint.com"); const [orgPhone, setOrgPhone] = useState("+52 555 123 4567"); const [currency, setCurrency] = useState("MXN"); const [timezone, setTimezone] = useState("America/Mexico_City"); diff --git a/apps/web/app/(auth)/login/page.tsx b/apps/web/app/(auth)/login/page.tsx index 4cff09e..8ed408f 100644 --- a/apps/web/app/(auth)/login/page.tsx +++ b/apps/web/app/(auth)/login/page.tsx @@ -11,29 +11,20 @@ function LoginContent() {
{/* Logo */}
-
- - {/* Padel racket stylized icon */} - - - - - - - - - - +
+ + {/* Lightning bolt / smash icon */} + + {/* Impact sparks */} + + +
{/* Title */} -

Padel Pro

+

SmashPoint

{/* Tagline */}

@@ -104,25 +95,15 @@ function LoginContent() {

{/* Mobile Logo */}
-
- - - - - - - - - - - +
+ + + + +
-

Padel Pro

+

SmashPoint

Sistema de Gestion para Clubes de Padel

@@ -130,7 +111,7 @@ function LoginContent() { {/* Footer */}

- © {new Date().getFullYear()} Padel Pro. Todos los derechos reservados. + © {new Date().getFullYear()} SmashPoint. Todos los derechos reservados.

diff --git a/apps/web/app/api/bookings/route.ts b/apps/web/app/api/bookings/route.ts index b45d145..8db0f31 100644 --- a/apps/web/app/api/bookings/route.ts +++ b/apps/web/app/api/bookings/route.ts @@ -2,7 +2,7 @@ import { NextRequest, NextResponse } from 'next/server'; import { getServerSession } from 'next-auth'; import { authOptions } from '@/lib/auth'; import { db } from '@/lib/db'; -import { createBookingSchema } from '@padel-pro/shared'; +import { createBookingSchema } from '@smashpoint/shared'; import { Decimal } from '@prisma/client/runtime/library'; // Helper function to check if a time is premium (after 18:00 or weekend) diff --git a/apps/web/app/api/clients/route.ts b/apps/web/app/api/clients/route.ts index 34f3c73..0bcb352 100644 --- a/apps/web/app/api/clients/route.ts +++ b/apps/web/app/api/clients/route.ts @@ -2,7 +2,7 @@ import { NextRequest, NextResponse } from 'next/server'; import { getServerSession } from 'next-auth'; import { authOptions } from '@/lib/auth'; import { db } from '@/lib/db'; -import { createClientSchema } from '@padel-pro/shared'; +import { createClientSchema } from '@smashpoint/shared'; // GET /api/clients - List/search clients export async function GET(request: NextRequest) { diff --git a/apps/web/app/icon.svg b/apps/web/app/icon.svg new file mode 100644 index 0000000..0fe275a --- /dev/null +++ b/apps/web/app/icon.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/apps/web/app/layout.tsx b/apps/web/app/layout.tsx index 8f107cf..8fe9a95 100644 --- a/apps/web/app/layout.tsx +++ b/apps/web/app/layout.tsx @@ -5,10 +5,10 @@ import "./globals.css"; const inter = Inter({ subsets: ["latin"] }); export const metadata: Metadata = { - title: "Padel Pro", + title: "SmashPoint", description: "Sistema de Gestión para Clubes de Pádel", keywords: ["padel", "club", "reservas", "gestión", "deportes"], - authors: [{ name: "Padel Pro Team" }], + authors: [{ name: "SmashPoint Team" }], }; export default function RootLayout({ diff --git a/apps/web/app/page.tsx b/apps/web/app/page.tsx index 29f6cfd..ce9d26a 100644 --- a/apps/web/app/page.tsx +++ b/apps/web/app/page.tsx @@ -4,8 +4,19 @@ export default function Home() { return (
+ {/* Logo */} +
+
+ + + + + + +
+

- Padel Pro + SmashPoint

Sistema de Gestion para Clubes de Padel diff --git a/apps/web/components/layout/sidebar.tsx b/apps/web/components/layout/sidebar.tsx index e074d7f..eee0839 100644 --- a/apps/web/components/layout/sidebar.tsx +++ b/apps/web/components/layout/sidebar.tsx @@ -38,10 +38,17 @@ export function Sidebar() {