Skip to content

A comprehensive studio management suite for tattoo artists and studios, featuring AI-powered design generation, customer management, appointment scheduling, and more.

License

Notifications You must be signed in to change notification settings

GizzZmo/Tattoo-Workshop

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

55 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Tattoo Workshop 🎨

CI/CD Pipeline Node.js Version License

A comprehensive studio management suite for tattoo artists and studios, featuring AI-powered design generation, customer management, appointment scheduling, and more.

Features ✨

  • πŸ” User Authentication: Secure login system with JWT tokens and role-based access control
  • πŸ‘₯ Multi-User Support: Admin, Artist, and Receptionist roles with different permission levels
  • πŸ€– AI Tattoo Generator: Generate detailed tattoo design descriptions using Google Gemini AI
  • πŸ‘₯ Customer Management: Secure customer database with contact information and notes
  • πŸ“… Appointment Scheduling: Track appointments with customers, artists, and status updates
  • πŸ“§ Email Notifications: Automated appointment confirmations, reminders, and updates
  • πŸ’° Dynamic Pricelist: Manage services with categories, pricing, and duration estimates
  • πŸ–ΌοΈ Portfolio Gallery: Showcase your work with images, descriptions, and tags
  • βš™οΈ Settings Management: Configure API keys and application preferences
  • πŸ”’ Secure Local Storage: All data stored locally using SQLite database

Tech Stack πŸ› οΈ

  • Frontend: React 18 + Vite
  • Backend: Node.js + Express
  • Database: SQLite (better-sqlite3)
  • Email: Nodemailer
  • AI Integration: Google Gemini API
  • Styling: Custom CSS with responsive design
  • Routing: React Router v6

Installation πŸ“¦

Prerequisites

  • Node.js 18.x or higher
  • npm or yarn

Quick Start

See QUICKSTART.md for a rapid getting-started guide.

Setup Steps

  1. Clone the repository

    git clone https://github.com/GizzZmo/Tattoo-Workshop.git
    cd Tattoo-Workshop
  2. Install dependencies

    npm install
  3. Start the development server

    npm run dev

    This will start both the backend server (port 3001) and frontend dev server (port 3000).

  4. Access the application

    • Open your browser and navigate to http://localhost:3000
    • The backend API runs on http://localhost:3001
  5. (Optional) Add sample data

    npm run seed

For detailed installation instructions, see INSTALLATION.md.

Configuration βš™οΈ

Gemini API Key

To use the AI Tattoo Generator feature:

  1. Visit Google AI Studio
  2. Sign in with your Google account
  3. Create a new API key
  4. In the application, navigate to Settings
  5. Enter your API key and save

Email Notifications (Optional)

To enable email notifications for appointments:

  1. Configure SMTP settings via the API or Settings page
  2. Supported providers: Gmail, SendGrid, Mailgun, Office 365, etc.
  3. Enable appointment confirmations and reminders
  4. For detailed setup instructions, see EMAIL-NOTIFICATIONS.md

Usage Guide πŸ“–

Dashboard

The dashboard provides an overview of your studio statistics and quick access to all features.

Customer Management

  • Add, edit, and delete customer records
  • Store contact information, addresses, and custom notes
  • Search and filter customers

Appointments

  • Schedule appointments with specific customers
  • Assign artists to appointments
  • Set duration and add notes
  • Track appointment status (scheduled, completed, cancelled)
  • Receive email confirmations and reminders automatically

Pricelist

  • Create service categories
  • Add services with pricing and estimated duration
  • Edit and organize your offerings

Portfolio

  • Add images of your work
  • Include descriptions and artist information
  • Tag pieces with relevant keywords
  • Organize and showcase your best work

AI Tattoo Generator

  • Enter detailed descriptions of tattoo ideas
  • Receive professional design recommendations
  • Get style suggestions and placement advice
  • View generation history

Development πŸ’»

Available Scripts

  • npm run dev - Start both frontend and backend in development mode
  • npm run dev:client - Start only the frontend dev server
  • npm run dev:server - Start only the backend server
  • npm run build - Build the application for production
  • npm run preview - Preview the production build
  • npm run lint - Run ESLint
  • npm run seed - Populate database with sample data

Project Structure

Tattoo-Workshop/
β”œβ”€β”€ .github/
β”‚   └── workflows/
β”‚       └── ci-cd.yml          # GitHub Actions workflow
β”œβ”€β”€ public/
β”‚   └── tattoo-icon.svg        # Application icon
β”œβ”€β”€ server/
β”‚   └── index.js               # Express server and API routes
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ pages/
β”‚   β”‚   β”œβ”€β”€ Dashboard.jsx      # Main dashboard
β”‚   β”‚   β”œβ”€β”€ Customers.jsx      # Customer management
β”‚   β”‚   β”œβ”€β”€ Appointments.jsx   # Appointment scheduling
β”‚   β”‚   β”œβ”€β”€ Pricelist.jsx      # Service pricing
β”‚   β”‚   β”œβ”€β”€ Portfolio.jsx      # Portfolio gallery
β”‚   β”‚   β”œβ”€β”€ TattooGenerator.jsx # AI generator
β”‚   β”‚   └── Settings.jsx       # Settings page
β”‚   β”œβ”€β”€ styles/
β”‚   β”‚   └── App.css           # Global styles
β”‚   β”œβ”€β”€ App.jsx               # Main app component
β”‚   └── main.jsx              # Entry point
β”œβ”€β”€ .eslintrc.cjs             # ESLint configuration
β”œβ”€β”€ .gitignore                # Git ignore rules
β”œβ”€β”€ index.html                # HTML template
β”œβ”€β”€ package.json              # Dependencies and scripts
β”œβ”€β”€ vite.config.js            # Vite configuration
└── README.md                 # This file

GitHub Actions Workflow πŸ”„

The project includes a CI/CD pipeline that:

  • βœ… Runs on push to main/develop branches and pull requests
  • βœ… Tests against multiple Node.js versions (18.x, 20.x)
  • βœ… Installs dependencies and runs linting
  • βœ… Builds the application
  • βœ… Uploads build artifacts
  • βœ… Deploys to GitHub Pages on main branch

Security & Privacy πŸ”’

  • All customer data is stored locally in a SQLite database
  • API keys are stored securely and only used for AI requests
  • No data is shared with third parties except Google AI for design generation
  • Regular database backups are recommended

Contributing 🀝

Contributions are welcome! Please read CONTRIBUTING.md for details on our code of conduct and the process for submitting pull requests.

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Documentation πŸ“š

For a complete documentation index and navigation guide, see DOCUMENTATION.md.

License πŸ“„

This project is open source and available under the MIT License.

Support πŸ’¬

For issues, questions, or suggestions:

  • Open an issue on GitHub
  • Check existing documentation
  • Review the code comments

Roadmap πŸ—ΊοΈ

Future enhancements planned:

  • βœ… Email notifications for appointments (COMPLETED)
  • Invoice generation
  • Cloud backup integration
  • Mobile app version
  • Advanced reporting and analytics
  • Integration with payment processors
  • Booking widget for website integration

For detailed information about each planned feature, including priorities, technical considerations, and benefits, see ROADMAP.md.

Acknowledgments πŸ™

  • Google Gemini AI for powering the design generator
  • React and Vite communities
  • All contributors and users

Built with ❀️ for tattoo artists and studios

About

A comprehensive studio management suite for tattoo artists and studios, featuring AI-powered design generation, customer management, appointment scheduling, and more.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Contributors 4

  •  
  •  
  •  
  •