{"id":31796202,"url":"https://github.com/jjxmonster/pole-dance-journal","last_synced_at":"2026-07-18T01:34:55.975Z","repository":{"id":318378847,"uuid":"1067137514","full_name":"jjxmonster/pole-dance-journal","owner":"jjxmonster","description":"app that allows pole dance enthusiasts to track their progress.","archived":false,"fork":false,"pushed_at":"2025-12-04T20:20:44.000Z","size":4914,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-07-18T01:34:53.022Z","etag":null,"topics":["orpc","react","spec-driven-development","tanstack-start"],"latest_commit_sha":null,"homepage":"https://pole-dance-journal.vercel.app","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jjxmonster.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-30T12:35:44.000Z","updated_at":"2025-12-15T21:49:19.000Z","dependencies_parsed_at":null,"dependency_job_id":"ea4a901f-1251-4804-b4df-6298cc267df6","html_url":"https://github.com/jjxmonster/pole-dance-journal","commit_stats":null,"previous_names":["jjxmonster/pole-dance-journal"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jjxmonster/pole-dance-journal","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jjxmonster%2Fpole-dance-journal","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jjxmonster%2Fpole-dance-journal/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jjxmonster%2Fpole-dance-journal/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jjxmonster%2Fpole-dance-journal/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jjxmonster","download_url":"https://codeload.github.com/jjxmonster/pole-dance-journal/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jjxmonster%2Fpole-dance-journal/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35601707,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-17T02:00:06.162Z","response_time":116,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["orpc","react","spec-driven-development","tanstack-start"],"created_at":"2025-10-10T20:42:41.609Z","updated_at":"2026-07-18T01:34:55.969Z","avatar_url":"https://github.com/jjxmonster.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Spinella\n\nA web application designed for pole dance practitioners to track their learning progress, manage personal notes, and browse a curated catalog of moves.\n\n---\n\n## Table of Contents\n\n- [Project Description](#project-description)\n- [Tech Stack](#tech-stack)\n- [Getting Started Locally](#getting-started-locally)\n- [Available Scripts](#available-scripts)\n- [Project Scope](#project-scope)\n- [Project Status](#project-status)\n- [License](#license)\n\n---\n\n## Project Description\n\nPole 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.\n\n## Tech Stack\n\nThe project is built with a modern, type-safe stack:\n\n- **Framework**: [TanStack Start](https://tanstack.com/start)\n- **Library**: [React](https://react.dev/)\n- **Styling**: [Tailwind CSS](https://tailwindcss.com/)\n- **Routing**: [TanStack Router](https://tanstack.com/router)\n- **Data Fetching \u0026 State**: [TanStack Query](https://tanstack.com/query) \u0026 [TanStack Store](https://tanstack.com/store)\n- **Forms**: [TanStack Form](https://tanstack.com/form)\n- **API**: [oRPC](https://orpc.dev/)\n- **Backend \u0026 DB**: [Supabase](https://supabase.com/) (Auth, Postgres, Storage)\n- **Build Tool**: [Vite](https://vitejs.dev/)\n- **Language**: [TypeScript](https://www.typescriptlang.org/)\n- **Linting \u0026 Formatting**: [Biome](https://biomejs.dev/)\n- **Testing**:\n  - **Unit Testing**: [Vitest](https://vitest.dev/) with [React Testing Library](https://testing-library.com/docs/react-testing-library/intro/)\n  - **E2E Testing**: [Playwright](https://playwright.dev/)\n\n## Getting Started Locally\n\nTo run the project locally, follow these steps:\n\n### Prerequisites\n\n- Node.js (v18 or higher)\n- pnpm (v10 or higher)\n\n### Installation\n\n1.  **Clone the repository:**\n\n    ```bash\n    git clone https://github.com/your-username/pole-journal.git\n    cd pole-journal\n    ```\n\n2.  **Install dependencies:**\n\n    ```bash\n    pnpm install\n    ```\n\n3.  **Set up environment variables:**\n    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.\n\n    ```env\n    VITE_SUPABASE_URL=your-supabase-project-url\n    VITE_SUPABASE_ANON_KEY=your-supabase-anon-key\n    ```\n\n4.  **Run the development server:**\n    ```bash\n    pnpm dev\n    ```\n\nThe application should now be running at `http://localhost:3000`.\n\n## Available Scripts\n\nThe following scripts are available in the `package.json`:\n\n- `pnpm dev`: Starts the development server.\n- `pnpm build`: Builds the application for production.\n- `pnpm start`: Starts the production server after a build.\n- `pnpm serve`: Serves the production build locally for preview.\n- `pnpm test`: Runs unit tests using Vitest and React Testing Library.\n- `pnpm format`: Formats the code using Biome.\n- `pnpm lint`: Lints the code using Biome.\n- `pnpm check`: Runs all Biome checks (lint, format, etc.).\n\n## Project Scope\n\n### User-Facing Features\n\n- **Authentication**: Secure sign-up and sign-in with email/password and Google OAuth.\n- **Move Catalog**: A public, browsable catalog of pole moves with filtering and search functionality.\n- **Move Details**: A detailed view for each move, including description, steps, and an AI-generated image.\n- **Status Tracking**: Users can set a personal status for each move (`Want to Learn`, `In Progress`, `Mastered`).\n- **Private Notes**: Private, autosaving notes for each move, accessible only to the user.\n- **My Moves**: A personalized dashboard showing all moves a user has interacted with.\n\n### Admin Features\n\n- **Secure Admin Area**: A role-protected admin panel for content management.\n- **Move Management**: Create, edit, publish, and unpublish moves and their steps.\n- **AI Image Generation**: An efficient workflow to generate and accept AI-created images for moves based on reference photos.\n\n### Out of Scope for MVP\n\n- Social features (sharing, comments, following).\n- Instructional videos.\n- Advanced analytics and progress charts.\n- Native mobile applications.\n\n## Project Status\n\nThis 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.\n\n## License\n\nThis project is currently not licensed.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjjxmonster%2Fpole-dance-journal","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjjxmonster%2Fpole-dance-journal","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjjxmonster%2Fpole-dance-journal/lists"}