united-tattoo/docs/PROJECT-DOCUMENTATION.md
2025-10-07 01:16:26 -06:00

11 KiB

last-redoc-date
2025-10-07

United Tattoo - Complete Project Documentation

Project Overview

United Tattoo is a modern, professional website built for United Tattoo studio in Fountain, CO. This Next.js application showcases the studio's artists, services, and booking capabilities with a cinematic, high-contrast design that reflects the artistry and community spirit of the tattoo studio.

Key Information

  • Project Name: United Tattoo Official Website
  • Version: 0.1.0
  • Framework: Next.js 14.2.16 with App Router
  • Language: TypeScript
  • Styling: Tailwind CSS 4.1.9
  • UI Components: ShadCN UI
  • Deployment: Cloudflare Pages via OpenNext
  • Database: Cloudflare D1 (SQLite)

Technology Stack

Core Technologies

  • Next.js 14.2.16: React framework with App Router
  • TypeScript: Type-safe JavaScript
  • Tailwind CSS 4.1.9: Utility-first CSS framework
  • ShadCN UI: Modern React component library
  • React 18: UI library
  • Cloudflare Pages: Hosting platform
  • Cloudflare D1: SQLite database

Key Dependencies

  • Authentication: NextAuth.js with Supabase adapter
  • File Storage: AWS S3 SDK for R2 uploads
  • Forms: React Hook Form with Zod validation
  • UI Components: Radix UI primitives
  • Icons: Lucide React
  • Smooth Scrolling: @studio-freight/lenis
  • Data Fetching: @tanstack/react-query
  • Testing: Vitest with Testing Library

Project Structure

united-tattoo/
├── app/                          # Next.js App Router pages
│   ├── page.tsx                 # Homepage
│   ├── aftercare/               # Aftercare instructions
│   ├── artists/                 # Artist listings and profiles
│   ├── book/                    # Booking flow
│   ├── contact/                 # Contact information
│   ├── deposit/                 # Deposit policy and payments
│   ├── gift-cards/              # Gift card information
│   ├── privacy/                 # Privacy policy
│   ├── specials/                # Promotions and specials
│   └── terms/                   # Terms of service
├── components/                   # React components
│   ├── ui/                      # ShadCN UI primitives
│   ├── hero-section.tsx         # Homepage hero
│   ├── artists-section.tsx      # Artists showcase
│   ├── services-section.tsx     # Services display
│   ├── contact-section.tsx      # Contact information
│   └── booking-form.tsx         # Multi-step booking form
├── data/                        # Static data and configuration
│   └── artists.ts               # Artist metadata
├── lib/                         # Utility libraries
│   ├── auth.ts                  # Authentication configuration
│   ├── db.ts                    # Database connection
│   ├── upload.ts                # File upload utilities
│   └── validations.ts           # Form validation schemas
├── public/                      # Static assets
│   ├── artists/                 # Artist images and work samples
│   └── united-logo-*.png/jpg    # Brand assets
├── sql/                         # Database schema and migrations
├── __tests__/                   # Test files
├── docs/                        # Documentation
└── bmad/                        # BMAD framework configuration

Core Features

1. Homepage

  • Hero Section: Cinematic split imagery with parallax effects
  • Artists Section: Grid display of studio artists
  • Services Section: Overview of tattoo services
  • Contact Section: Quick contact information and CTA

2. Artist Management

  • Artist Listings: Grid view of all artists with metadata
  • Artist Profiles: Detailed pages for each artist
  • Work Samples: Portfolio images for each artist
  • Specialties: Artist-specific expertise and styles

3. Booking System

  • Multi-step Form: Progressive booking flow
  • Form Validation: Client and server-side validation
  • Service Selection: Choose tattoo type and artist
  • Contact Information: Collect customer details

4. Content Pages

  • Aftercare Instructions: General and transparent bandage care
  • Deposit Policy: Payment options and compliance information
  • Terms of Service: Legal terms and conditions
  • Privacy Policy: Data handling and privacy practices
  • Gift Cards: Gift card information and balance checking
  • Specials: Current promotions and VIP offerings

5. Administrative Features

  • Artist Dashboard: Management interface for artists
  • Admin Panel: Site administration capabilities
  • Search Functionality: Search artists and services
  • Contact Management: Handle contact form submissions

Design System

Visual Design

  • Color Scheme: Monochrome foundation with high contrast
  • Typography: Geist font family for modern, clean typography
  • Layout: Split-screen designs with cinematic imagery
  • Animations: Subtle parallax effects and smooth transitions

Component Library

  • ShadCN UI: Consistent component library throughout
  • Radix UI: Accessible primitive components
  • Lucide Icons: Consistent iconography
  • Tailwind CSS: Utility-first styling approach

Responsive Design

  • Mobile-First: Progressive enhancement for larger screens
  • Touch-Friendly: Optimized for mobile interactions
  • Performance: Optimized images and lazy loading

Development Workflow

Local Development

# Install dependencies
npm install

# Start development server
npm run dev

# Run linting
npm run lint

# Run tests
npm run test

# Build for production
npm run build

Testing Strategy

  • Unit Tests: Vitest with Testing Library
  • Integration Tests: Component and API testing
  • E2E Tests: End-to-end user flow testing
  • Coverage: Code coverage reporting

Continuous Integration

  • Linting: ESLint configuration
  • Type Checking: TypeScript compilation
  • Testing: Automated test execution
  • Build: Production build verification
  • Bundle Analysis: Size budget enforcement

Database Architecture

Schema Design

  • Artists Table: Artist information and metadata
  • Bookings Table: Appointment and booking data
  • Services Table: Tattoo services and pricing
  • Users Table: User authentication and profiles
  • Contacts Table: Contact form submissions

Migrations

  • Version Control: SQL migration files in sql/migrations/
  • Environment Management: Separate preview and production migrations
  • Rollback Support: Down migration scripts available

Deployment Architecture

Hosting

  • Platform: Cloudflare Pages
  • Build Process: OpenNext for Next.js optimization
  • Static Assets: Optimized for CDN delivery
  • Edge Computing: Global distribution

Database

  • Platform: Cloudflare D1
  • Type: SQLite-compatible serverless database
  • Backups: Automated backup system
  • Local Development: Local D1 instance for development

Performance Optimization

  • Bundle Size: Enforced size budgets (3MB total, 1.5MB assets)
  • Image Optimization: Static image serving
  • Code Splitting: Automatic route-based splitting
  • Caching: Aggressive caching strategies

Security Considerations

Authentication

  • NextAuth.js: Secure authentication framework
  • Supabase Adapter: User management integration
  • Session Management: Secure session handling
  • OAuth Integration: Social login support

Data Protection

  • Input Validation: Zod schema validation
  • SQL Injection Prevention: Parameterized queries
  • XSS Protection: Content security policies
  • File Upload Security: Type and size validation

API Integration

External Services

  • Cloudflare R2: File storage and CDN
  • Stripe: Payment processing
  • Afterpay: Alternative payment method
  • Email Service: Contact form notifications

Internal APIs

  • Artist API: Artist data management
  • Booking API: Appointment scheduling
  • Search API: Content search functionality
  • Upload API: File upload handling

Monitoring and Analytics

Performance Monitoring

  • Bundle Analysis: Automated size reporting
  • Core Web Vitals: Performance metrics
  • Error Tracking: Application error monitoring
  • Uptime Monitoring: Service availability

Business Analytics

  • User Engagement: Page views and interactions
  • Conversion Tracking: Booking completion rates
  • Popular Content: Most viewed artists and services
  • Contact Analytics: Contact form submissions

Maintenance and Updates

Regular Maintenance

  • Dependency Updates: Automated security updates
  • Content Updates: Artist information and portfolios
  • Performance Monitoring: Regular performance audits
  • Security Audits: Security vulnerability scanning

Update Process

  1. Development: Feature development in feature branches
  2. Testing: Comprehensive testing in staging environment
  3. Deployment: Automated deployment to production
  4. Monitoring: Post-deployment monitoring and rollback capability

Future Enhancements

Planned Features

  • Online Booking: Full appointment scheduling system
  • Payment Integration: Online deposit and payment processing
  • Artist Portfolios: Enhanced portfolio management
  • Customer Reviews: Customer testimonial system
  • SMS Notifications: Appointment reminders via SMS

Technical Improvements

  • Progressive Web App: PWA capabilities for mobile
  • Offline Support: Service worker implementation
  • Advanced Search: Enhanced search with filtering
  • Accessibility: WCAG compliance improvements
  • Performance: Further optimization and caching

Contributing Guidelines

Development Standards

  • Code Style: ESLint and Prettier configuration
  • Type Safety: Strict TypeScript configuration
  • Testing: Test coverage requirements
  • Documentation: Comprehensive code documentation

Git Workflow

  • Branch Strategy: Feature branch workflow
  • Commit Messages: Conventional commit format
  • Pull Requests: Code review requirements
  • Deployment: Automated deployment from main branch

Support and Contact

Technical Support

  • Documentation: Comprehensive project documentation
  • Issue Tracking: GitHub issues for bug reports
  • Community: Developer community support
  • Emergency: Direct contact for critical issues

Business Contact

  • Studio: United Tattoo, Fountain, CO
  • Website: Live deployment URL
  • Phone: Studio contact number
  • Email: Business email address

This documentation was generated on 2025-10-07 and reflects the current state of the United Tattoo project. For the most up-to-date information, please refer to the source code and project repository.