Files
dotfiles/.local/aider/projects/runcats/read/PROMPT.md

53 lines
2.7 KiB
Markdown
Raw Normal View History

2025-06-20 23:11:38 +01:00
## 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)