2.7 KiB
2.7 KiB
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.tsbase 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):
- Authentication:
- Email/Password Registration & Login (
AuthController,LoginPage,RegisterPage,auth.tsstore). - Strava Sign-in (Planned).
- Token-based API authentication (Laravel Sanctum assumed).
- Email/Password Registration & Login (
- User Profiles:
- View own profile (
UserController@show,ProfilePage,ProfileCard,user.tsstore). - Edit own profile (
UserController@update,EditProfilePage,ProfileForm,user.tsstore). - Fields: Name, Email, Bio, Fitness Goals, Fitness Level, Profile Picture (Planned).
- View own profile (
- Finding Friends (Planned):
- Matching based on criteria (distance, activity, level, etc.).
- Viewing potential matches.
- Friend requests.
- 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)