Skip to content

connorAlex/Atelr

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

91 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Atelr

Atelr is a full-stack tattoo booking workspace focused on the intake stage of booking.

Tattoo booking often starts in scattered places. A client finds an artist on Instagram, reads booking notes, fills out a form, sends reference images somewhere else, and waits for a response. The artist then has to judge fit, budget, timing, placement, style, and follow-up needs from a pile of messages.

Atelr brings that first booking conversation into one workspace.

Product Goal

The goal is to make tattoo intake easier for both sides before scheduling begins.

For clients, Atelr should make it easier to find artists, understand who is taking requests, submit the right details, and track what is happening after a request is sent.

For artists, Atelr should make it easier to shape the inquiry process, review requests, keep internal notes, and move strong requests toward scheduling without losing context.

The project starts from the intake problem. Before scheduling matters, the artist needs to know whether a request fits their work, timing, and process.

Problems It Solves

  • Artist discovery is usually weak outside of social media.
  • Booking status is often buried in profile copy, stories, or old posts.
  • Intake forms are usually generic, even when artists need specific information.
  • Reference images, budget notes, placement details, and follow-up questions are easy to scatter.
  • Clients often have no clear status after sending a request.
  • Artists need a calmer way to separate new, approved, rejected, and follow-up requests.
  • Scheduling should happen after fit is clear, not before.

Current Workflow

  1. A client logs in and browses artist profiles.
  2. The client filters artists by style, availability, location text, budget, and booking mode.
  3. The client opens a profile, reviews booking details, and submits an inquiry.
  4. The artist reviews the request from a queue.
  5. The artist can approve, reject, mark for follow-up, and save internal notes.
  6. The client can track request status from their own request view.
  7. Approved requests are ready for a future scheduling handoff.

Core Product Areas

Artist browsing

Clients can browse artist profiles with basic non-map filters. This keeps discovery useful before a geospatial view exists. Artist profiles include style, portfolio, contact information, booking notes, response time, rate details, and optional location fields.

Artist availability

Artists now have an availability mode. The current modes are always open, booking windows, and waitlist. This gives the app a clearer booking signal than free-text availability copy alone.

Inquiry builder

The inquiry builder is designed around artist criteria. An artist selects the information they care about, then can add one follow-up field under each selected criterion. The builder stays on one scrolling page and includes a live preview of the public form.

Artist queue

Artists have a dashboard and inquiry queue with status grouping. Pending requests stay separate from approved and rejected requests. The app also shows request counts, recent activity, newest request context, and follow-up signals.

Client request tracking

Clients can see submitted requests and open a detail view for each one. Status labels, next-step copy, and artist contact details help the client understand where the request stands.

Account settings

Authenticated users can manage account-level information from the toolbar profile menu. Logout also lives in this menu, which keeps account actions grouped in one place.

Current Features

  • Auth0 login and authenticated user sync.
  • Client and artist onboarding.
  • Account settings page.
  • Artist profile editing.
  • Artist availability mode in the database and frontend.
  • Artist browsing with style, availability, city or neighborhood text, budget, and booking status filters.
  • Dynamic inquiry form builder.
  • Public inquiry submission from artist profiles.
  • Artist inquiry review workflow.
  • Private artist notes.
  • Client request status views.
  • Dashboard summary signals.
  • Seed data for artists, clients, inquiry forms, and requests.
  • Express API backed by Postgres.
  • Docker Compose support for backend and database work.
  • Backend unit tests and focused frontend Vitest coverage.

Tech Stack

  • React
  • Vite
  • Tailwind
  • Auth0
  • Express
  • PostgreSQL
  • Docker Compose
  • Node
  • Vitest

Setup

Atelr is built to run the backend and database through Docker Compose.

Create a root .env file with the backend and database values:

DB_USER=
DB_PASSWORD=
DB_NAME=
DB_HOST=db
DB_PORT=5432
AUTH0_DOMAIN=
AUTH0_IDENTIFIER=
CORS_ORIGIN=http://localhost:5173

Create frontend/.env with the browser-facing Auth0 and API values:

VITE_AUTH0_DOMAIN=
VITE_AUTH0_CLIENT_ID=
VITE_AUTH0_AUDIENCE=
VITE_API_BASE_URL=http://localhost:3000/api

Start the backend and database:

docker compose up

Run migrations inside the backend container:

docker compose exec backend npm run migrate

Seed the main demo data:

docker compose exec backend npm run seed

Run the frontend from frontend:

cd frontend
npm run dev

Demo Account

The demo artist email is:

demo.artist@atelr.app

Create a matching Auth0 user with that email, then seed the DB-side demo account:

docker compose exec backend npm run seed:demo-account

The first login with that Auth0 user attaches the Auth0 subject to the seeded artist record. That keeps the demo account connected to a filled artist profile, an active inquiry form, and a request queue with pending, follow-up, approved, and rejected examples.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages