# ThrillWiki Quick Start Guide

## Prerequisites

- Python 3.8+
- PostgreSQL
- Node.js (for Tailwind CSS)

## Setup Instructions

1. **Clone the Repository**
   ```bash
   git clone <repository-url>
   cd thrillwiki
   ```

2. **Create Virtual Environment**
   ```bash
   python -m venv venv
   source venv/bin/activate  # On Windows: venv\Scripts\activate
   ```

3. **Install Dependencies**
   ```bash
   pip install -r requirements.txt
   ```

4. **Database Setup**
   ```bash
   # Update database settings in thrillwiki/settings.py
   python manage.py migrate
   ```

5. **Create Superuser**
   ```bash
   python manage.py createsuperuser
   ```

6. **Install Frontend Dependencies**
   ```bash
   # Install Tailwind CSS
   npm install
   ```

7. **Environment Configuration**
   - Copy example environment file
   - Update necessary settings
   - Configure social auth providers

8. **Run Development Server**
   ```bash
   python manage.py runserver
   ```

## Key URLs

- Admin Interface: `/admin/`
- Home Page: `/`
- Parks List: `/parks/`
- Rides List: `/rides/`

## Development Guidelines

1. **Model Changes**
   ```bash
   python manage.py makemigrations
   python manage.py migrate
   ```

2. **Running Tests**
   ```bash
   python manage.py test
   ```

3. **Update Trending Content**
   ```bash
   python manage.py update_trending
   ```

4. **Update Park Statistics**
   ```bash
   python manage.py update_park_counts
   ```

## Common Tasks

### Adding a New Park
1. Access admin interface
2. Navigate to Parks section
3. Click "Add Park"
4. Fill required information
5. Save

### Adding a New Ride
1. Access admin interface
2. Navigate to Rides section
3. Click "Add Ride"
4. Fill required information
5. Add roller coaster stats if applicable
6. Save

### Managing Photos
1. Photos can be added to parks, rides, or companies
2. Use the photo upload form on respective detail pages
3. Set primary photo as needed

### Moderating Reviews
1. Access admin interface
2. Navigate to Reviews section
3. Review flagged content
4. Take appropriate moderation action

## Troubleshooting

### Common Issues

1. **Database Connection**
   - Verify PostgreSQL is running
   - Check database credentials
   - Ensure database exists

2. **Media Upload Issues**
   - Check file permissions
   - Verify media storage configuration
   - Ensure proper file types

3. **Social Auth**
   - Verify provider credentials
   - Check callback URLs
   - Review auth settings

### Getting Help

- Check existing documentation in `/docs`
- Review error logs
- Contact development team

## Best Practices

1. **Code Style**
   - Follow PEP 8
   - Use type hints
   - Document functions and classes

2. **Git Workflow**
   - Create feature branches
   - Write descriptive commits
   - Keep changes focused

3. **Testing**
   - Write unit tests
   - Test all new features
   - Verify existing functionality
