## RunCats Application Overview This document summarizes the core structure and components of the RunCats application for context in future prompts. **Core Concept:** A "Tinder for fitness buddies" application connecting users based on location, fitness interests, and preferences. **Project Structure:** * **`/` (Root):** Contains project-level configuration and this summary file. * **`/server`:** Laravel backend API. * `app/Http/Controllers/Api/`: API endpoint logic (e.g., `AuthController`, `UserController`). * `app/Http/Requests/`: Input validation rules (e.g., `LoginRequest`, `UpdateProfileRequest`). * `app/Http/Resources/`: API response formatting (e.g., `UserResource`, `ProfileResource`). * `app/Models/`: Eloquent models (e.g., `User`, `Profile`). * `routes/api.php`: API route definitions. * Uses Laravel Sail, PostgreSQL, Redis, Ably, AuthKit, Stripe. * **`/client`:** Vue.js frontend (SPA) and Capacitor mobile app source. * `src/views/`: Page-level components (e.g., `LoginPage.vue`, `ProfilePage.vue`). * `src/components/`: Reusable UI components (e.g., `LoginForm.vue`, `ProfileCard.vue`). * `src/stores/`: Pinia state management modules (e.g., `auth.ts`, `user.ts`). * `src/services/`: API interaction logic (e.g., `authService.ts`, `userService.ts`, `api.ts` base client). * `src/router/`: Vue Router configuration (`index.ts`). * `src/types/`: TypeScript type definitions (e.g., `user.ts`). * Uses Vue 3 (Composition API), TypeScript, Pinia, Vue Router, Tailwind CSS, Vite, Capacitor, Vitest, Playwright. **Core Features (Initial Focus):** 1. **Authentication:** * Email/Password Registration & Login (`AuthController`, `LoginPage`, `RegisterPage`, `auth.ts` store). * Strava Sign-in (Planned). * Token-based API authentication (Laravel Sanctum assumed). 2. **User Profiles:** * View own profile (`UserController@show`, `ProfilePage`, `ProfileCard`, `user.ts` store). * Edit own profile (`UserController@update`, `EditProfilePage`, `ProfileForm`, `user.ts` store). * Fields: Name, Email, Bio, Fitness Goals, Fitness Level, Profile Picture (Planned). 3. **Finding Friends (Planned):** * Matching based on criteria (distance, activity, level, etc.). * Viewing potential matches. * Friend requests. 4. **Real-time Features (Planned):** * Notifications (Ably). * Chat. **Key Technologies:** * **Backend:** PHP (Laravel), PostgreSQL, Redis * **Frontend:** TypeScript (Vue.js), Pinia, Vue Router, Tailwind CSS * **Mobile:** Capacitor * **Authentication:** Laravel Sanctum (assumed for API tokens) * **Real-time:** Ably * **Payments:** Stripe (Planned) * **Testing:** Vitest (Unit), Playwright (E2E)