A comprehensive studio management suite for tattoo artists and studios, featuring AI-powered design generation, customer management, appointment scheduling, and more.
- π 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
- 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
- Node.js 18.x or higher
- npm or yarn
See QUICKSTART.md for a rapid getting-started guide.
-
Clone the repository
git clone https://github.com/GizzZmo/Tattoo-Workshop.git cd Tattoo-Workshop -
Install dependencies
npm install
-
Start the development server
npm run dev
This will start both the backend server (port 3001) and frontend dev server (port 3000).
-
Access the application
- Open your browser and navigate to
http://localhost:3000 - The backend API runs on
http://localhost:3001
- Open your browser and navigate to
-
(Optional) Add sample data
npm run seed
For detailed installation instructions, see INSTALLATION.md.
To use the AI Tattoo Generator feature:
- Visit Google AI Studio
- Sign in with your Google account
- Create a new API key
- In the application, navigate to Settings
- Enter your API key and save
To enable email notifications for appointments:
- Configure SMTP settings via the API or Settings page
- Supported providers: Gmail, SendGrid, Mailgun, Office 365, etc.
- Enable appointment confirmations and reminders
- For detailed setup instructions, see EMAIL-NOTIFICATIONS.md
The dashboard provides an overview of your studio statistics and quick access to all features.
- Add, edit, and delete customer records
- Store contact information, addresses, and custom notes
- Search and filter customers
- 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
- Create service categories
- Add services with pricing and estimated duration
- Edit and organize your offerings
- Add images of your work
- Include descriptions and artist information
- Tag pieces with relevant keywords
- Organize and showcase your best work
- Enter detailed descriptions of tattoo ideas
- Receive professional design recommendations
- Get style suggestions and placement advice
- View generation history
npm run dev- Start both frontend and backend in development modenpm run dev:client- Start only the frontend dev servernpm run dev:server- Start only the backend servernpm run build- Build the application for productionnpm run preview- Preview the production buildnpm run lint- Run ESLintnpm run seed- Populate database with sample data
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
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
- 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
Contributions are welcome! Please read CONTRIBUTING.md for details on our code of conduct and the process for submitting pull requests.
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
For a complete documentation index and navigation guide, see DOCUMENTATION.md.
- README.md - This file, general overview
- ABOUT.md - Project overview, mission, and architecture
- QUICKSTART.md - Get started quickly
- INSTALLATION.md - Detailed installation guide
- API.md - Complete API documentation
- EMAIL-NOTIFICATIONS.md - Email notification system guide
- ROADMAP.md - Detailed product roadmap and planned features
- CONTRIBUTING.md - Contribution guidelines
- PROJECT-SUMMARY.md - Complete project summary
- DOCUMENTATION.md - Documentation index and navigation
This project is open source and available under the MIT License.
For issues, questions, or suggestions:
- Open an issue on GitHub
- Check existing documentation
- Review the code comments
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.
- Google Gemini AI for powering the design generator
- React and Vite communities
- All contributors and users
Built with β€οΈ for tattoo artists and studios