53 lines
2.7 KiB
Markdown
53 lines
2.7 KiB
Markdown
## 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)
|