https://github.com/jjxmonster/pole-dance-journal
app that allows pole dance enthusiasts to track their progress.
https://github.com/jjxmonster/pole-dance-journal
orpc react spec-driven-development tanstack-start
Last synced: 23 days ago
JSON representation
app that allows pole dance enthusiasts to track their progress.
- Host: GitHub
- URL: https://github.com/jjxmonster/pole-dance-journal
- Owner: jjxmonster
- Created: 2025-09-30T12:35:44.000Z (10 months ago)
- Default Branch: master
- Last Pushed: 2025-12-04T20:20:44.000Z (8 months ago)
- Last Synced: 2026-07-18T01:34:53.022Z (23 days ago)
- Topics: orpc, react, spec-driven-development, tanstack-start
- Language: TypeScript
- Homepage: https://pole-dance-journal.vercel.app
- Size: 4.69 MB
- Stars: 5
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Spinella
A web application designed for pole dance practitioners to track their learning progress, manage personal notes, and browse a curated catalog of moves.
---
## Table of Contents
- [Project Description](#project-description)
- [Tech Stack](#tech-stack)
- [Getting Started Locally](#getting-started-locally)
- [Available Scripts](#available-scripts)
- [Project Scope](#project-scope)
- [Project Status](#project-status)
- [License](#license)
---
## Project Description
Pole Journal helps pole dancers track which moves they want to learn, are currently working on, or have mastered. It provides a structured catalog of moves, personalized statuses, and private notes with a reliable autosave feature. The application also includes a secure admin panel for curators to manage the move catalog, including generating illustrative images using AI.
## Tech Stack
The project is built with a modern, type-safe stack:
- **Framework**: [TanStack Start](https://tanstack.com/start)
- **Library**: [React](https://react.dev/)
- **Styling**: [Tailwind CSS](https://tailwindcss.com/)
- **Routing**: [TanStack Router](https://tanstack.com/router)
- **Data Fetching & State**: [TanStack Query](https://tanstack.com/query) & [TanStack Store](https://tanstack.com/store)
- **Forms**: [TanStack Form](https://tanstack.com/form)
- **API**: [oRPC](https://orpc.dev/)
- **Backend & DB**: [Supabase](https://supabase.com/) (Auth, Postgres, Storage)
- **Build Tool**: [Vite](https://vitejs.dev/)
- **Language**: [TypeScript](https://www.typescriptlang.org/)
- **Linting & Formatting**: [Biome](https://biomejs.dev/)
- **Testing**:
- **Unit Testing**: [Vitest](https://vitest.dev/) with [React Testing Library](https://testing-library.com/docs/react-testing-library/intro/)
- **E2E Testing**: [Playwright](https://playwright.dev/)
## Getting Started Locally
To run the project locally, follow these steps:
### Prerequisites
- Node.js (v18 or higher)
- pnpm (v10 or higher)
### Installation
1. **Clone the repository:**
```bash
git clone https://github.com/your-username/pole-journal.git
cd pole-journal
```
2. **Install dependencies:**
```bash
pnpm install
```
3. **Set up environment variables:**
Create a `.env` file in the root of the project by copying the `.env.example` file (if available). You will need to add your Supabase project URL and anon key.
```env
VITE_SUPABASE_URL=your-supabase-project-url
VITE_SUPABASE_ANON_KEY=your-supabase-anon-key
```
4. **Run the development server:**
```bash
pnpm dev
```
The application should now be running at `http://localhost:3000`.
## Available Scripts
The following scripts are available in the `package.json`:
- `pnpm dev`: Starts the development server.
- `pnpm build`: Builds the application for production.
- `pnpm start`: Starts the production server after a build.
- `pnpm serve`: Serves the production build locally for preview.
- `pnpm test`: Runs unit tests using Vitest and React Testing Library.
- `pnpm format`: Formats the code using Biome.
- `pnpm lint`: Lints the code using Biome.
- `pnpm check`: Runs all Biome checks (lint, format, etc.).
## Project Scope
### User-Facing Features
- **Authentication**: Secure sign-up and sign-in with email/password and Google OAuth.
- **Move Catalog**: A public, browsable catalog of pole moves with filtering and search functionality.
- **Move Details**: A detailed view for each move, including description, steps, and an AI-generated image.
- **Status Tracking**: Users can set a personal status for each move (`Want to Learn`, `In Progress`, `Mastered`).
- **Private Notes**: Private, autosaving notes for each move, accessible only to the user.
- **My Moves**: A personalized dashboard showing all moves a user has interacted with.
### Admin Features
- **Secure Admin Area**: A role-protected admin panel for content management.
- **Move Management**: Create, edit, publish, and unpublish moves and their steps.
- **AI Image Generation**: An efficient workflow to generate and accept AI-created images for moves based on reference photos.
### Out of Scope for MVP
- Social features (sharing, comments, following).
- Instructional videos.
- Advanced analytics and progress charts.
- Native mobile applications.
## Project Status
This project is currently **in development**. The immediate focus is on delivering the Minimum Viable Product (MVP) with the core features outlined in the project scope.
## License
This project is currently not licensed.