diff --git a/README.md b/README.md index da1bedb40..bc5ea201b 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@
-

πŸš€ DEPLOYMENT COMMAND

+

DEPLOYMENT COMMAND

npm run pages:build && wrangler deploy
@@ -27,17 +27,17 @@

Professional tattoo studio platform built on Cloudflare's edge network
- ⚑ Lightning-fast β€’ 🎨 Artist-first β€’ πŸ“… Calendar-integrated + Lightning-fast β€’ Artist-first β€’ Calendar-integrated

- 🌐 View Live Site » + View Live Site »

Quick Start Β· - πŸ› Report Bug + Report Bug Β· - ✨ Request Feature + Request Feature

@@ -45,35 +45,35 @@
-

πŸ“‘ Table of Contents

+

Table of Contents

    -
  1. 🎯 About The Project +
  2. About The Project
  3. -
  4. πŸ› οΈ Tech Stack
  5. -
  6. πŸ—οΈ Architecture
  7. -
  8. πŸš€ Getting Started +
  9. Tech Stack
  10. +
  11. Architecture
  12. +
  13. Getting Started
  14. -
  15. πŸ’» Development +
  16. Development
  17. -
  18. 🌍 Deployment
  19. -
  20. πŸ“š Documentation
  21. -
  22. πŸ—ΊοΈ Roadmap
  23. -
  24. 🀝 Contributing
  25. -
  26. πŸ“„ License
  27. -
  28. πŸ“¬ Contact
  29. +
  30. Deployment
  31. +
  32. Documentation
  33. +
  34. Roadmap
  35. +
  36. Contributing
  37. +
  38. License
  39. +
  40. Contact
@@ -81,7 +81,7 @@ -## 🎯 About The Project +## About The Project
United Tattoo Studio @@ -91,26 +91,26 @@ **United Tattoo** is a comprehensive tattoo studio management platform designed for [United Tattoo](https://united-tattoos.com), a professional tattoo studio in **Fountain, Colorado**. This platform seamlessly integrates artist portfolios, appointment booking, flash tattoo marketplace, and real-time calendar synchronizationβ€”all running on Cloudflare's global edge network for exceptional performance. -### ✨ Key Features +### Key Features
-#### 🎨 **Artist Management** +#### **Artist Management** - Dynamic portfolio galleries with Instagram integration - SEO-friendly artist pages (`/artists/artist-name`) - Specialty tracking and hourly rate management - Active/inactive status control - Self-service artist dashboard -#### ⚑ **Flash Tattoo Marketplace** +#### **Flash Tattoo Marketplace** - Pre-drawn designs available for instant booking - Responsive carousel UI with smooth scrolling - Pricing and availability management - Direct integration with booking system -#### πŸ“… **Smart Booking System** +#### **Smart Booking System** - Client appointment scheduling - Multiple status workflows (PENDING β†’ CONFIRMED β†’ IN_PROGRESS β†’ COMPLETED) - Deposit and payment tracking @@ -119,20 +119,20 @@ -#### πŸ”„ **CalDAV/Nextcloud Integration** +#### **CalDAV/Nextcloud Integration** - **Bidirectional calendar sync** with Nextcloud - Real-time availability checking - Per-artist calendar configuration - Sync logging and monitoring - Automatic conflict prevention -#### πŸ” **Nextcloud OAuth Authentication** +#### **Nextcloud OAuth Authentication** - Auto-provisioning based on Nextcloud groups - Role-based access control (SUPER_ADMIN, SHOP_ADMIN, ARTIST, CLIENT) - Seamless integration with existing artist portal - Emergency admin credentials fallback -#### πŸ“Š **Comprehensive Dashboards** +#### **Comprehensive Dashboards** - **Admin Dashboard**: Analytics, portfolio management, calendar oversight, artist management - **Artist Dashboard**: Profile editing, portfolio management, appointment view - File upload management with R2 cloud storage @@ -141,23 +141,23 @@
-### πŸ’‘ Why United Tattoo? +### Why United Tattoo?
-**🌍 Edge-First Architecture** +**Edge-First Architecture** Built on Cloudflare Workers for global performance with <100ms response times worldwide. -**πŸ”— Nextcloud-First Integration** +**Nextcloud-First Integration** Seamless authentication and calendar sync with existing artist infrastructureβ€”no duplicate account management. -**⚑ Zero-ORM Overhead** +**Zero-ORM Overhead** Direct Cloudflare D1 integration via bindings for maximum performance. -**πŸ“¦ Bundle Size Enforced** +**Bundle Size Enforced** CI/CD enforces 3MB static budget to ensure lightning-fast page loads. -**πŸ§ͺ Test Coverage** +**Test Coverage** Comprehensive Vitest test suite with coverage tracking.
@@ -166,7 +166,7 @@ Comprehensive Vitest test suite with coverage tracking. --- -## πŸ› οΈ Tech Stack +## Tech Stack
@@ -200,7 +200,7 @@ Comprehensive Vitest test suite with coverage tracking.
-πŸ“¦ Complete Dependency List +Complete Dependency List **Core Dependencies:** - Next.js 14.2.33 (App Router) @@ -241,14 +241,14 @@ Comprehensive Vitest test suite with coverage tracking. --- -## πŸ—οΈ Architecture +## Architecture
```mermaid graph TB subgraph "Client Layer" - Browser[🌐 Browser] + Browser[Browser] end subgraph "Edge Layer - Cloudflare Workers" @@ -281,7 +281,7 @@ graph TB
-### πŸ”„ System Flow +### System Flow
Authentication Flow @@ -357,7 +357,7 @@ pullCalendarEventsToDatabase()
-### πŸ“ Project Structure +### Project Structure ``` united-tattoo/ @@ -398,18 +398,18 @@ united-tattoo/ --- -## πŸš€ Getting Started +## Getting Started -### πŸ“‹ Prerequisites +### Prerequisites
-⚠️ Required Accounts & Access +Required Accounts & Access Before starting, ensure you have: -- βœ… **Cloudflare Account** with access to Workers, D1, R2, and Pages -- βœ… **Nextcloud Instance** with admin access for OAuth app creation -- βœ… **Node.js 18+** and npm installed -- βœ… **Wrangler CLI** version 3+ +- **Cloudflare Account** with access to Workers, D1, R2, and Pages +- **Nextcloud Instance** with admin access for OAuth app creation +- **Node.js 18+** and npm installed +- **Wrangler CLI** version 3+
**Install Wrangler:** @@ -422,7 +422,7 @@ npm install -g wrangler - **D1 Database**: SQLite database (named `united-tattoo`) - **R2 Buckets**: File storage (`united-tattoo`, `united-tattoo-inc-cache`) -### βš™οΈ Installation +### Installation 1. **Clone the repository** ```bash @@ -476,10 +476,10 @@ npm install -g wrangler

(back to top)

-### πŸ” Environment Variables +### Environment Variables
-πŸ“ Required Variables +Required Variables | Variable | Description | Example | |----------|-------------|---------| @@ -505,7 +505,7 @@ npm install -g wrangler
-πŸ”§ Optional Variables +Optional Variables | Variable | Description | Default | |----------|-------------|---------| @@ -526,16 +526,16 @@ npm install -g wrangler
-πŸ’‘ Pro Tip: Use .env.local for local development and configure production variables in Cloudflare dashboard under Settings β†’ Environment Variables. +Pro Tip: Use .env.local for local development and configure production variables in Cloudflare dashboard under Settings β†’ Environment Variables.

(back to top)

--- -## πŸ’» Development +## Development -### ⌨️ Common Commands +### Common Commands @@ -546,7 +546,7 @@ npm install -g wrangler - + @@ -556,7 +556,7 @@ npm install -g wrangler - + @@ -574,7 +574,7 @@ npm install -g wrangler - + @@ -592,7 +592,7 @@ npm install -g wrangler - + @@ -614,7 +614,7 @@ npm install -g wrangler - + @@ -631,10 +631,10 @@ npm install -g wrangler
πŸ”§ Development
Development
npm run dev Start Next.js dev server (port 3000)Build and preview with OpenNext/Cloudflare
πŸ§ͺ Testing
Testing
npm run test Run Vitest in watch modeRun tests with coverage report
πŸ—οΈ Build & Deployment
Build & Deployment
npm run pages:build Build with OpenNext for CloudflareDeploy to Cloudflare Pages
πŸ” Code Quality
Code Quality
npm run ci:lint Run ESLintCheck bundle size budgets
✨ Formatting
Formatting
npm run lint Run ESLint
-### πŸ—„οΈ Database Management +### Database Management
-πŸ“¦ Migration Commands +Migration Commands **Local Database:** ```bash @@ -687,7 +687,7 @@ wrangler d1 execute united-tattoo --command="SELECT * FROM users"
-πŸ”„ Creating New Migrations +Creating New Migrations 1. Create migration file in `sql/migrations/` with format: ``` @@ -730,14 +730,14 @@ wrangler d1 execute united-tattoo --command="SELECT * FROM users" --- -## 🌍 Deployment +## Deployment **Production URL:** [https://united-tattoos.com](https://united-tattoos.com) -### πŸš€ Deployment Process +### Deployment Process
-⚑ Quick Deploy Command

+Quick Deploy Command

npm run pages:build && wrangler deploy
@@ -758,17 +758,17 @@ wrangler d1 execute united-tattoo --command="SELECT * FROM users" - Check Cloudflare dashboard: Workers & Pages β†’ united-tattoo - Visit production URL: https://united-tattoos.com -### πŸ”„ CI/CD Pipeline +### CI/CD Pipeline The project uses **Gitea workflows** for automated CI/CD: **Workflows:** - **`ci.yaml`** - Main CI pipeline - - βœ… ESLint - - βœ… TypeScript type checking - - βœ… Vitest tests with coverage - - βœ… Production build - - βœ… Bundle size budgets + - ESLint + - TypeScript type checking + - Vitest tests with coverage + - Production build + - Bundle size budgets - **`deploy.yaml`** - Automated deployments - Triggers on push to `main` branch @@ -788,10 +788,10 @@ The project uses **Gitea workflows** for automated CI/CD: Enforced by `scripts/budgets.mjs` in CI. -### 🐳 Docker Support +### Docker Support
-πŸ‹ Docker Deployment (Alternative) +Docker Deployment (Alternative) The project includes a Dockerfile for self-hosting: @@ -816,20 +816,20 @@ docker run --rm -p 3000:3000 \ --- -## πŸ“š Documentation +## Documentation Comprehensive documentation is available in the [`docs/`](docs/) directory: -### πŸ”‘ Key Documentation +### Key Documentation | Document | Description | |----------|-------------| -| πŸ“˜ [**NEXTCLOUD-OAUTH-SETUP.md**](docs/NEXTCLOUD-OAUTH-SETUP.md) | Complete guide to setting up Nextcloud OAuth and group-based authentication | -| πŸ“— [**CALDAV-SETUP.md**](docs/CALDAV-SETUP.md) | Instructions for configuring CalDAV calendar synchronization | -| πŸ“™ [**CI-CD-PIPELINE.md**](docs/CI-CD-PIPELINE.md) | Detailed CI/CD pipeline documentation and troubleshooting | -| πŸ“• [**BOOKING-WORKFLOW-FINAL-PLAN.md**](docs/BOOKING-WORKFLOW-FINAL-PLAN.md) | Complete booking system architecture and workflow | +| [**NEXTCLOUD-OAUTH-SETUP.md**](docs/NEXTCLOUD-OAUTH-SETUP.md) | Complete guide to setting up Nextcloud OAuth and group-based authentication | +| [**CALDAV-SETUP.md**](docs/CALDAV-SETUP.md) | Instructions for configuring CalDAV calendar synchronization | +| [**CI-CD-PIPELINE.md**](docs/CI-CD-PIPELINE.md) | Detailed CI/CD pipeline documentation and troubleshooting | +| [**BOOKING-WORKFLOW-FINAL-PLAN.md**](docs/BOOKING-WORKFLOW-FINAL-PLAN.md) | Complete booking system architecture and workflow | -### πŸ“‘ Additional Documentation +### Additional Documentation
View All Documentation Files @@ -859,7 +859,7 @@ Comprehensive documentation is available in the [`docs/`](docs/) directory:
-### πŸ€– AI Development Guide +### AI Development Guide The project includes **[`CLAUDE.md`](CLAUDE.md)** with comprehensive instructions for AI assistants (like Claude Code) working with this codebase, including: - Complete architecture overview @@ -873,9 +873,9 @@ The project includes **[`CLAUDE.md`](CLAUDE.md)** with comprehensive instruction --- -## πŸ—ΊοΈ Roadmap +## Roadmap -### βœ… Completed Features +### Completed Features - [x] Artist portfolio system with galleries - [x] Nextcloud OAuth with auto-provisioning @@ -891,7 +891,7 @@ The project includes **[`CLAUDE.md`](CLAUDE.md)** with comprehensive instruction - [x] HEIC image conversion - [x] Artist slug-based URLs -### 🚧 In Progress +### In Progress - [ ] Email notifications for appointments - [ ] SMS reminders for clients @@ -900,7 +900,7 @@ The project includes **[`CLAUDE.md`](CLAUDE.md)** with comprehensive instruction - [ ] Gift card system enhancements - [ ] Enhanced analytics dashboard -### πŸ’‘ Future Enhancements +### Future Enhancements - [ ] Client self-service portal - [ ] Online deposit payments @@ -917,7 +917,7 @@ See the [open issues](https://git.biohazardvfx.com/nicholai/united-tattoo/issues --- -## 🀝 Contributing +## Contributing Contributions are welcome! This project follows standard Git workflows and conventional commits. @@ -991,10 +991,10 @@ Contributions are welcome! This project follows standard Git workflows and conve --- -## πŸ“„ License +## License
-⚠️ License Status

+License Status

This project currently does not have a LICENSE file in the repository. If you intend to use GNU GPLv3 (as referenced in the original README template), please add a LICENSE or COPYING file with the full license text.

Alternatively, consider: @@ -1012,7 +1012,7 @@ Alternatively, consider: --- -## πŸ“¬ Contact +## Contact
@@ -1034,13 +1034,13 @@ Alternatively, consider:
-### ⭐ Star this repository if you find it helpful! +### Star this repository if you find it helpful!

(back to top)

--- -**Made with ❀️ for United Tattoo Studio, Fountain, CO** +**Made with love for United Tattoo Studio, Fountain, CO**